アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在あるサーバ上で問題なく利用できるファイル関数のfopenが、別のサーバに変えたらエラーになってしまいました。

if( ( $fp = fopen( $dir.$datefile ,"w" ) ) != FALSE ){
print "OK";
exit;
// fwrite( $fp , $new_data );
// @chmod( $dir.$datefile , 0755 );
} else {
print "no";
exit;
}

上記で else に入ってしまいます。
なにか原因があるのでしょうか、まったくわからず困っています。
どなたかご教授下さい。

A 回答 (3件)

fopen関数は指定したファイルが存在しない場合は新たにファイルを作成します。



そのため、指定したファイルが存在しない場合はそのディレクトリに対する書き込み権限が必要になります。

パーミッションをチェックしてみて下さい。
ご自分でディレクトリの権限を変更できない場合は、サーバー管理者に問い合わせてみて下さい。
    • good
    • 0

>なにか原因があるのでしょうか、まったくわからず困っています。



 エラーメッセージは出力されませんか?
 エラーメッセージが出力されないようなら、ソースの先頭に

error_reporting(E_ALL);
ini_set('display_errors', TRUE);

 などを記述してみてください。
 fopen()でエラーが発生しているなら、メッセージが表示されると思います。
    • good
    • 0

$dirに入っているディレクトリのパーミッションは


書き込み許可になっていますか?
fopen()関数のwモードではファイルが存在しない場合
作成を試みるので書き込み許可パーミッションが与えられてない場合
ファイルの作成に失敗しエラーを返すと思います。

書かれているソースコードはそのままの状態で現在のサーバーで動いていますか?
    • good
    • 0

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