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

Kontaktformular Einträge beibeahlten.

Mathmos

Neues Mitglied
Hallo,

ich bin mir nicht sicher ob es hierhin gehört oder doch eher ins php Forum.

Aber ich schildere einfach mal mein Problem.

Ich habe ein kleines Kontaktformular geschrieben, dass auch soweit wunderbar funktioniert. Nun habe ich aber folgendes Problem: Wenn ich die E-Mail absenden will, aber nicht alle Pflicht Felder ausgefüllt habe, kommt die Meldung, dass nicht alle Felder ausgefüllt wurden aber es werden alle Einträge aus den Feldern gelöscht.

Wie kann ich nun die Einträge beibehalten, wenn jemand nicht alle Pflichtfelder ausgefüllt hat?




php Code
PHP:
<?php

$sysmail = **********";

if ($_POST['sendmessage'])
{
    if(empty($_POST['name']))
    {
        $messages = "Bitte geben Sie ihren Namen an<br>";
    }
    elseif(!preg_match("/^.*?@.*?$/", $_POST['email']))
    {
        $messages = "Sie haben keine gültige Email angegeben<br>";
    }
    elseif(empty($_POST['betreff']))
    {
        $messages = "Bitte geben Sie einen Betreff an<br>";
    }
    elseif(empty($_POST['message']))
    {
        $messages = "Bitte geben Sie eine Nachricht an<br>";
    }
    elseif(mail($sysmail, stripslashes(trim($_POST['betreff'])), stripslashes(trim("Name: ".$_POST['name']."\nAdresse: ".$_POST['adresse']."\nStadt: ".$_POST['stadt']."\nTelefon: ".$_POST['telefon']."\n\n\n".$_POST['betreff']."\n\n".$_POST['message'])), "From: " . $_POST['email'] . "\r\n"))
    {
        $messages = "Danke für Ihre Anfrage<br>Wir werden uns schnellstmöglich melden<br>";
    }
    else {
            $messages = "Ein Fehler ist aufgetreten<br>Bitte versuchen Sie es erneut<br>";
         }
}
?>
html Code

HTML:
          <tr>
            <td align="left" valign="top" style="padding-top:20px;"><form id="form1" name="form1" method="post" action="kontakt.html" style="margin:auto;">
              <table width="94%" border="0" align="left" cellpadding="0" cellspacing="0" class="border">
                <tr>
          <td align="left" valign="middle" class="body"><span style="color:#858585;"></span></td>
          <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><span style="color:#FF0000; font-weight:bold;"><?=$messages ?></span></td>
        </tr>
                <tr>
                  <td align="left" valign="middle" class="body"><span style="color:#858585;">Name* :</span></td>
                  <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><input type="text" id="name" name="name" style="width:250px; height:13px;" /></td>
                </tr>
                <tr>
                  <td align="left" valign="middle" class="body"><span style="color:#858585;">Straße/Nr :</span></td>
                  <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><input type="text" id="adresse" name="adresse" style="width:250px; height:13px;" /></td>
                </tr>
                <tr>
                  <td align="left" valign="middle" class="body"><span style="color:#858585;">PLZ/Stadt :</span></td>
                  <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><input type="text" id="stadt" name="stadt"  style="width:250px; height:13px;" /></td>
                </tr>
                <tr>
                  <td align="left" valign="middle" class="body"><span style="color:#858585;">Telefon :</span></td>
                  <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><input type="text" id="telefon" name="telefon" style="width:250px; height:13px;" /></td>
                </tr>
                <tr>
                  <td align="left" valign="middle" class="body"><span style="color:#858585;">E-Mail* :</span></td>
                  <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><input type="text" id="email" name="email" style="width:250px; height:13px;" /></td>
                </tr>
                <tr>
                  <td align="left" valign="middle" class="body"><span style="color:#858585;">Betreff* :</span></td>
                   <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><input type="text" id="betreff" name="betreff" style="width:250px; height:13px;" /></td>
                </tr>
                <tr>
                  <td align="left" valign="middle" class="body"><span style="color:#858585;">Nachricht* :</span></td>
                  <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><textarea id="message" name="message" rows="5" cols="" style="width:250px;"></textarea></td>
                </tr>
                <tr>
         <td align="left" valign="middle" class="body"><span style="color:#858585;"></span></td>
          <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><span style="color:#858585;">Die mit * gekennzeichnet Felder sind Pflichtfelder.</span></td>
        </tr>
                <tr>
          <td align="left" valign="middle" class="body"><span style="color:#858585;"></span></td>
          <td colspan="2" align="left" valign="top" style="padding-top:2px; padding-bottom:2px;"><input type="submit" value="Nachricht Senden" /></td>
          <td><input type="hidden" name="sendmessage" value="1" /></td>
        </tr>
              </table>
            </form></td>
          </tr>
 
Bist Du sicher, dass die Datei kontakt.html heißt? Und das diese Datei auch php-Code enthält der ausgeführt wird? Nenne sie lieber kontakt.php, falls das nicht deine Absicht ist.

Und wg. der Frage: um etwas in einem Formularfeld einzutragen ist das value-Attribut zuständig.

Code:
<input type="text" id="telefon" name="telefon"[COLOR="red"] value=""[/COLOR] style="width:250px; height:13px;" />

Dort musst Du den abgeschickten Wert eintragen lassen:

Code:
<input type="text" id="telefon" name="telefon" value="[COLOR="red"]<?php echo $_POST["telefon"]; ?>[/COLOR]" style="width:250px; height:13px;" />

Und um sicher zu gehen, dass dabei niemand Unsinn betreibt solltest Du diese Eingabe auch noch entsprechend umwandeln lassen:
Code:
<input type="text" id="telefon" name="telefon" value="[COLOR="red"]<?php echo htmlspecialchars($_POST["telefon"]); ?>[/COLOR]" style="width:250px; height:13px;" />

Ich habe außerdem deinen Beitrag mal zu php verschoben.
 
Erst mal danke threadi.
Ich werde das ganze morgen ausprobieren.

Ja, der php Code wird ausgeführt. Da ich mir eine htaccess Datei mit folgendem Inhalt erstellt habe.

Code:
AddType application/x-httpd-php .php .php4 .htm .html
 
Noch ein Tipp:
Falls du die POST Daten eine Seite weiter zurueck noch brauchen solltest dann kannst du zum Beispiel folgendes Verwenden:

PHP:
            reset ($_POST);
            while (list($key, $value) = each ($_POST)) {
                echo '<input name="'.$key.'" type="hidden" value="'.$value.'">';
            }
 
Ich danke euch.
Es hat wunderbar geklappt.
Zuerst hatte ich noch Probleme mit der textarea, da diese ja keine value Attribute hat.
Aber man muss lediglich den value Inhalt zwischen die textarea Tags schreiben =)
 
Ja, das hätte ich noch erwähnen sollen. Und wenn Du Checkboxen oder Radiobuttons nutzt, musst Du den übertragenen Wert mit einer if-Bedingung abfragen und wenn er dem value-Wert entspricht

Code:
 checked="checked"

setzen.
 

Neueste Beiträge

Zurück
Oben