• ベストアンサー

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 に入ってしまいます。 なにか原因があるのでしょうか、まったくわからず困っています。 どなたかご教授下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

fopen関数は指定したファイルが存在しない場合は新たにファイルを作成します。 そのため、指定したファイルが存在しない場合はそのディレクトリに対する書き込み権限が必要になります。 パーミッションをチェックしてみて下さい。 ご自分でディレクトリの権限を変更できない場合は、サーバー管理者に問い合わせてみて下さい。

その他の回答 (2)

  • little-m
  • ベストアンサー率44% (45/102)
回答No.3

>なにか原因があるのでしょうか、まったくわからず困っています。  エラーメッセージは出力されませんか?  エラーメッセージが出力されないようなら、ソースの先頭に error_reporting(E_ALL); ini_set('display_errors', TRUE);  などを記述してみてください。  fopen()でエラーが発生しているなら、メッセージが表示されると思います。

  • utano_m
  • ベストアンサー率45% (14/31)
回答No.2

$dirに入っているディレクトリのパーミッションは 書き込み許可になっていますか? fopen()関数のwモードではファイルが存在しない場合 作成を試みるので書き込み許可パーミッションが与えられてない場合 ファイルの作成に失敗しエラーを返すと思います。 書かれているソースコードはそのままの状態で現在のサーバーで動いていますか?

関連するQ&A