• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP Formular überprüfen ohne dass Eingabe verloren geht

rapid10

Mitglied
Hallo!

Ich habe ein Problem: Ich möchte gerne ein Formular überprüfen lassen. Aber wenn man etwas eingegeben hat, man aber ein Feld, das man ausfüllen muss, vergessen hat, dann hab ich das Problem, dass das bereits eingegebene gelöscht wird und man von neuem Anfangen muss.
Wie kann ich das ändern? Hoffentlich wisst ihr, was ich meine. :oops:

Vielen Dank!

LG rapid10

Bis jetzt hab ich das:
PHP:
<?php
                $subject = isset($_POST["subject"]) ? $_POST["subject"] : "";
                $prename = isset($_POST["prename"]) ? $_POST["prename"] : "";
                $surname = isset($_POST["surname"]) ? $_POST["surname"] : "";
                $email = isset($_POST["email"]) ? $_POST["email"] : "";
                $company = isset($_POST["company"]) ? $_POST["company"] : "";
                $postcode = isset($_POST["postcode"]) ? $_POST["postcode"] : "";
                $location = isset($_POST["location"]) ? $_POST["location"] : "";
                $country = isset($_POST["country"]) ? $_POST["country"] : "";
                $postcode = isset($_POST["postcode"]) ? $_POST["postcode"] : "";
                $message = isset($_POST["message"]) ? $_POST["message"] : "";
                $error = "";
                
                $formular = <<<EOT
                    <form action="contact.php" method="post">
                        <p>
                            <label for="subject"><b>Betreff:</b></label>
                            <input type="text" name="subject" id="subject" tabindex="1" />
                        </p>
                        <p>
                            <label for="prename"><b>Vorname:</b></label>
                            <input type="text" name="prename" id="prename" tabindex="2" />
                        </p>
                        <p>
                            <label for="surname"><b>Nachname:</b></label>
                            <input type="text" name="surname" id="surname" tabindex="3" />
                        </p>
                        <p>
                            <label for="email"><b>E-Mail Adresse:</b></label>
                            <input type="text" name="email" id="email" tabindex="4" />
                        </p>
                        <p>
                            <label for="company"><b>Firma:</b></label>
                            <input type="text" name="company" id="company" tabindex="5" />
                        </p>
                        <p>
                            <label for="address"><b>Anschrift:</b></label>
                            <input type="text" name="address" id="address" tabindex="6" />
                        </p>
                        <p>
                            <label for="postcode"><b>Postleitzahl:</b></label>
                            <input type="text" name="postcode" id="postcode" tabindex="7" />
                        </p>
                        <p>
                            <label for="location"><b>Ort:</b></label>
                            <input type="text" name="location" id="location" tabindex="8" />
                        </p>
                        <p>
                            <label for="country"><b>Land:</b></label>
                            <input type="text" name="country" id="country" tabindex="9" />
                        </p>
                        <p>
                            <label for="message"><b>Ihre Nachricht</b></label>
                            <textarea name="message" id="message" cols="1" rows="10" tabindex="10"></textarea>
                        </p>
                        <p class="post">                
                            <input name="post" type="submit" id="post" tabindex="11" value="Absenden" />
                        </p>
                        <p class="reset">
                            <input name="reset" type="reset" id="reset" tabindex="12" value="Zurücksetzen" />
                        </p>
                    </form>
EOT;

                if (isset($_POST["message"])) {
                    if (strlen($subject) <  5) {
                        $error .= "&bull; Betreff<br />";
                    }
                    if (!preg_match("|^[_a-za-z0-9-]+(.[_a-za-z0-9-]+)*@([a-z0-9-]{3,})+.([a-za-z]{2,4})$|i", $email)) {
                        $error .= "&bull; E-Mail Adresse<br />";
                    }            
                    if (strlen($message) <  20) {
                        $error .= "&bull; Nachricht<br />";
                    }

                        @mail($an, $subject, $text, "From: " . $email);
                        echo "<p><b>Ihre Nachricht wurde gesendet!</b></p>";
                    }

                    else {
                        echo "<p><span style=\"color: #ff0000\"><strong>Bitte überprüfen Sie folgende Felder:</strong><br />";
                        echo $error . "</span></p>" . $formular;
                    }
                }

                else { 
                 echo $formular;
                }
            ?>
 
Werbung:
Wenn die Überprüfung auf der selben Seite stattfindet also der action-tag leer ist dann kannst du es so machen:
Code:
<input type="text" name="feld" value="<?php echo $_POST['feld']; ?>">
So wird das soeben gesendete wieder in das Feld eingefügt ;)
 
Werbung:
Vielen Dank! :-) Ich werde es sofort probieren.
Thanks für die super-schnelle Antwort. ;-)

Wenn die Überprüfung auf der selben Seite stattfindet also der action-tag leer ist dann kannst du es so machen:
Code:
<input type="text" name="feld" value="<?php echo $_POST['feld']; ?>">
So wird das soeben gesendete wieder in das Feld eingefügt ;)

Hmm ... ich krieg eine Fehlermeldung:
Code:
Parse error:  parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\XAMPP\htdocs\webdesign\contact.php on line 65
Und das ist in Zeile 65:
PHP:
<input type="text" name="subject" id="subject" value="<?php echo $_POST['subject']; ?>" tabindex="1" />
Ich bin auch den Fehler draufgekommen! Ich darf nur
PHP:
value="$subject"
schreiben. Weil ich ja schon <<<EOT in den Formular verwende. ;)
Danke für eure Hilfe!
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben