Ich versuche, eine "dynamische Umleitung" für eine HTML-Formularseite zu erstellen, so dass bei falscher Eingabe (zB: leerer Eingabewert) das Formular "Enter "button wird die Fehlerseite laden (formerr.php), aber wenn die Eingabe in Ordnung ist, wird die Datenseite Verify (formverify.php) geladen. Hier ist, was ich versucht habe:Versuch, PHP zu verwenden, um eine Formularseitenausgabe dynamisch umzuleiten
<?php
session_start();
?>
<html>
<?php
$emailErr = "";
$email = "";
?>
<?php
$newpage = "formverify.php" ;
echo "$newpage" . "<br>" ;
$_SESSION["emailErr"] = "email OK" ;
echo "<br>" . $_SESSION["emailErr"] . "<br>" ;
?>
<body>
<form method="POST" action=<?php echo "$newpage" ; ?> >
<?php echo "$newpage" . "<br>" ;?>
e-mail:<span class="error"> *Important!</span><br>
<input type="text" name="email" value="<?php echo $_SESSION["email"]; ?>" ><br>
<input type="submit" name="enter" value="Enter">
</form>
<?php
$email = ($_POST["email"]);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) //check for presence of a properly formed email address
{
echo "filter_var output = " . filter_var($email, FILTER_VALIDATE_EMAIL) . "<br>" ; //none of these "echo" statements print
$_SESSION['emailErr']= "Invalid email format";
echo $_SESSION['emailErr'] ;
$_SESSION['newpage'] = "formerr.php" ;
$newpage = "formerr.php" ;
echo "<br> new page = " . $newpage ;
}
}
?>
</body>
Die Verify Seite:
formverify.php:
<?php
session_start();
?>
<?php
echo "Form Verify Page" . "<br>" ;
$_SESSION['email'] =$_POST['email'];
echo "emailErr = " . $_SESSION['emailErr'] ;
echo "<br> email is: " . $_SESSION['email'];
echo "<br> Session emailErr = " . $_SESSION['emailErr'];
echo "<br> new page = " . $_SESSION['newpage'] ;
?>
</html>
Wert für "$ _SESSION [ 'email']" across richtig kommt, wenn gefüllte in, leer wenn nicht ausgefüllt.
"$ _SESSION ['emailErr']" bleibt als "email OK" unabhängig. (?) "$ _SESSION ['newpage']" ist leer (leer) unabhängig von der Eingabe (?) Auch wenn das Textfeld "email" leer ist, wird das Formular an die Seite "formverify.php" übergeben Variable "newpage" wird als leer angezeigt.
Ich bin nicht wirklich klar, wie das HTML "Form" reagiert, wenn die Eingabe-Schaltfläche aktiviert ist, aber ich erwartete, dass es ein Zurücksetzen der $ newpage-Variable basierend auf dem PHP-Skript darunter ausgelöst wird, aber es nicht t ändern Sie den Wert von $ newpage - es bleibt als "formverify.php" anstatt zu "fremer.php" geändert werden. Ich bin ein Autodidakt Autodidakt, also bitte entschuldigen Sie jeden Mangel an Verständnis.
Nein, wechseln Sie zu einer zweiten Seite. Logikfluss: 1. Der Kunde füllt die Formulardaten aus (form.php), drückt die Eingabetaste. 2. "Enter" -Schaltfläche verweist auf (verify.php), um Daten im Formular zu überprüfen (statisch, nicht editierbar). (Seite hat 2 Schaltflächen: "Senden" und "Zurück"). 3. Wenn die Daten OK sind, klicken Sie auf "Senden"; Daten gehen zur Datenbank, Seite verweist auf "thanks.php" 4. Wenn Korrekturen erforderlich sind, kehrt die Schaltfläche "Zurück" zu "form, php" zurück, wo Daten zurückgemeldet werden, Änderungen werden vorgenommen, dann zu "Enter", gefolgt von "Submit "auf verify.php. Es funktioniert, aber ein leeres Formular wurde eingereicht, und ich habe versucht, das zu vermeiden, also die Validierung. – fwa
Also gibt es eine andere Seite, die Sie nicht zur Verfügung gestellt haben? Wenn nicht etwas auf die erste Seite gepostet wird, dann wird es natürlich nicht funktionieren. Aus dem von Ihnen bereitgestellten Code sieht nur aus, dass formverify.php die POST-Daten erhält. – Chris