私は、ユーザーが使用できるWYSIWYGエディタを備えたページを持っています。編集後、ボタンを押すことができ、javascriptは現在のページをsave.phpファイルにPOSTし、新しい情報でページを更新する必要があります。file_put_contentsが上書きされないのはなぜですか?
2つの問題があります。 1つは、最初にページに更新されたファイルが読み込まれないことです。ユーザーは更新されたページを表示するためにページをリフレッシュする必要があります(ファイルを書き込むには余分な時間がかかりますか?)。 2番目の問題は、初めて一時ファイルを作成した後に上書きすることができないため、最初の更新後にページが更新されないことです。 WYSIWYGエディタページ(editor.php)上
のJavascript機能::ここでは私が働いているスニペットですfopen
を使用しない理由
function refresh(html,username,info)
{
$.post("save.php", { html: html, username: username });
window.location = 'editor.php?info=' + info;
}
save.phpファイル
$html = $_POST['html'];
$username = $_POST['username'];
file_put_contents('temp/' . $username . '.txt', $html);
ゲーフィングセキュリティホール! 'username = ../save.php%00'と' html = <?php something evil'は誰でもあなたのPHPファイルを上書きして任意のコードを実行できるようにします – ThiefMaster
あなたのデータを常に適切に消毒します。方法がわからない場合は、チュートリアルをお読みください。 –
ファイルの作成時にどのような権限がありますか? – Jon