2017-01-14 5 views
0

Ich verwende Firefox-Add-On namens "Session Manager" zum Speichern und Wiederherstellen von Sitzungen. Ich habe einfach php + HTML-Formular:Wie POST Daten von wiederhergestellten Sitzung bilden?

<form id="form_id" enctype="multipart/form-data" method="post" action="upload.php"> 
    <input id="name$key" type="text" placeholder="Name" name="name[]" value="$name"> 
    <input type="file" name="fileToUpload[]" id="fileToUpload$key"> 
    <input id="submit" name="submit" type="submit" value="Submit"> 
</form> 

Wenn ich wiederherstellen Formulareingaben Daten mit „Session Manager“ Ich kann alle Daten sehen was ich brauche. Wenn ich auf "Senden" klicke, haben die Daten $_POST leer.

Was kann ich tun, um diese Daten nicht zu verlieren?

Vielleicht einige JQuery oder session_start(); $_SESSION zu verwenden?

+0

hier gibt es kein php/jquery, überprüfen Sie auf Fehler –

+0

Können Sie den Inhalt von upload.php posten? Das wird uns helfen, Ihren Code zu debuggen. –

+0

@RunnyYolk upload.php hat einfach - 'echo" "; exit();' Wenn ich ohne "Session Manager" Add-on posten alles ok, aber wenn ich die Sitzung mit " Session Manager ", die Daten sind leer. – kostya572

Antwort

1

Firefox-Add-on "Session Manager" scheint falsch zu arbeiten, wenn html <form>enctype="multipart/form-data" mit dem Attribut setted. Wenn Sie einige Dateien über POST senden möchten, verwenden Sie <form> Attribut enctype="application/x-www-form-urlencoded" in Verbindung mit php copy(). Das ist keine saubere Lösung. Vielleicht könnte es andere Lösungen mit enctype="multipart/form-data" geben, vielleicht könnten einige Anforderungen mit Formular accept-charset Ihnen bessere Ergebnisse geben.

+0

Vielen Dank für Ihre Lösung +1 – gibberish

0

Das Session Manager Plugin in Firefox ist überhaupt nicht mit PHP Sitzungen verbunden. Das gleiche Wort, ganz andere Bedeutungen.

Eine Firefox-Sitzung ist Ihr Browser Tabs und die Websites, auf die sie zugreifen. Eine PHP-Sitzung bezieht sich auf eine Benutzersitzung auf einer bestimmten Website.

Sehr wahrscheinlich sind die Daten, die Sie in den Formularen "gespeichert" sehen, nur Felddaten, die nur in Firefox gespeichert werden, um den Datenrücklauf zu beschleunigen. Es ist noch nicht wirklich "in" den Formularfeldern, sondern in Firefox gespeichert (nur, nicht auf der Website), um die erneute Eingabe von häufig getippten Daten zu erleichtern.

Wenn Sie eine Verbindung zu einer Website verlieren, verlieren Sie die in den Feldern eingegebenen Daten. Das Aktualisieren der Seite verliert die in den Feldern eingegebenen Daten. Dafür gibt es keinen Workaround, es ist einfach so.

Wenn Sie weitere Fragen haben, bitte fragen Sie in Kommentaren unter dieser Antwort.

Edit:

Re-Denken, kann es möglich sein, eine Art von Lösung unter Verwendung eines JavaScript/jQuery (bitte, jQuery) Lösung zu erreichen, die erkannt beinhaltet, wenn Felder verlassen werden (blur()) und anschließender Grabbing der Daten und Speicherung in localStorage.

Referenzen:

https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API

http://www.w3schools.com/html/html5_webstorage.asp

When is localStorage cleared?

What is the max size of localStorage values?

+0

ohne Addon funktioniert alles und es postet ohne ein Problem. Sie haben recht damit, dass Daten nicht wirklich "in" die Formularfelder speichern. Vielleicht gibt es einen Ajax-Code, der Dom mit diesen Daten reinitialisieren kann?Logischerweise kann ich nicht glauben, wenn ich getippte Daten in Formularen sehe, damit ich keine korrekten POST-Daten senden kann. – kostya572

+0

Möglicherweise suchen Sie nach einem clientseitigen Code wie [localStorage] (http://archive.oreilly.com/oreillyschool/courses/javascript2/IntroLocalStorage.html) und [siehe auch] (http: // stackoverflow. com/a/19861332/1447509) * (localStorage ist wie Cookies ver 2 - einfacher zu bedienen, und kann bis zu 10 MB pro Website, ab FF45 + halten) * – gibberish

+0

Vielen Dank, ich werde es versuchen. – kostya572

Verwandte Themen