※ ChatGPTを利用し、要約された質問です(原文:PerlでInternal CGI Error Malformed Error)
PerlでInternal CGI Error Malformed Error
このQ&Aのポイント
Perlでメールフォームを作成しようとしていますが、sendmailを利用できないためJavaを使用してメール送信用のコマンドを作成しました。
しかし、Internal CGI Errorが発生してしまい、解決方法がわかりません。
Apacheのerror.logには"mailformed header from script. Bad header=0:"というメッセージが表示されています。
PerlでInternal CGI Error Malformed Error
こんばんわ。
皆様お忙しいところかと思いますが、
なにとぞお助けいただけますようお願いいたします。
環境
Perl5.0.8.2
VineLinux3.2
Apache1.3.33
皆様方から見るとなんでそんなことしてるの!?
と思われると思いますが、現在、perlにて、
メールフォームを作ろうと考えています。
ただperlからのメールフォームは、sendmailを
利用したものが多いのですが、sendmailが
インストールできない環境な為、
Javaにてメール送信用のコマンドを作成しまして、
ファイルパスをパラメータとして渡すことで、
メールが送信出来るにはなりました。
(文字化けなどが発生していますが(汗))
一々forkするのはお勧めできないと言うのは
置いておいて、Internal CGIErrorが発生してしまい、
よく解決方法がわかりません。(perl初心者です)
Apacheのerror.logには以下のメッセージが出ています。
mailformed header from script. Bad header=0:
切り分けのために以下のコードだけにして実行してみたのですが、動作は正しいのですが、internal CGI error
が発生してしまいます。
$status = system($COMMAND);
print "Content-Type:text/html\n\n";
print "success";
hello perlではこんな感じで表示できているので、
system関数自体がそもそも駄目なのでしょうか・・・。
申し訳ございませんがご教示ください。
以上
お礼
ポイントをお礼したいです。
補足
深夜なのに回答いただきましてありがとうございます。 私は、もう疲れ果てまして、寝てしまっておりました。 申し訳ございません。 結果的に、mizuno3さんのレスで、InternalCGIErrorは、解決することが出来ました。 ありがとうございます! systemが何か出力しているとのことで、 system関数を含め、 $status = system($COMMAND); print "Content-Type:text/html\n\n"; print "$status"; としたところ、0が表示されました。 error.logで表示されていた、bad header=0というのは そのものの0が出力されているという意味 だったのですね(汗) そもそものコードは、 $status = system($COMMAND); print "Content-Type:text/html\n\n"; print "success"; のようになっていますので$statusを 処理していなかったため、という事のようですが print も発行していないのに出力されるのが、 完全に盲点でした。参考になりました。 perlとは、難しい言語なのですね。 なぜこんな動作か説明していただけると向学の為にも ありがたいです。 以上よろしくお願いいたします。