#1 11. März 2008 Kontaktformular Problem Hi ich habe ein Kontaktformular gecodet. Aber aus unerklärlichen Gründen läuft es nicht... Ich kann euch nicht sagen wiso. Habe mal die Codes. Hab die Email Addys rausgelöscht! kontakt.php PHP: <table bgcolor="#FFFFFF" border="0" cellpadding="4" cellspacing="0" width="100%"> <tbody> <tr> <td id="t2" align="left" valign="top"> <p align="left" class="style27"> <style type="text/css"> <!-- .Stil6 { font-size: 15px; color: #FF0000; } .Stil7 {font-size: 12px} .Stil8 { font-size: 9px; color: #666666; } --> </style> <p align="center"> <? if ( $_REQUEST [ 'send' ] && !empty( $_REQUEST [ 'vorname' ]) && !empty( $_REQUEST [ 'name' ]) && !empty( $_REQUEST [ 'email' ]) && !empty( $_REQUEST [ 'text' ])) { include "sendmail.php" ; echo '<br>Ihre Kontaktanfrage wurde erfolgreich an Uns verschickt. <br> Es wurde ein Bestätigungsmail an <strong>' . $vorname . ' (' . $email . ')</strong> verschickt.' ; } else { ?> </p> <form id="kontakt" name="kontakt" method="post" action="<? echo $_SERVER [ 'PHP_SELF' ]; ?>"> <table width="547" border="0" align="center"> <tr> <td width="109" rowspan="3"> </td> <td width="195"><? if ( $_REQUEST [ 'send' ] && empty( $_REQUEST [ 'vorname' ])) { $vorname_false = "<b><span style=\"color:red;\">*</span></b>" ; $vorname_echo = '<b><span style=\"color:red;\">Bitte geben Sie Ihren Vornamen ein.</span></b>' ; } ?> Vorname: <? echo $vorname_false ; ?></td> <td width="170"><p> <input name="vorname" type="text" value="<? echo $_REQUEST [ 'vorname' ]; ?>"> </p> </td> <td width="19" rowspan="6"> </td> <td width="32" rowspan="3"> </td> </tr> <tr> <td><? if ( $_REQUEST [ 'send' ] && empty( $_REQUEST [ 'name' ])) { $name_false = "<b><span style=\"color:red;\">*</span></b>" ; $name_echo = '<b><span style=\"color:red;\">Bitte geben Sie Ihren Namen ein.</span></b>' ; } ?> Name:<? echo $name_false ; ?></td> <td><input name="name" type="text" value="<? echo $_REQUEST [ 'name' ]; ?>"></td> </tr> <tr> <td><? if ( $_REQUEST [ 'send' ] && empty( $_REQUEST [ 'email' ])) { $email_false = "<b><span style=\"color:red;\">*</span></b>" ; $email_echo = '<b><span style=\"color:red;\">Bitte geben Sie Ihre Email-Adresse ein.</span></b>' ; } ?> E-Mail:<? echo $email_false ; ?></td> <td><input name="email" type="text" value="<? echo $_REQUEST [ 'email' ]; ?>"></td> </tr> <tr> <td> </td> <td><? if ( $_REQUEST [ 'send' ] && empty( $_REQUEST [ 'text' ])) { $text_false = "<b><span style=\"color:red;\">*</span></b>" ; $text_echo = '<b><span style=\"color:red;\">Bitte geben Sie Ihren Text ein.</span></b>' ; } ?> Text:<? echo $text_false ; ?></td> <td><textarea name="text" cols="30" rows="7"><? echo $_REQUEST [ 'text' ]; ?></textarea></td> <td> </td> </tr> <tr> <td height="21"> </td> <td colspan="2"><input name="ip" type="hidden" id="ip" value="<? echo $mailip ; ?>" /> <? echo $vorname_echo . '<br>' . $name_echo . '<br>' . $email_echo . '<br>' . $text_echo ; ?> </td> <td rowspan="2"> </td> </tr> <tr> <td height="43"> </td> <td> </td> <td><input name="send" type="submit" value="Senden"></td> </tr> <tr> <td> </td> <td><p align="left" class="style27">Kontaktadresse:</p> <p align="left" class="style27"> ---------------<br> ----------------- <br> -------------- </p> </td> <td><p align="center" class="style27">Website copyright by --------------- </p> <p align="center" class="style27">programming by <a href="http://www.---------------">-----------------</a></p> <p align="center" class="style27">Alle Rechte vorbehalten </p></td> <td> </td> <td> </td> </tr> </table> </form> <p align="center" class="Stil8">Aus Sicherheitsgründen wird ihre IP beim senden mitgesandt. </p> <div align="center"> <p> <? } ?> </p> </div> </p> </td> </tr> </tbody> </table> mail.config.php PHP: <? php //Sprache des Benutzers ermitteln $sprache = $_SERVER [ 'HTTP_ACCEPT_LANGUAGE' ]; //IP-Adresse de Benutzers ermitteln $ip = $_SERVER [ 'REMOTE_ADDR' ]; //Datum errechnen $monat =array( 'Dezember' , 'Januar' , 'Februar' , 'März' , 'April' , 'Mai' , 'Juni' , 'Juli' , 'August' , 'September' , 'November' ); $monat_zahl = date ( 'n' ); $tag =array( 'Sonntag' , 'Montag' , 'Dienstag' , 'Mittwoch' , 'Donnerstag' , 'Freitag' , 'Samstag' ); $tag_zahl = date ( 'w' ); $jahr = date ( 'Y' ); $datum = $tag [ $tag_zahl ]. ', ' . $monat_zahl . '. ' . $monat [ $monat_zahl ]. ' ' . $jahr ; //Uhrzeit errechnen $uhrzeit = date ( 'H:i:s' ); //Browser des Besuchers / Betriebssystem ermitteln $browser = $_SERVER [ 'HTTP_USER_AGENT' ]; //Mailversand $text = stripslashes ( $text ); $text = htmlspecialchars ( $text ); $mail = "emailaddy@bluewin.ch" ; $betreff = "Kontaktformular" ; $betreff2 = "Bestätigungs-Email" ; $send_text = "\n\n\n Der Besucher " . $vorname . " hat das Kontaktformular ausgefüllt. \n\n -------------------------------\n\n Vorname: " . $vorname . " \n Name: " . $name . " \n Email: " . $email . " \n\n -------------------------------\n\n Text: \n\n" . $text . " \n\n -------------------------------\n\n Datum beim Verschicken des Formulars : " . $datum . " \n Uhrzeit beim Verschicken des Formulars : " . $uhrzeit . " \n IP-Adresse des Users : " . $ip . " \n Sprache des Users : " . $sprache . " \n Browser des Users : " . $browser ; $send_text2 = "\n Dies ist ein Bestätigungsmail \n\n Ihre Email ist erfolgreich bei mir angekommen. \n\n MFG \n\n\n\n\n Formular powered by --------------" ; ?> sendmail.php PHP: <? php include "mail.config.php" ; mail ( $mail , $betreff , $send_text , "From: " . $email ); mail ( $email , $betreff2 , $send_text2 , "From: " . $mail ); ?> Und dann die Emails die kommen: Und das Eigentliche Formular!! Es kommt genau so an habe nichts gelöscht irgendwas mit den Feldern stimmt nicht glaub ich + Multi-Zitat Zitieren
#2 11. März 2008 AW: Kontaktformular Problem ich versteh nicht woher php z.B. in der mail.config.php wissen will, was die variable $vorname ist!? du musst sie ja erst definieren bzw. sie in $_REQUEST['vorname'] unbenenn, im übrigen habe ich mir mal sagen lassen das $_POST sicherer ist als $_REQUEST. gruß der gummel + Multi-Zitat Zitieren
#3 11. März 2008 AW: Kontaktformular Problem das gleiche auch in der sendmail.php wo ist die var $email definiert? + Multi-Zitat Zitieren
#4 12. März 2008 AW: Kontaktformular Problem Also hier bei den Codes muss man nochmal komplett ran, ich möchte da auch gar keine Tipps geben, denn hier ist ein absolut neuer Grundaufbau angesagt. HTML als auch der PHP - Code sind qualitativ schlecht und werden zu einem Spam-Formular verkommen! Zusätzlich bitte shorttags vermeiden. Ein guter Tipp von mir [G]quakenet php tutorial[/G] Naja $_POST ist nicht per se sicherer als $_REQUEST. Man kann bei nem Fanatiker wie ich fragen, welches "Payloadverfahren" für Übermittlung eines Mail-Formulars sinnvoller ist und zum anderen dient die strikte Überprüfung auf $_POST einfach nur Sicherheit, damit man etwas sicherer sein kann, dass das Formular auch wirklich genutzt wurde, und ich nicht z.B. eine CSRF passiert. Ich z.B. nutze generell REQUEST weil ich darauf achte, was abgeht .... + Multi-Zitat Zitieren