• 締切済み

CGIにおけるサーバへのファイル書込みについて

[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";

みんなの回答

回答No.2

>私自身としては,サーバのフォルダに書込み権限が無い事が考えられます >が,それをチェックする方法があれば併せてご教示願います。 openする前にチェックするのであればフアイルテスト演算子です。 http://www.rfs.jp/sb/perl/02/08.html#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%86%E3%82%B9%E3%83%88%E6%BC%94%E7%AE%97%E5%AD%90%E3%81%AE%E4%B8%80%E8%A6%A7 サンプル $test_file = './test.dat'; unless(-w $test_file){print "$test_file は書き込めません";} else{print "$test_file は書き込み出来ます ";}

sankan2006
質問者

お礼

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

  • guci-ok
  • ベストアンサー率33% (49/146)
回答No.1

$!(ドルビックリ)にその答えが入っています。 open DAMY,">$damy" or die "$damy Cannot Open"; ↓ open DAMY,">$damy" or die "$damy Cannot Open: $!";

sankan2006
質問者

お礼

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

関連するQ&A