2010-12-21 9 views
0

Nehmen wir an, ich gebe ein Registrierungsformular mit dieser End-URL: registration.php?accountType=a Das Formular wird auf der gleichen Seite (registration.php) analysiert. Wenn der Benutzer die Formularvalidierung nicht besteht, werden sie mit Fehlermeldungen zu registration.php gebracht. Sie sehen also, ich habe meine Variable accountType = a verloren. Meine Frage:Formularüberprüfung verlieren Variablen

Kann ich ein Formular zur Validierung einreichen und die Variable accountType beibehalten? Ich bin mir bewusst, dass dies leicht mit einem Cookie gemacht werden könnte. Ich will nur ein weiteres Verständnis.

Lösung: Obwohl alle Antworten unten gültig waren, ging ich mit einer Sitzungsvariablen und <form action="registration.php?<?php print 'accountType=' . $_SESSION['accountType']; ?>" usw. Danke für die Hilfe.

Antwort

0

sollten Sie dies in Ihrem Formular:

<form action="registration.php?accountType=a"> 

Sie dies in Ihrem php verwenden sollte:

if ($validation_success) { 
    header('sucess.php') 
} else { 
    // don't do anything. The page(registration.php?accountType=a) loads 
} 

ich Sie nur geben, die Idee.

+0

+1, wahrscheinlich die einfachste Lösung für Ihr Problem – Starx

0

Sie können ganz einfach, um es in 3 Möglichkeiten ...

  1. PHP Sessions. Tun Sie einfach etwas wie

    session_start(); $ _SESSION ['Namespace'] = Array ('post' => $ _POST, 'get' => $ _GET);

  2. Verwenden von Cookie (Sitzung scheint für mich eleganter zu sein).

  3. Ajax-Anforderung verwenden; Es wird Ihre Aufgaben erleichtern.

0

Ich denke, dass Sie die "accountType = $ accountType" am Ende der URL hinzufügen, wenn Sie eine HTTP-Weiterleitung, so dass der Benutzer zurück auf die richtige Seite genommen wird.

ich nicht den Code sehen, aber vielleicht so:

if(auth()) 
{ 
    //do something... 
} 
else 
{ 
    header("Location: /registration.php?somerror=true&accountType=" . $accountType); 
} 
Verwandte Themen