ich habe eine UserId, die bei der Anmeldung aus der DB ausgelesen wird.
Der User hat die Möglichkeit über ein Eingabeformular Daten einzugeben (mehrere Felder) die dann in einer Tab. gespeichert werden. Es wird für jeden DS die UserId mit gespeichert.
Beispiel [color=#0B5FB4]
insert into tabelle (feld1, UserId) values
('".mysql_real_escape_string($_POST['feld1'])."', $_SESSION['user'])
[/color]
Hat der User nun das Formular ausgefüllt und macht “eine Pause” bis er aus Senden drückt ist ein Timeout. Die Daten werden zwar in die Tabelle gesendet, aber $_SESSION[‘user’] nicht. Da ist der Wert 0.
Prüfe vor dem Eintragen, ob der Nutzer noch eine gültige Session hat.
Wenn nicht, lasse ihn sich zunächst wieder einloggen.
Anschliessend legst du ihm entweder die Daten erneut zur Eingabe vor (Stichwort Affenformular);
oder du speicherst sie gleich in der neu erstellten Session zwischen, und fügst sie von dort aus in die Datenbank ein, nachdem der Nutzer sich erneut authentifiziert hat.
Nach dem Timeout kommt der User wieder auf die Loginseite.
Hier hat er die Auswahl zu welche Datei er aufruft. Dateneingabe , Editieren usw.
In dem Beispiel ist der User aus der Eingabe “geflogen” wegen Timeout.
Jetzt müsste er ja automatisch wieder genau zu der Seite kommen und das Formular müsste mit den Daten die er bis zum Timeout eingegeben hat gefüllt sein.
Das habe ich schon verstanden, nur wie ich es realisiere ist mir noch unklar.
Das Login-Formular kannst du doch auch in der Formularseite anzeigen, wenn es erforderlich wird.
Oder gleich auf ihr bleiben.
Aber man kann sich natürlich auch, bevor man auf die Loginseite umleitet, merken, auf welcher Adresse der Nutzer vorher war - dann dann nach erfolgreichem Login wieder dorthin zurück-umleiten.
(Wobei Umleitungen m.E. immer als Notbehelf zu betrachten sind; in einer sinnvoll strukturierten Applikation haben sie wenig verloren.)