- ベストアンサー
fopenでファイルが開かない場合・・
現在あるサーバ上で問題なく利用できるファイル関数のfopenが、別のサーバに変えたらエラーになってしまいました。 if( ( $fp = fopen( $dir.$datefile ,"w" ) ) != FALSE ){ print "OK"; exit; // fwrite( $fp , $new_data ); // @chmod( $dir.$datefile , 0755 ); } else { print "no"; exit; } 上記で else に入ってしまいます。 なにか原因があるのでしょうか、まったくわからず困っています。 どなたかご教授下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
fopen関数は指定したファイルが存在しない場合は新たにファイルを作成します。 そのため、指定したファイルが存在しない場合はそのディレクトリに対する書き込み権限が必要になります。 パーミッションをチェックしてみて下さい。 ご自分でディレクトリの権限を変更できない場合は、サーバー管理者に問い合わせてみて下さい。
その他の回答 (2)
- little-m
- ベストアンサー率44% (45/102)
>なにか原因があるのでしょうか、まったくわからず困っています。 エラーメッセージは出力されませんか? エラーメッセージが出力されないようなら、ソースの先頭に error_reporting(E_ALL); ini_set('display_errors', TRUE); などを記述してみてください。 fopen()でエラーが発生しているなら、メッセージが表示されると思います。
- utano_m
- ベストアンサー率45% (14/31)
$dirに入っているディレクトリのパーミッションは 書き込み許可になっていますか? fopen()関数のwモードではファイルが存在しない場合 作成を試みるので書き込み許可パーミッションが与えられてない場合 ファイルの作成に失敗しエラーを返すと思います。 書かれているソースコードはそのままの状態で現在のサーバーで動いていますか?