Ich habe eine Seite mit einem WYSIWYG-Editor, den der Benutzer verwenden kann. Nach der Bearbeitung können sie eine Taste drücken, und das Javascript sollte die aktuelle Seite in eine save.php-Datei POST und aktualisieren Sie die Seite mit neuen Informationen.Warum überschreibt file_put_contents nicht?
Es gibt zwei Probleme. Die erste besteht darin, dass die Seite anfangs nicht mit der aktualisierten Datei geladen wird. Der Benutzer muss die Seite aktualisieren, um sie aktualisiert zu sehen (vielleicht dauert es nur eine zusätzliche Sekunde, um die Datei zu schreiben?). Das zweite Problem besteht darin, dass nach dem ersten Erstellen der temporären Datei diese nicht überschrieben werden kann. Daher wird die Seite nach der ersten Aktualisierung nie aktualisiert. Hier sind die Schnipsel Ich arbeite mit:
Javascript-Funktion auf der WYSIWYG-Editor Seite (editor.php):
function refresh(html,username,info)
{
$.post("save.php", { html: html, username: username });
window.location = 'editor.php?info=' + info;
}
save.php Datei
$html = $_POST['html'];
$username = $_POST['username'];
file_put_contents('temp/' . $username . '.txt', $html);
GAPING SECURITY HOLE! 'username = ../save.php% 00' und' html = php something evil "erlaubt jedem, seine php-Datei zu überschreiben und beliebigen Code auszuführen – ThiefMaster
Bereinigen Sie Ihre Daten immer richtig. Wenn Sie nicht wissen, wie, lesen Sie bitte ein Tutorial. –
Welche Berechtigungen hat die Datei, wenn sie erstellt wird? – Jon