2009-01-20 3 views
5

Nun gerade habe ich eine Seite (page2.php) und an der Spitze es einige Validierungsprüfung und wenn etwas fehlschlägt springt es zurück zu page1.php. Das Problem ist, dass page1.php von einem Post geladen wird, was bedeutet, dass es das Endergebnis eines Formulars ist. Das bedeutet, dass alle Post-Daten, die ich ursprünglich auf page1.php hatte, verloren gegangen sind.Möglich, Daten in einer PHP-Weiterleitung zu veröffentlichen?

So, hier ist mein Code:

if ($validation_fails) 
{ 
    header('Location:page1.php'); 
} 
+0

http://stackoverflow.com/questions/311242/php-open-another-webpage-with-post-data –

+0

Sie könnten die Daten von $ _POST ziehen und sie dann zur nächsten Seite weiterleiten, da es ein eigener POST ist . – Peter

Antwort

5

Sie können Daten nach zurück mit cURL oder umstrukturieren die Validierung an der Spitze der page1.php zu tun, und wenn es zu page2.php nicht scheitern, nehmen. Wenn Sie eine Art mehrstufiges Formular ausführen, können Sie alle Daten in einer Sitzung speichern und Felder ausfüllen, wenn in der Sitzung übereinstimmende Daten vorhanden sind. Nicht sicher, ob das zutrifft.

2

Können Sie nicht einfach das Validierungsskript über include oder require einbinden, anstatt darauf umzuleiten?

3

Sie könnten die Logik umstrukturieren. Die Validierung sollte auf page1.php erfolgen und wenn es fehlschlägt, findet die Umleitung nicht statt. Wenn es gelingt, werden Sie umgeleitet.

Wenn Sie Bedenken hinsichtlich der Sicherheit haben (Leute gehen nur auf Seite 2), können Sie eine Sitzungsvariable festlegen, die auf Seite2 überprüft und auf Seite1 eingestellt wird.

1

Auf page2.php Sie könnten den Inhalt des Posts in eine Variable $ _SESSION speichern, wenn die Validierung fehlschlägt.

Auf page1.php fügen Sie einfach eine ordnungsgemäß maskierte/codierte Version der Daten ein, die Sie als Teil des Formulars in der Sitzung gespeichert haben. Sie können dies auch verwenden, um das Formular zu aktualisieren, damit dem Benutzer klar ist, welcher Teil die Validierung nicht bestanden hat.

Verwandte Themen