Daten der ersten Seite werden beim erneuten Aufruf des Formulars aus Session gelöscht
Hallo,
ich habe ein mehrseitiges Formular (1 Formular mit dem Feldtyp "Absendefeld und Seitenumbruch). Wenn man über die Vor- und Zurück-Buttons navigiert, verhält es sich wie gewünscht und behält die bereits eingegebenen Eingaben in der Session (sessionform dürfte dafür verantwortlich sein).
Wenn man das Formular verlässt und etwa zur Startseite zurückkehrt, sind die Eingaben weiterhin in der Session gespeichert ($_SESSION['FORM_DATA']). Kehrt man jedoch zur ersten Seite des Formulars zurück, so werden alle Formulardaten, welche sich auf Eingabefelder der ersten Seite beziehen, aus der Session gelöscht. Die Eingaben der weiteren Seiten befinden sich jedoch weiterhin im Session-Array!
Zur Überprüfung befindet sich auf jeder Seite folgendes Snippet:
HTML-Code:
<pre><?php print_r($_SESSION['FORM_DATA']); ?></pre>
Das ist natürlich sehr ärgerlich, da es so nicht möglich ist, von der Bestätigungsseite zur Eingabeformular zurückzukehren, wenn teilweise Daten verloren gehen.
Irgendwelche Ideen?
Gruß
It's not a bug – it's a feature
Muss gleich unterbrechen und kann's daher nicht abschließend testen, aber ich habe vermutlich die Ursache im EFG-Code gefunden. Und das hübsche: It's not a bug – it's a feature…
ExtendedForm.php
PHP-Code:
// unset session values if no FORM_SUBMIT or form page has not been completed
// (to avoid wrong validation against session values and to avoid usage of values of other forms)
// this behaviour can be deactivated by setting: $GLOBALS['EFP'][$formId]['doNotCleanStoredSessionData'] = true;
if ($strMode != 'reload' && strlen($objFields->name))
{
if (!strlen($_POST['FORM_SUBMIT']) || !$_SESSION['EFP'][$formId]['completed']['page_'.$this->intActivePage])
{
if (!$GLOBALS['EFP'][$formId]['doNotCleanStoredSessionData'])
{
unset($_SESSION['FORM_DATA'][$objFields->name]);
}
}
}
Gruß