| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Feb 2004
Beiträge: 48
| Problem mir Kontaktformular (PHP)
Hi, ich habe da ein Problem mit meinem Kontaktformular. Das Formular ist soweit recht einfach aufgebaut, enthält einige Pflichtfelder, wobei die Fehlermeldung immer direkt über dem Eingabefeld angezeigt wird. Zu sehen hier Soweit ist ja auch alle OK. mein Wunsch ist es aber nun nach erfolgreichem Ausfüllen des Formulars den User auf eine Antwortseite zu schicken oder das bisherige Script so zu modifizieren, dass der Hinweissatz auf die Pflichtfelder nicht mehr drinsteht. Momentan wird auch die "Erfolgsmeldung" auf der kontakt.php angezeigt und drüber steht dann natürlich immer noch der Satz: "Nutzen Sie unser Kontaktformular: (Die mit * markierten Zellen müssen ausgefüllt werden)" Dieser Hinweis ist natürlich nach erfolgreichem Ausfüllen unnötig. Bin mit PHP noch am Anfang und komm leider nicht weiter. Vielleicht weiß hier jemand Rat? Hier der Quellcode: <div align="left"> <br><br> <table width="785" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <td valign="top" bgcolor="#FFFFFF"><img src="../gfx/abstand.gif" width="1" height="1" border="0"></td> <td valign="top" bgcolor="#FFFFFF"> <form action="<?php echo $PHP_SELF; ?>" method="POST"> <table width="650" border="0" cellspacing="0" cellpadding="2"> <tr> <td valign="top" rowspan="20"><img src="../gfx/abstand.gif" width="20" height="1" border="0"></td> <td valign="top" valign="left" colspan="2"><br> <p><strong>Wir helfen Ihnen bei allen Fragen schnell und kompetent.</strong></p> <p>Nutzen Sie unser Kontaktformular:<br> (Die mit <font color="Red">*</font> markierten Zellen müssen ausgefüllt werden)</p> PHP:-------------------------------------------------------------------------------- <?php if(isset($_POST['senden'])) { if(empty($_POST['name'])) { $fehler_name = "Bitte geben Sie Ihren Namen ein!<br>"; $fehler=1; } if(empty($_POST['phone'])) { $fehler_phone = "Bitte geben Sie Ihre Telefonnummer an!<br>"; $fehler=1; } if(empty($_POST['mail'])) { $fehler_mail = "Bitte geben Sie Ihre E-Mail-Adresse an!<br>"; $fehler=1; } if(empty($_POST['betreff'])) { $fehler_betreff = "Bitte geben Sie eine Betreff ein!<br>"; $fehler=1; } if(empty($_POST['Textfeld'])) { $fehler_text = "Bitte auch einen Text eingeben!<br>"; $fehler=1; } } if(isset($_POST['senden']) && !isset($fehler)){ $email_to = "mail@test.de"; $header="From:".$_POST['name']."<". $_POST['mail'] .">\n"; $kommentar='Telefon: '.$_POST['phone']."\n"; $kommentar.='Telefax: '.$_POST['fax']."\n\n"; $kommentar.='Nachricht: '.$_POST['Textfeld']; mail($email_to , $_POST['betreff'] , $kommentar , $header) or die ("Konnte eMail nicht versenden!"); ?> -------------------------------------------------------------------------------- <p> PHP:-------------------------------------------------------------------------------- <?php echo "<strong>Vielen Dank ". $_POST['name'] .",</strong><br><br>"; echo "Ihre Email mit dem Betreff \"". $_POST['betreff'] ."\" wurde erfolgreich versendet.<br>"; echo "Wir werden uns so schnell wie möglich darum kümmern."; } else { ?> -------------------------------------------------------------------------------- </p></td> <td valign="top" colspan="2"> </td></tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_name ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Name<font color="Red">*</font>: </td> <td width="300" align="left"> <input name="name" type="text" size="20" maxlength="30" <?php if(isset($_POST['name'])) { echo "value =\"".$_POST['name']."\""; } ?>></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_phone ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Telefon<font color="Red">*</font>:</td> <td width="300" align="left"> <input name="phone" type="text" size="20" maxlength="30"<?php if(isset($_POST['phone'])) { echo "value =\"".$_POST['phone']."\""; } ?>></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_fax ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Fax: </td> <td width="300" align="left"> <input name="fax" type="text" size="20" maxlength="30"<?php if(isset($_POST['fax'])) { echo "value =\"".$_POST['fax']."\""; } ?>></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_mail ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">E-Mail<font color="Red">*</font>:</td> <td width="300" align="left"> <input name="mail" type="text" size="20" maxlength="30"<?php if(isset($_POST['mail'])) { echo "value =\"".$_POST['mail']."\""; } ?>></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_betreff ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Betreff<font color="Red">*</font>:</td> <td width="300" align="left"> <input name="betreff" type="text" size="20" maxlength="30" <?php if(isset($_POST['betreff'])) { echo "value =\"".$_POST['betreff']."\""; } ?>></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Ihre Nachricht<font color="Red">*</font>:</td> <td><span class="error"><br><?=$fehler_text ?></span><br><textarea name="Textfeld" cols="30" rows="8" type="text"><?php if(isset($_POST['Textfeld'])) { echo $_POST['Textfeld']; } ?></textarea></td> <td> </td> </tr> <tr> <td colspan="3"> </td></tr> <tr> <td width="400" colspan="3" align="center"><input type="submit" value="Absenden" name="senden"> <input type="reset" value="Zurücksetzen"></td> </tr> <tr> <td valign="top" colspan="3"><img src="../gfx/abstand.gif" width="1" height="30" border="0"></td> </tr> </table> <? } ?> </td> </tr> </table> </div> |
| | |
| | #2 (permalink) |
| Proll Registriert seit: Sep 2003 Ort: Rock City #1
Beiträge: 284
|
Hab mal ein wenig gefrickelt: HTML-Code: <html> <head> </head> <body> <?php if(!empty($_POST['name'])&&!empty($_POST['phone'])&&!empty($_POST['mail'])&&!empty($_POST['Textfeld'])&&!empty($_POST['betreff'])){ echo "Danke fuer ihre Auskunft!"; }else{ if(empty($_POST['name'])){ $error_n = true; } if(empty($_POST['phone'])){ $error_p = true; } if(empty($_POST['mail'])){ $error_m = true; } if(empty($_POST['Textfeld'])){ $error_t = true; } if(empty($_POST['betreff'])){ $error_b = true; } ?> <p> <?php echo "<strong>Vielen Dank ". $_POST['name'] .",</strong><br><br>"; echo "Ihre Email mit dem Betreff \"". $_POST['betreff'] ."\" wurde erfolgreich versendet.<br>"; echo "Wir werden uns so schnell wie möglich darum kümmern."; ?> <form method="post"> <table> <tr></td> <td valign="top" colspan="2"> </td></tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_name ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Name<font color="Red">*</font>: </td> <td width="300" align="left"> <input name="name" type="text" size="20" maxlength="30" <?php if(isset($_POST['name'])) { echo "value =\"".$_POST['name']."\""; } echo ">"; if($error_n){ echo "Bitte angeben!"; } ?> </td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_phone ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Telefon<font color="Red">*</font>:</td> <td width="300" align="left"> <input name="phone" type="text" size="20" maxlength="30" <?php if(isset($_POST['phone'])) { echo "value =\"".$_POST['phone']."\""; } echo ">"; if($error_p){ echo "Bitte angeben!"; } ?></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_fax ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Fax: </td> <td width="300" align="left"> <input name="fax" type="text" size="20" maxlength="30" <?php if(isset($_POST['fax'])) { echo "value =\"".$_POST['fax']."\""; } ?>></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_mail ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">E-Mail<font color="Red">*</font>:</td> <td width="300" align="left"> <input name="mail" type="text" size="20" maxlength="30" <?php if(isset($_POST['mail'])) { echo "value =\"".$_POST['mail']."\""; } echo ">"; if($error_m){ echo "Bitte angeben!"; } ?> </td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle"> </td> <td><span class="error"><br><?=$fehler_betreff ?></span></td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Betreff<font color="Red">*</font>:</td> <td width="300" align="left"> <input name="betreff" type="text" size="20" maxlength="30" <?php if(isset($_POST['betreff'])) { echo "value =\"".$_POST['betreff']."\""; } echo ">"; if($error_b){ echo "Bitte angeben!"; } ?> </td> <td> </td> </tr> <tr> <td width="100" align="right" valign="middle">Ihre Nachricht<font color="Red">*</font>:</td> <td><span class="error"><br><?=$fehler_text ?></span><br><textarea name="Textfeld" cols="30" rows="8" type="text"> <?php if(isset($_POST['Textfeld'])) { echo $_POST['Textfeld']; } ?> </textarea> <?php if($error_p){ echo "Bitte angeben!"; } ?></td> <td> </td> </tr> <tr> <td colspan="3"> </td></tr> <tr> <td width="400" colspan="3" align="center"><input type="submit" value="Absenden" name="senden"> <input type="reset" value="Zurücksetzen"></td> </tr> <tr> <td valign="top" colspan="3"><img src="../gfx/abstand.gif" width="1" height="30" border="0"></td> </tr> </table> </td> </tr> </table> </form> </div> <? } ?> </body> </html> Ich prüfe halt jeden Fehlerfall ab und gebe eine ensprechende Fehlermeldung hinter den Textfeldern aus. Dafür setze ich die Variablen error_x. Wenn du ein andere Seite aufrufen willst benutze am Anfang der Seite die PHP-Funktion header unter der verwendung der Fehlerabfrage um den User direkt auf die nächste Seite zu schicken und die POST-Variablen los zu werden.
__________________ this is a rock n roll takeover |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Feb 2004
Beiträge: 48
|
Hi Doc, herzlichen Dank, damit bin ich schon einen Riesenschritt weiter. Nur: Bei meiner bisherigen Variante erscheinen die Fehlermeldungen erst dann, wenn wirklich etwas vergessen wurde. kann man das auch irgendwie noch bewerkstelligen? Herzlichen Dank nochmals. Claudia |
| | |
| | #4 (permalink) |
| mein baby Registriert seit: Jul 2002 Ort: Weimar
Beiträge: 1.443
|
das sollte soweit gehen, ist zwar sehr unsauber geproggt, aber geht: PHP-Code:
__________________ musse rühre, musse probiere=>iss a pulsgeber ! |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |