![]() |
| カレッヂ |
質問者 ももんが
投稿日 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裏技 |