- ベストアンサー
初歩的な質問です、長文ですいませんが困っております。
初めてHP製作で掲示板を作りたいと思い、本(Perl/CGI辞典)を読みながら悪戦苦闘中です。まずは本のスレッド掲示板を作たのですが、なぜか出力されません。PERLのチェックはHPでやって異常ありませんでしたが、なぜか「500Internal Server Error」になってしまいます。まずは出力部分と思い抜粋して見たのですが、これまた出力されません。以下にその部分を貼り付けますので、どなたかお教え願えないでしょうか? #!C:\perl\bin\perl -w print<<HTML_EOF; Content-type:text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML LANG="ja"> <HEAD><TITLE>$bbstitle</TITLE> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY BGCOLOR="${bgcolor}"> <BR> <B>$bbstitle</B><BR> <FORM ACTION="${cginame}" METHOD=POST> <TABLE WIDTH='90%'> <TR> <TD WIDTH=30>名前</TD> <TD><INPUT TYPE="TEXT" NAME="name" SIZE=30 VALUE="$name"></TD> </TR> <TR> <TD>Mail:</TD> <TD><INPUT TYPE="TEXT" NAME="mail" SIZE=30 VALUE="$mail"></TD> </TR> <TR> <TD>URL:</TD> <TD><INPUT TYPE="TEXT" NAME="url" SIZE=60 VALUE="$url"></TD> </TR> <TR> <TD>TITLE:</TD> <TD><INPUT TYPE="TEXT" NAME="title" SIZE=60></TD> </TR> <TR> <TD></TD> <TD><TEXTAREA NAME="comm" COLS=60 ROWS=6></TEXTAREA></TD> </TR> </TABLE> <INPUT TYPE="SUBMIT" VALUE="投稿"> <INPUT TYPE="RESET" VALUE="クリア"></FORM> <BR> </BODY> </HTML> HTML_EOF
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
最初のスクリプトが質問文の通りだとすると 末尾に改行が必要です </HTML> HTML_EOF <=FILEがここで終わるとエラー </HTML> HTML_EOF <=ここでfileが終わりならOK ##### で、何らかのHTTPDをお使いのようですから エラーログに Can't find string terminator "HTML_EOF" anywhere before EOF at スクリプト名 と記録されたはずです コマンドプロンプトで c:\hogehoge>perl -w スクリプト名 と打っても同じエラーメッセージが出たはずです
その他の回答 (2)
- qtea
- ベストアンサー率77% (38/49)
最初の行が #!C:\perl\bin\perl -w となっているので、print<<HTML_EOF;で出力されるHTMLの前に、ワーニングが出力されているのではないかと思います。 ワーニングは、$bbstitleなどの変数が初期化(値が入っていない)されていない為発生しています。 対処方法としては、「-w」をはずすか、使用している変数は必ず初期化するか、のどちらかです。
お礼
MR_JJさん・qteaさん有難うございました。 「-w」をはずしても、変数を初期化しても相変わらずダメでしたが、 my $str = ""; $str .=<<HTML_EOF; Content-type:text/html HTML部分 print $str; で出力は出来ました。 何でかは解りませんが。
- MR_JJ
- ベストアンサー率0% (0/1)
perlのパスが間違ってませんか?? 例: #!/usr/bin/perl 鯖にアップ後、パーミッションの変更はしましたか?
お礼
有難うございました。
補足
すいません、説明不足でした。まだサーバーへアップしてません。 ローカルでやってみた状態です。このパスでほかのプログラムは作動してます。
お礼
改行してみたら出力されました有難うございます。 皆さんご丁寧にお答えいただき有難うございました。