cgi

CGIが動かないときにチェックすること

パーミッションOK? 755になってる? perlのパス合ってる? #! /usr/bin/perl #!/usr/local/bin/perl 文字コード合ってる? ASCIIモードで転送している? 全角スペースに注意! ネタ元 http://sagittarius.dip.jp/toshi/premature.php http://www.futomi.com…

日本語の文字化けする文字対策

2バイト目が「\」になる文字が化けます。 ― ソ ? 表 予 能 申 十 構 貼 暴 欺 圭 噂 蚕 饅 箪 禄 兔 彌なので\でエスケープします。 ソ\フトあと2バイト目が@の文字でも化けます。対策方法は以下参照。ネタ元 http://cgi-design.net/cont/study/study.cgi?mo…

動的にデータを作って、任意のファイル名でダウンロードさせる

print "Content-Disposition: attachment;filename=sample.csv\n";とやるとOK。以下サンプル print "Content-type: text/x-hdml;charset=Shift_JIS\n"; print "Content-Disposition: attachment;filename=sample.csv\n"; print "\n"; for ($i=0; $i<=10; $i+…

CGIで特定の文字(表・予・申・能など)が文字化けする

SHIFT-JISでは文字化けする文字があるので、EUC-JPで書くのが無難とのこと。そうもいかない事情があるなら print "データファイルがオープンできません。<BR>".'申し訳ございませんが復旧までお待ちください。'."<BR>\n";こんな感じで文字化けする文字の部分だけ'(シ…

couldn't create child process: 720003とメッセージが出てcgiが動かない人へ

windowsでapatch/active perlな人向け。いろいろ原因はあると思いますが、cgiコードの一行目を #!/usr/bin/perlを #!/perl/bin/perlにしてみたら動くんじゃないでしょうか。

フォームで入力されたパラメータを取得する

test.html <html> <head> <body> <form action="cgi-bin/test.cgi"> <table> <tr> <td>名前:</td> <td><input type="text" size="20" name="name"></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" size="20" name="mail"></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="送信"> </td></tr></table></form></body></head></html>

DOS窓からGETで引数を受け取るcgiをテストするときに、引数を指定する方法

cgiの #!/usr/bin/perl の下あたりに unless ($ENV{REQUEST_METHOD}) { $ENV{REQUEST_METHOD}='GET'; $ENV{QUERY_STRING}=shift; }などと書いておき、 C:\> perl abc.cgi param=123&id=abc と引き数に指定してやればQUERY_STRINGとして渡されます。 参照 コ…