- ベストアンサー
Perlがサーバー上でうごきません
htmlファイルには <html> <form action="form2.cgi" method="get"> 食品名1<input type="text"name="form1"> <br> 食品名2<input type="text"name="form2"> <input type="submit"value="送信"> </form> </html> cgiファイルには #! /usr/bin/perl require "cgi-lib.pl"; &ReadParse(); print "Content-type:text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>フォーム</title>\n"; print "</head>\n"; print "<body>\n"; print "おいしい$in{'form1'}\n; print "まずい$in{'form2'}\n; print "</body>\n"; print "</html>\n"; exit; cgi-lib.plはサーバーにいれております。 どうしてうごかないのでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
スクリプト自体としては、 print "おいしい$in{'form1'}\n; print "まずい$in{'form2'}\n; で、 "が閉じられていませんね・・・
その他の回答 (3)
- pipipi523
- ベストアンサー率40% (148/365)
思いつくのは・・・ 1.パーミッションで実行権を設定してますか? 2.テキストモードでファイルをアップロードしました? (改行が、CR+LF(0x0d,0x0a)になっているとエラーになるようです) 3.#!/usr/bin/perlのところにperlが存在してますか? (telnetで"/usr/bin/perl -v"を実行してみてバージョンが表示される?) 4.同じディレクトリにcgi-lib.plは存在してますか? 5.cgi-lib.plの中に"sub ReadParse"がありますか? こんな感じです
- PrintScree
- ベストアンサー率25% (538/2091)
使用しているHTTPDはApacheですか?Apacheならerror.logのメッセージは英語だと思いますが… Linuxと仮定してエラー内容を見ると、CGIファイルのパーミッションが正しく設定されていないように思えます。 CGIファイルに実行権限を設定してみてください。
- PrintScree
- ベストアンサー率25% (538/2091)
使用しているHTTPDのエラーログにはなんと出ていますか? CGIの1行目を見る限り、UNIX/Linuxのようですが、OSを含めて実行環境(各ソフトのバージョン)を補足してください。
お礼
サーバの内部エラー サーバの内部でエラーまたは設定上の問題が発生したため、リクエストを処理できませんでした。このディレクトリへの CGI アクセスが有効にされているかどうか、サーバの管理者にご確認ください。 とでてきます。どこが問題でしょうか。
お礼
パーミッションOKです。 テキストモードでUPしました。 パールの位置指定は正確です。 同じディレクトリにcgi-lib.plはあります。 cgi-lib.plの中に"sub ReadParse"があります。 スクリプト自体は問題ないでしょうか。