電子書籍の厳選無料作品が豊富!

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

A 回答 (3件)

IISでアプリケーションのマッピングは済んでいますか?



require 'cgi-lib.pl';
require 'jcode.pl';
ですが、パスは合っていますか?
パスの記述は、LinuxとWindowsでは異なったような気がします。

この回答への補足

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

補足日時:2006/06/13 17:29
    • good
    • 0

最低限


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ではうまくいったんですが・・・。

補足日時:2006/06/13 17:45
    • good
    • 0

その行の他にエラーの文は出てないですか?



とりあえず、思いつくのは、
同じディレクトリに、
cgi-lib.pl、およびjcode.plはありますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!