- ベストアンサー
CGIエラー、どうしたらいいか・・・。
perlで書いたcgiを実行すると、 The specified CGI application misbehaved by not returning a complete set of HTTP headers. というエラーが出てしまいます。環境は、windows2003、iis6.0、最新のactiveperlインストール済。perlの内容は、HP閲覧者に情報を入力し、完了後メールを送信するというものです。 require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*in); $mailStyle=$in{'mailStyle'}; &jcode'convert(*mailStyle,'sjis'); $email=$in{'email'}; &jcode'convert(*email,'euc'); $checkFlg=$in{'ChFlg'}; &jcode'convert(*checkFlg,'euc'); if($checkFlg eq ""){ &RootError(); } use Net::SMTP; $smtp = Net::SMTP->new('192.0.0.10'); if(open(ML,"C:/WINDOWS/system32/cdosys.dll")){ $to='**@***.co.jp'; $smtp->mail($email); $smtp->to($to); $smtp->data(); $smtp->datasend("$mailStyle\n"); $smtp->dataend(); $smtp->quit; 以前、linuxで動いてたのでそれを移行するという感じです。どうかよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
IISでアプリケーションのマッピングは済んでいますか? require 'cgi-lib.pl'; require 'jcode.pl'; ですが、パスは合っていますか? パスの記述は、LinuxとWindowsでは異なったような気がします。
その他の回答 (2)
- chie65536
- ベストアンサー率41% (2512/6032)
最低限 print "Content-type: text/html\r\n\r\n"; が無いと、CGIが動いても、CGIの結果をブラウザに送出サーバーが困ると思いますが。 これはCGIのソースの抜粋した一部ですよね? 出てるエラーが print "Content-type: text/html\r\n\r\n"; が無い時っぽいので…。
補足
すいません。入力文字数の関係等でperlの続きを書きませんでした。続きで、 print <<EOF; Content-type: text/html; この後に、表示するHTMLが記入されています。windowsXPではうまくいったんですが・・・。
- Ikonos00
- ベストアンサー率28% (86/302)
その行の他にエラーの文は出てないですか? とりあえず、思いつくのは、 同じディレクトリに、 cgi-lib.pl、およびjcode.plはありますか?
補足
'cgi-lib.pl'と'jcode.pl'はc\wwwroot\cgi-binの中に、実行対象のcgiファイルと一緒に入っています。 また、エラー内容は、他には何も出ていません。 HPで調べて、パスをc\wwwroot\cgi-bin\cgi-lib.plとc\wwwroot\cgi-bin\jcode.plと変更し実行しましたが結局同じエラーでした。引き続きどうかお願い致します。