> WinのバッチファイルでCGI
すごい穴になりそうだな
shスクリプトでcgi
03/03/20 23:27ID:???
8nobodyさん
03/03/21 00:42ID:dpOkqofd shスリプトでここまでできたという事例が聞ければうれしっす。
/bin/sh
/bin/sh
10nobodyさん
03/03/21 07:21ID:??? C++ with MFC で家庭内LAN用のCGI作ろうとしてますが、何か?
# CStringマンセー
# CStringマンセー
11nobodyさん
03/03/21 09:19ID:??? 機会があればschemeで作ろうとしてるんですけど割と神ですか?
12nobodyさん
03/03/21 09:33ID:??? どこかで404とかのドキュメントを
ブラウザの環境変数であれこれする
shスクリプト見たような気がする
ブラウザの環境変数であれこれする
shスクリプト見たような気がする
13nobodyさん
03/03/21 17:27ID:??? shbbs.cgi (1/2)
#! /bin/sh
if [ $REQUEST_METHOD = "POST" ]
then
cp log.txt dummy.txt
printf "`cat -| awk -f filt.awk`" | sed -f filt.sed >> dummy.txt
printf "<br>\n" >> dummy.txt
tail -30 dummy.txt > log.txt
fi
cat <<END_OF_HEADER
Content-type: text/html; charset=EUC-JP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<title>/bin/sh BBS</title>
</head>
<body onLoad="LoadCookie()">
<script type="text/javascript"><!--
function SaveCookie(val){
document.cookie = "handle_name="+escape(val)+"; path=/;";
}
#! /bin/sh
if [ $REQUEST_METHOD = "POST" ]
then
cp log.txt dummy.txt
printf "`cat -| awk -f filt.awk`" | sed -f filt.sed >> dummy.txt
printf "<br>\n" >> dummy.txt
tail -30 dummy.txt > log.txt
fi
cat <<END_OF_HEADER
Content-type: text/html; charset=EUC-JP
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<title>/bin/sh BBS</title>
</head>
<body onLoad="LoadCookie()">
<script type="text/javascript"><!--
function SaveCookie(val){
document.cookie = "handle_name="+escape(val)+"; path=/;";
}
14nobodyさん
03/03/21 17:29ID:??? sshbbs.cgi (2/3)
function LoadCookie(){
var cookies = document.cookie.split(";"), value = "";
for(var i = 0; i < cookies.length; i++){
var piece = cookies[i].split("=");
if (piece[0].replace(" ","") == "handle_name"){
if (piece[1] != null){
document.forms[0].name.value =
unescape(piece[1]);
}
break;
}
}
}
--></script>
<h1 align="center">/bin/sh BBS</h1>
<hr>
<dl>
<dd>
END_OF_HEADER
cat log.txt
function LoadCookie(){
var cookies = document.cookie.split(";"), value = "";
for(var i = 0; i < cookies.length; i++){
var piece = cookies[i].split("=");
if (piece[0].replace(" ","") == "handle_name"){
if (piece[1] != null){
document.forms[0].name.value =
unescape(piece[1]);
}
break;
}
}
}
--></script>
<h1 align="center">/bin/sh BBS</h1>
<hr>
<dl>
<dd>
END_OF_HEADER
cat log.txt
15nobodyさん
03/03/21 17:29ID:??? snbbs.cgi (3/3)
cat <<END_OF_FOOTER
</dd>
</dl>
<hr>
<a name="form">post form</a>
<form method="POST" action="shbbs.cgi#form" onSubmit="SaveCookie(this.name.value)">
name: <input name="name" size="19"> message: <input name="message" size="80"> <input type="submit" value="Write">
</form>
<div align="right"><a href="shbbs.cgi#form">Reload</a></div>
<hr>
<div align="right">/bin/sh BBS ver 1.0</div>
</body>
</html>
END_OF_FOOTER
cat <<END_OF_FOOTER
</dd>
</dl>
<hr>
<a name="form">post form</a>
<form method="POST" action="shbbs.cgi#form" onSubmit="SaveCookie(this.name.value)">
name: <input name="name" size="19"> message: <input name="message" size="80"> <input type="submit" value="Write">
</form>
<div align="right"><a href="shbbs.cgi#form">Reload</a></div>
<hr>
<div align="right">/bin/sh BBS ver 1.0</div>
</body>
</html>
END_OF_FOOTER
16nobodyさん
03/03/21 17:30ID:??? filt.awk(1/3)
BEGIN {
FS="="
RS="&"
}
{
key = "0123456789ABCDEFabcdef"
str = ""
i = 1
while(i <= length($2)){
d = substr($2, i, 1)
i++
if (d == "%"){
oct = 0
for(j = 0; j < 2; j++){
oct *= 16
d = substr($2, i, 1)
i++
for(k = 1; k < length(key); k++){
if (d == substr(key, k, 1)){
if (k > 16) k -= 6
oct += k-1
break
}
}
}
BEGIN {
FS="="
RS="&"
}
{
key = "0123456789ABCDEFabcdef"
str = ""
i = 1
while(i <= length($2)){
d = substr($2, i, 1)
i++
if (d == "%"){
oct = 0
for(j = 0; j < 2; j++){
oct *= 16
d = substr($2, i, 1)
i++
for(k = 1; k < length(key); k++){
if (d == substr(key, k, 1)){
if (k > 16) k -= 6
oct += k-1
break
}
}
}
17nobodyさん
03/03/21 17:31ID:??? filt.awk (2/3)
# if (oct > 127) oct = 32
if (oct < 32) oct = 32
col = 64
dec = ""
while(col > 0){
d = int(oct/col)
dec = (dec d)
oct -= d*col
col = int(col/8)
}
str = (str "\\" dec)
} else {
if (d == "+") d = " "
str = (str d)
}
}
$2 = str
}
# if (oct > 127) oct = 32
if (oct < 32) oct = 32
col = 64
dec = ""
while(col > 0){
d = int(oct/col)
dec = (dec d)
oct -= d*col
col = int(col/8)
}
str = (str "\\" dec)
} else {
if (d == "+") d = " "
str = (str d)
}
}
$2 = str
}
18nobodyさん
03/03/21 17:32ID:??? filt.awk (3/3)
$1 == "name" {
name = $2
}
$1 == "message" {
message = $2
}
END {
RS = "\n"
"date +'%y/%m/%d %T'" | getline time
print ("[" time ": " name "] " message)
}
$1 == "name" {
name = $2
}
$1 == "message" {
message = $2
}
END {
RS = "\n"
"date +'%y/%m/%d %T'" | getline time
print ("[" time ": " name "] " message)
}
19nobodyさん
03/03/21 17:32ID:??? filt.sed (1/1)
s/&/\&/g
s/</\</g
s/>/\>/g
s/"/\"/g
s/&/\&/g
s/</\</g
s/>/\>/g
s/"/\"/g
22nobodyさん
03/03/21 18:02ID:??? うえーん!ソースコピペ荒らし反対!!!
24nobodyさん
03/03/22 12:41ID:Ve1PHIbC26nobodyさん
03/03/23 14:34ID:emAJ6ArI shスクリプトで投稿文のデコードはどう行なうの?
http://www.mahoroba.ne.jp/~makkie7/CGI/cgi_008.html
ここ見ながら勉強を初めたのだが、うちのサーバーには
cgiparseというソフトが見あたらない。そのHPにはNCSA
のサーバなら附属してくるとなっているが、 当方Apache
なので。。。
どなたか御教示を頂ければ。
http://www.mahoroba.ne.jp/~makkie7/CGI/cgi_008.html
ここ見ながら勉強を初めたのだが、うちのサーバーには
cgiparseというソフトが見あたらない。そのHPにはNCSA
のサーバなら附属してくるとなっているが、 当方Apache
なので。。。
どなたか御教示を頂ければ。
27nobodyさん
03/03/23 15:21ID:??? >>26
作ろか?標準入力から入ってきたデータURLデコードするプログラム。
って言うかawkでも使えば?じゃあPerl使った方が早いなぁ・・・。
って言うかPerlの関数呼び出しとshのプロセス起動させまくり、どっちが軽いの?
作ろか?標準入力から入ってきたデータURLデコードするプログラム。
って言うかawkでも使えば?じゃあPerl使った方が早いなぁ・・・。
って言うかPerlの関数呼び出しとshのプロセス起動させまくり、どっちが軽いの?
28nobodyさん
03/03/23 15:33ID:emAJ6ArI29nobodyさん
03/03/23 17:48ID:??? >>28
27じゃないけど、単に標準入力から読んでデコードして標準出力に書き出すだけならこれでいいかな。
きちんとテストしていないけど。一度全てバッファに取り込んだ方がいいかな?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char s[3]={0};
int c;
while((c=getchar())!=EOF){
switch(c){
case '+':
putchar(' ');
break;
case '%':
s[0]=((c=getchar())==EOF)?'\0':c;
s[1]=((c=getchar())==EOF)?'\0':c;
putchar(strtol(s,NULL,16));
break;
default:
putchar(c);
break;
}
}
return 0;
}
27じゃないけど、単に標準入力から読んでデコードして標準出力に書き出すだけならこれでいいかな。
きちんとテストしていないけど。一度全てバッファに取り込んだ方がいいかな?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char s[3]={0};
int c;
while((c=getchar())!=EOF){
switch(c){
case '+':
putchar(' ');
break;
case '%':
s[0]=((c=getchar())==EOF)?'\0':c;
s[1]=((c=getchar())==EOF)?'\0':c;
putchar(strtol(s,NULL,16));
break;
default:
putchar(c);
break;
}
}
return 0;
}
30nobodyさん
03/03/23 21:53ID:emAJ6ArI03/03/23 22:26ID:???
sh スクリプトで URL デコード。
URL エンコードされてない無関係な文字列が入ってると破綻するけど。
% cat urldec.sh
#!/bin/sh
( echo ibase=16; echo obase=8; echo "$@" | tr a-z% A-Z\\n ) |\
bc |\
while read a; do
echo -e \\0$a
done |\
tr -d \\n
% sh urldec.sh %A4%DB%A4%B2
URL エンコードされてない無関係な文字列が入ってると破綻するけど。
% cat urldec.sh
#!/bin/sh
( echo ibase=16; echo obase=8; echo "$@" | tr a-z% A-Z\\n ) |\
bc |\
while read a; do
echo -e \\0$a
done |\
tr -d \\n
% sh urldec.sh %A4%DB%A4%B2
32nobodyさん
03/03/23 23:12ID:826klXke >>11
おいらLISP(clisp)でつくってるよ〜
#! /usr/bin/perl
open (MYLISP,">mylisp.lisp");
print MYLISP "S式";
close(MYLISP);
system("clisp mylisp.lisp");
こんなんだけど・・・
おいらLISP(clisp)でつくってるよ〜
#! /usr/bin/perl
open (MYLISP,">mylisp.lisp");
print MYLISP "S式";
close(MYLISP);
system("clisp mylisp.lisp");
こんなんだけど・・・
33nobodyさん
03/03/23 23:15ID:e2yFDnGv03/03/23 23:26ID:???
そういえば、cgi じゃなくて httpd そのものが
sh で書かれてるというのがあるんだった。
http://www.ascii.co.jp/pb/book1/announce/inet256/Source/shttpd
sh で書かれてるというのがあるんだった。
http://www.ascii.co.jp/pb/book1/announce/inet256/Source/shttpd
38nobodyさん
03/03/25 15:20ID:??? mod_brainfuck で…。(誰か使ってる人いない?)
39nobodyさん
03/03/29 00:47ID:??? なつかしーな。1994年ごろは、カウンタっていったら、shとperlが半々だったきがする
40nobodyさん
03/04/06 00:59ID:/7G2cvSN >>39
shスクリプトが生き残れなかったのはなんでだろう?
shスクリプトが生き残れなかったのはなんでだろう?
41nobodyさん
03/04/06 02:18ID:??? 外部コマンドを大量に起動するためにオーバヘッドが非常に大きく遅い。
shから呼ばれる外部コマンドのパスや引数や実装がOSによって大きく異なる。
あまつさえ/bin/sh自身がOSによって互換性がない。
shから呼ばれる外部コマンドのパスや引数や実装がOSによって大きく異なる。
あまつさえ/bin/sh自身がOSによって互換性がない。
43nobodyさん
03/04/11 06:31ID:??? 毎回自分自身がどのような環境に置かれた sh なのか調査した上で動き出すようにすればよい。
44nobodyさん
03/04/14 17:51ID:??? configureかよ!
45山崎渉
03/04/17 12:09ID:??? (^^)
46山崎渉
03/04/20 06:23ID:??? ∧_∧
( ^^ )< ぬるぽ(^^)
( ^^ )< ぬるぽ(^^)
47nobodyさん
03/05/01 00:19ID:nSLOiiM0 echo "AGE"
48bloom
03/05/01 00:29ID:YcBKOzoM49nobodyさん
03/05/11 14:24ID:??? multipart/form-data ならデコードしなくて済むのでわ,
と言ってみるテスト
と言ってみるテスト
50山崎渉
03/05/22 02:06ID:??? ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
51山崎渉
03/05/28 17:18ID:??? ∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
03/06/16 05:36ID:???
>>41
> 外部コマンドを大量に起動するためにオーバヘッドが非常に大きく遅い。
> shから呼ばれる外部コマンドのパスや引数や実装がOSによって大きく異なる。
> あまつさえ/bin/sh自身がOSによって互換性がない。
上のほうでシェルスクリプトがperlより軽いとか言ってるのはウソなんですね。
> 外部コマンドを大量に起動するためにオーバヘッドが非常に大きく遅い。
> shから呼ばれる外部コマンドのパスや引数や実装がOSによって大きく異なる。
> あまつさえ/bin/sh自身がOSによって互換性がない。
上のほうでシェルスクリプトがperlより軽いとか言ってるのはウソなんですね。
53nobodyさん
03/06/16 10:17ID:??? ほんとうに sh しか使わんのならかなり軽いよ。
ただ、ある程度以上の規模になると外部コマンドを fork せずに
スクリプトを書くことができない。だから総体として重くなる。
ある程度以上の規模のスクリプトなら、
いったん中間言語にコンパイルしてから実行する perl にはかなわんね。
ただ、ある程度以上の規模になると外部コマンドを fork せずに
スクリプトを書くことができない。だから総体として重くなる。
ある程度以上の規模のスクリプトなら、
いったん中間言語にコンパイルしてから実行する perl にはかなわんね。
54nobodyさん
03/06/17 06:33ID:??? >いったん中間言語にコンパイルしてから実行する perl にはかなわんね。
テキスト−>解析−>実行
テキスト−>解析−>中間コード生成−>解析−>実行
Perlの方が遅くないか?JSPの初回起動みたいなもんだろ。
ループとかだと若干有利か。
テキスト−>解析−>実行
テキスト−>解析−>中間コード生成−>解析−>実行
Perlの方が遅くないか?JSPの初回起動みたいなもんだろ。
ループとかだと若干有利か。
55nobodyさん
03/06/29 00:14ID:??? @system("echo <HTML>")
56山崎 渉
03/07/15 11:16ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
57山崎 渉
03/08/02 02:35ID:??? ∧_∧
( ^^ )< ぬるぽ(^^)
( ^^ )< ぬるぽ(^^)
58ぼるじょあ ◆ySd1dMH5Gk
03/08/02 05:15ID:??? ∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
59山崎 渉
03/08/15 23:04ID:??? (⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
60nobodyさん
04/01/29 09:43ID:??? 保守
62nobodyさん
04/12/11 02:12:40ID:??? 1994年ごろ、
カウンタつっても、Perlかshでつくったものしかなかったよ・・・なつかしや
カウンタつっても、Perlかshでつくったものしかなかったよ・・・なつかしや
63nobodyさん
04/12/11 02:13:19ID:??? うわ、11ヶ月ぶりのレスじゃねーかw
64nobodyさん
2005/11/29(火) 20:35:42ID:6biAl2f4 apacheでshでCGI動かす設定ってどうやるんですか?
perlとC(バイナリ)では正常に動くんですけど・・・
shだと500 internal server errorになります。
ちなみにシェルはcsh使ってます
perlとC(バイナリ)では正常に動くんですけど・・・
shだと500 internal server errorになります。
ちなみにシェルはcsh使ってます
65nobodyさん
2005/11/30(水) 02:21:29ID:??? CGIなんだから、一行目にシェバングパスを書かないとだめだぞと。
66nobodyさん
2005/11/30(水) 07:51:57ID:???67nobodyさん
2007/05/26(土) 09:24:51ID:??? ほす
68nobodyさん
2008/10/15(水) 20:02:22ID:CwbSjCAQ ぺす
69nobodyさん
2008/10/21(火) 12:33:37ID:??? 昔アセンブラでCGI作って動かしてたな(´・ω・`)
70nobodyさん
2008/11/14(金) 13:01:21ID:elYW8Na3 >>26
つNKF
つNKF
71nobodyさん
2008/11/14(金) 18:55:25ID:???72nobodyさん
2011/01/26(水) 22:13:55ID:??? シェルスクリプトでてきとうにURLでこーど
#!/bin/bash
#環境変数[QUERY_STRING]を[&]を空白に変換しパース
_QRYVAL=`echo "$QUERY_STRING" | tr '&' '\t'`
#引数解析
for v in $_QRYVAL
do
#[=]を空白に変換し配列化
v=(`echo "$v" | tr '=' '\t'`)
#formの[name]に[value]を格納(URLデコード)
eval "${v[0]}"="`echo ${v[1]} | tr % = | nkf -emQZ1`"
done
#!/bin/bash
#環境変数[QUERY_STRING]を[&]を空白に変換しパース
_QRYVAL=`echo "$QUERY_STRING" | tr '&' '\t'`
#引数解析
for v in $_QRYVAL
do
#[=]を空白に変換し配列化
v=(`echo "$v" | tr '=' '\t'`)
#formの[name]に[value]を格納(URLデコード)
eval "${v[0]}"="`echo ${v[1]} | tr % = | nkf -emQZ1`"
done
74nobodyさん
2013/07/26(金) NY:AN:NY.ANID:??? echo "hoshu"
75nobodyさん
2015/11/11(水) 23:47:23.65ID:OBd/4WeX 転職の際に必ず思い出してください。
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in 東京
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in 東京
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される
76nobodyさん
2017/12/30(土) 13:05:12.28ID:YhlYw6jg 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
QSCHX4VEAB
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
QSCHX4VEAB
77nobodyさん
2023/05/01(月) 10:28:17.48ID:??? イップク♪ (○`ε´○)y-~~~
78nobodyさん
2023/09/24(日) 18:06:56.12ID:??? ~~-y( ̄▽ ̄*)ゥヶヶ♪
79nobodyさん
2023/10/20(金) 01:21:09.53ID:??? これが幸せってやつなのかな?
レスを投稿する
ニュース
- 【W杯】「フランスにフランス人はいない」準決勝で対戦するスペインの元首相の発言が大炎上「人種差別的な暴言」 [ネギうどん★]
- 【サッカー】FIFA会長、2030年大会の“64カ国拡大案”への検討を明言「どの国もW杯出場を夢見る権利を持つべき」 [首都圏の虎★]
- 「相手役に恵まれすぎてた」「つぅーーーーせつに実感している」佐藤二朗、2度の楽屋訪問から2週間後に発信し削除した投稿が物議★12 [Ailuropoda melanoleuca★]
- 【芸能】有吉弘行 渡部建とトラブルの鬼越・良ちゃんに憤慨「吉本の人間は吉本以外はクソみたいなもん」 [冬月記者★]
- 「やっぱりだめだ」富士山下山中に疲労で動けなくなった男性(54)が再び救助要請…登山時に引き続き2日連続で救助求める ★2 [おっさん友の会★]
- 【芸能】「おじさんはキャップを被るな」の風潮にとろサーモン・久保田が大反論! 「じゃあババアはミニスカートをはくなよと」 [冬月記者★]
- 死んだあとってどうなるんだろう、、、 [904880432]
- 来週のジャンプ
- コンマゾロ目だったら優勝
- 【安倍悲報】まちカドまぞくの千代田桃ちゃんで「明日があるさ」の替え歌を歌ったよ😍 [279951338]
- 安倍晋三「いわばまさに、明日は海の日であります」 [744361492]
- ピッコロってあの親と境遇でよく人格者に育ったよな