プロが教える店舗&オフィスのセキュリティ対策術

[Mon Oct 16 16:27:12 2006] [error] [client 207.46.98.48] Premature

end of script
headers: prev.cgi

[Mon Oct 16 16:27:13 2006] [error] [client 66.249.72.6] damy.dat Cannot Open
at /home/e-fresh/public_html/prev.cgi line 71.

サーバに上記のようなエラーログがありまして,
ファイル作成&書込みができません。
私自身としては,サーバのフォルダに書込み権限が無い事が考えられます

が,それをチェックする方法があれば併せてご教示願います。

prev.cgiの中身は下記の通りです。
$damy = 'damy.dat';
open DB,"$d_file" or die "$d_file オープン失敗";
open DAMY,">$damy" or die "$damy Cannot Open";
while (<DB>){
           …}
close DAMY;
close DB;
#ダミーファイルをデータファイルにリネーム
rename($damy, $d_file) or die "Could not RENAME $damy TO $d_file";

A 回答 (2件)

>私自身としては,サーバのフォルダに書込み権限が無い事が考えられます


>が,それをチェックする方法があれば併せてご教示願います。

openする前にチェックするのであればフアイルテスト演算子です。
http://www.rfs.jp/sb/perl/02/08.html#%E3%83%95%E …

サンプル
$test_file = './test.dat';
unless(-w $test_file){print "$test_file は書き込めません";}
else{print "$test_file は書き込み出来ます ";}
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
大変参考になりました。

お礼日時:2006/11/27 14:02

$!(ドルビックリ)にその答えが入っています。



open DAMY,">$damy" or die "$damy Cannot Open";

open DAMY,">$damy" or die "$damy Cannot Open: $!";
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
大変参考になりました。

お礼日時:2006/11/27 14:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!