カレッヂ |
質問者 ももんが
投稿日 2003/12/22(月) 02:39:05
先にプログラムを載せておきます。 ファイル名index.shtml <html> <head><title>ログテスト</title></head> <body> ログテスト <!--#exec cgi="test.cgi"--> </body> </html> ファイル名 test.cgi #! /usr/bin/perl # アクセス情報の整形 $ln = "test"; # ファイルへの書き込み open(FILE, ">>test/test.txt") or die("ERROR: open log-file."); eval{ flock(FILE, 2) }; seek(FILE, 0, 2); print FILE $ln; close FILE; というSSIを使ってtest.txtファイルに記入したいのですが。 ファイルへの記入はちゃんと出来ているのにブラウザには 「ログテスト」の後ろに「サーバーの内部エラー サーバの内部でエラーまたは設定上の問題が発生したた め、リクエストを処理できませんでした。このディレクトリへの CGI アクセスが有 効にされているかどうか、サーバの管理者にご確認ください。」 との表示が出てしまいます。 レンタルサーバーの管理者に問い合わせてみたところ。 「ログは取れていてもファイルの設置や設定が間違っているとエラーは表示されます。サーバー内部のcgiが正常に動作しているか確認致 しましたところ不具合はございません。設置したファイルはトップページでしょうか? 当社サーバーの場合ですとSSIのファイルの拡張子は.shtmlである必要がございま す。」 との返答をいただきました。もちろん.shtmlにしてありますし。 何よりプログラムは動いて書き込みはされているのです。 それなのにエラー表示が出てしまうのはどこかの記述に間違いがあるのでしょうか? ご教授願いたいと思います。
プロバイダ参照: |
回答者 トンマ
[削除]
投稿日 2003/12/29(月) 02:29:12
#! /usr/bin/perl # アクセス情報の整形 $ln = "test"; print "Content-type:text/html\n\n"; # ファイルへの書き込み open(FILE, ">>test/test.txt") or die("ERROR: open log-file."); eval{ flock(FILE, 2) }; seek(FILE, 0, 2); print FILE $ln; close FILE; CGIスクリプトを実行したのにもかかわらず 何も出力結果が出なかったので、サーバーは エラーを出したものと思います。 よって、 print "Content-type:text/html\n\n"; を追加することによりエラーを防ぐことができると思います。 |
質問者 ももんが
[削除]
投稿日 2004/1/1(木) 14:44:52
レスありがとうございます! 指示されたように修正しましたら問題なく動作しました。 私には思いもよらない原因でした。 この掲示板に書き込んでよかったと思います。 トンマさんありがとうございました、非常に感謝しております。 CGIについてもっと精進したいと思います。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |