PHP Formular Daten übergeben

ziriander

Erfahrenes Mitglied
Hallo,

ich habe ein Problem mit einem eMail Formular. Die Felder "Name" und "eMail" werden geprüft (was auch funktioniert). Sollte eine Eingabe fehlen, dann wird ein Hinweiß angezeigt. Leider werden dabei die Eingaben der Felder "Straße", "Telefon" und "ihr Text" wieder gelöscht, während "PLZ-Ort" erhalten bleibt. Eigentlich sollten doch alle erhalten bleiben ?

Wenn ich jedoch den Löschbutton benutze werden auch nur die Felder "Straße", "Telefon" und "ihr Text" wieder gelöscht und "PLZ-Ort" bleibt. Da sollten doch aber alle gelöscht werden. Was mache ich den falsch?

Das ganze ist Testweise unter http://www.dakima.de/php/kontakt.php zu sehen.

Hier mal mein PHP Script:

PHP:
<? 
if ((!empty($_POST["email"])) && !empty($_POST["name"])) 
{ 
    if (!empty($_POST["email"])) 
    { 
        if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$", $_POST["email"])) 
        { 
            do_mail($_POST["email"]); 
          } 
        else 
        { 
            echo "<div><font color=\"#FFFFFF\" size=\"2\"><strong>Bitte &uuml;berpr&uuml;fen Sie Ihre eMail-Adresse</strong></font></div>"; 
            include ("form1.php"); 
        } 
    } 
    elseif (!empty($_POST["name"])) 
    { 
        if (!empty($_POST["email"])) {$email = $_POST["email"];} else {$email = "floyd@mayasign.de";} 
        do_mail($email); 
    } 
} 
else 
{ 
    echo "<div><font color=\"#FFFFFF\" size=\"2\"><strong>Bitte geben Sie Ihren Namen und Ihre eMail-Adresse an</strong></font></div>"; 
    include ("form1.php"); 
} 

function do_mail($email) 
{ 
    $an = "floyd@mayasign.de"; 
    $betreff = "Kontaktformular von der IYP Webseite"; 
    #$extra = "From: <$email>\n"; 
     
    $_POST["email"] ? $extra = "From: <$email>\n" : $extra = "From: <mail@mayasign.de>"; 

$text = " 
Über das IYP Kontaktformular wurden folgene Daten gesendet:\n 
Name .......... ".$_POST["name"]." 
Strasse/Nr .... ".$_POST["str"]. " 
PLZ|Ort ....... ".$_POST["ort"]." 
Telefon ....... " .$_POST["tel"]. " 
E-mail ........ " .$_POST["email"]. " 

Text: 
". $_POST["kommentar"].""; 

mail($an, $betreff, $text, $extra); 

echo"<font color=\"#FFFFFF\" size=\"2\"><strong>Herzlichen Dank, wir haben folgende Daten erhalten und werden Ihnen bald möglichst antworten.</strong></font><br><br>"; 

echo $best = " 
<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"> 
<tr><td><font color=\"#000000\" size=\"2\"><b>Name:</b></td><td><font color=\"#000000\" size=\"2\">".$_POST["name"]."</b>&nbsp;</font></font></td></tr> 
<tr><td><font color=\"#000000\" size=\"2\"><b>Strasse/Nr:&nbsp;&nbsp;&nbsp;&nbsp;</b></td><td><font color=\"#000000\" size=\"2\">".$_POST["str"]."</font></font></td></tr> 
<tr><td><font color=\"#000000\" size=\"2\"><b>PLZ|Ort:</b></td><td><font color=\"#000000\" size=\"2\">".$_POST["ort"]."&nbsp;</font></font></td></tr> 
<tr><td><font color=\"#000000\" size=\"2\"><b>Telefon:</b></td><td><font color=\"#000000\" size=\"2\">".$_POST["tel"]."&nbsp;</font></font></td></tr> 
<tr><td><font color=\"#000000\" size=\"2\"><b>eMail:</b></td><td><font color=\"#000000\" size=\"2\">".$_POST["email"]."&nbsp;</font></font></td></tr> 
<tr><td>&nbsp; &nbsp;</td><td>&nbsp; </td></tr> 
<tr><td><font color=\"#000000\" size=\"2\"><b>Ihr Text:</b></td><td><font color=\"#000000\" size=\"2\">".$_POST["kommentar"]."&nbsp;</font></font></td></tr> 
</table>"; 
} 
?>

Muss noch dazu sagen, dass ich von PHP nicht wirklich eine Ahnung habe.

Vielen Dank schon mal für eure Unterstützung.
ziriander
 
Mit der Datei hat das nix zu tun.
Du musst im Formular deinen <input>'s den value mitgeben.
PHP:
<input name="blabla" value ="<?php echo($_POST['blabla']); ?>" />
 
das sieht bei mir so aus:

PHP:
          <td><input name="name" type="text" class="inputfield" size="30" value="<? $_REQUEST["name"]; ?>"> </td>
        </tr>
        <tr>
          <td height="24" class="Stil2">Stra&szlig;e</td>  
          <td><input name="str" type="text" class="inputfield" size="30" value="<? $_REQUEST["strasse"]; ?>"></td>
   		</tr>
        <tr>
          <td height="24" class="Stil2">PLZ - Ort</td>
          <td><input name="ort" type="text" class="inputfield" size="30" value="<? $_REQUEST["ort"]; ?>"></td>
        </tr>
        <tr>
          <td height="24" class="Stil2">Telefon</td>
          <td><input name="tel" type="text" class="inputfield" size="30" value="<? $_REQUEST["telefon"]; ?>"></td>
        </tr>
        <tr>
          <td height="24" class="Stil2">E-Mail*</td>
          <td><input name="email" type="text" class="inputfield" size="30" value="<? $_REQUEST["email"]; ?>"></td>
        </tr>
        <tr>
          <td height="104" class="Stil2">Ihr Text</td>
          <td width="418"><textarea name="kommentar" class="inputfield" cols="45" rows="5" wrap="PHYSICAL"><?$_REQUEST["kommentar"]; ?></textarea></td>
        </tr>
        <tr>
          <td rowspan="2" class="Stil2">&nbsp;</td>
          <td>
            <input type="submit" name="senden" class="button" value="Senden" onFocus="if(this.blur)this.blur()">
            <input type="reset" name="löschen" class="button" value="L&ouml;schen" onFocus="if(this.blur)this.blur()">
 
OK, das habe ich geändert. Allerdings bleibt es dabei. Die Felder "Straße", "Telefon" und "ihr Text" werden gelöscht und "PLZ-Ort" bleibt erhalten.
 
Schau dir mal an, wie die Formularfelder heißen und welche Variablen Du abfragst.
Da ist zum Beispiel:
<input type="text" name="str">
Du fragst aber $_REQUEST['strasse'] ab - das kann nicht funktionieren...
 
Upss..... Das muss an der Uhrzeit gestern Nacht gelegen haben das ich das nicht gesehen habe. Allerbesten Dank.
 
Zurück