• ベストアンサー

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で動いてたのでそれを移行するという感じです。どうかよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

IISでアプリケーションのマッピングは済んでいますか? require 'cgi-lib.pl'; require 'jcode.pl'; ですが、パスは合っていますか? パスの記述は、LinuxとWindowsでは異なったような気がします。

pa-man2go
質問者

補足

'cgi-lib.pl'と'jcode.pl'はc\wwwroot\cgi-binの中に、実行対象のcgiファイルと一緒に入っています。 また、エラー内容は、他には何も出ていません。 HPで調べて、パスをc\wwwroot\cgi-bin\cgi-lib.plとc\wwwroot\cgi-bin\jcode.plと変更し実行しましたが結局同じエラーでした。引き続きどうかお願い致します。

その他の回答 (2)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.3

最低限 print "Content-type: text/html\r\n\r\n"; が無いと、CGIが動いても、CGIの結果をブラウザに送出サーバーが困ると思いますが。 これはCGIのソースの抜粋した一部ですよね? 出てるエラーが print "Content-type: text/html\r\n\r\n"; が無い時っぽいので…。

pa-man2go
質問者

補足

すいません。入力文字数の関係等でperlの続きを書きませんでした。続きで、 print <<EOF; Content-type: text/html; この後に、表示するHTMLが記入されています。windowsXPではうまくいったんですが・・・。

  • Ikonos00
  • ベストアンサー率28% (86/302)
回答No.1

その行の他にエラーの文は出てないですか? とりあえず、思いつくのは、 同じディレクトリに、 cgi-lib.pl、およびjcode.plはありますか?

関連するQ&A