2017-04-30 15 views
0

私は、あるフィールドの名前を使用してファイルを作成し、そのファイルを開き、別のフィールドから内容を書き込むために使用しているコードを持っています。それはうまく動作します。ファイルがすでに存在する場合にファイルを上書きする

ただし、このファイルをプルアップして情報を変更して保存しようとすると、情報が上書きされません。

ユーザーがファイルを削除しても同じ名前を使用して再作成しますが、新しいデータを入力しようとすると、新しいファイル(古いファイルと同じ名前)が作成されますが、更新されません。私はその原因を見つけることができません。

私はもともとfile_put_contentsを使用していましたが、私はfopen()に別のパラメータを使用しようとしましたが、動作していないようです。彼らは作成し保存することができますが、主な問題は、データを上書きしないので編集できず、ファイルを削除しても(回避策としても)同じ名前を使用して再作成することはできません。追加するために編集され

:彼らがしようとする代わりに、ファイルを開いて、それを上書きする、情報を保存するときはまた、第二、新しいファイルfilename.html.htmlを作成

// Put together the full path of the file we want to create 
$FILENAME = $USER_DIRECTORY.'/'.$_POST['CodeDescription'].'.html'; 
$CODE = $_POST['Code']; 
if(!is_file($FILENAME)): 

    // Open the text file, write the contents, and close it. 
    $fp = fopen($FILENAME, "w+") or die("Couldn't open $FILENAME for 
writing!"); 
    fwrite($fp, $CODE) or die("Couldn't write values to file!"); 
endif; 
header('Location: mywebsite.comsaved=1&file='.$FILENAME); 
} 
?> 
+0

作成したファイルのファイルアクセス権は何ですか? – DarkBee

+0

これらのファイルは現在644に設定されています。 –

+0

あなたはそれのためのフラグを使用する必要がありますファイル内容を入れてFILE_APPENDを参照してくださいフラグセクションを参照してくださいhttp://php.net/manual/en/function.file-put-contents.php –

答えて

2

迅速なハックかもしれませんこれを試してみてください:

// Put together the full path of the file we want to create 
$FILENAME = $USER_DIRECTORY.'/'.$_POST['CodeDescription'].'.html'; 
$CODE = $_POST['Code']; 

//Delete file if exists. 
if(is_file($FILENAME)) { 
    unlink($FILENAME); 
} 

    // Open the text file, write the contents, and close it. 
    $fp = fopen($FILENAME, "w+") or die("Couldn't open $FILENAME for 
writing!"); 
    fwrite($fp, $CODE) or die("Couldn't write values to file!"); 
header('Location: mywebsite.comsaved=1&file='.$FILENAME); 
} 
関連する問題