Problem mit Kontaktformular

xyz28

Mitglied
Hallo,
ich bin nun schon länger hier als Gast im Forum unterwegs gewesen.
Nun habe ich ein Problem mit einem PHP Kontaktformular.
Das Script habe ich dem Buch "PHP 5 - Praxisbuch & Referenz" entnommen und etwas geändert. Wenn ich nun das Script auf einem Funpic-Server (PHP Version 4.4.4) teste funktioniert es auch einwandfrei, wenn ich es allerdings auf dem Server (PHP Version 5.1.6 und Zend Engine) teste, auf dem es später zum Einsatz kommen soll, bekomme ich immer die Fehlermeldung, dass die E-Mail nicht korrekt sei, egal welche E-Mail ich in dem dafür vorgesehenen Feld eintrage.
Nun würde ich gerne wissen wo der Fehler liegt. Die Dateien habe ich als Anhang beigefügt.

Weiterhin wollte ich eine Art Captcha einbauen, um einen gewissen Schutz vor Spambots zu gewährleisten. Es wäre nett, wenn mir jemand dazu ein Tutorial/einen Ansatz geben könnte.

Vielen Dank im voraus.

PS: Ich arbeite erst seit ca. 4 Wochen mit PHP und habe deshalb diesbezüglich noch nicht so viel Erfahrung mit PHP. Deshalb würde ich darum bitten die Erklärung möglichst verständlich zu gestalten.
 

Anhänge

Zuletzt bearbeitet:
mach doch mal so:

PHP:
!preg_match('/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/',$Absender)

wegen CAPTCHA: http://www.deruwe.de/captcha.html

BTW: Hat das nen Sinn:
PHP:
                  //HTML-und PHP-Code entfernen
                  $inhalt = strip_tags($inhalt);
                  //Umlaute und Sonderzeichen in HTML umwandeln
                  $inhalt = htmlspecialchars($inhalt);
                  //Entfernt überflüssige Zeichen
                  $inhalt = trim($inhalt);
                  //Backslashes entfernen
                  $inhalt = stripslashes($inhalt);
? Was hast du denn gegen trim(strip_tags($inhalt)) etc.? :D
 
Zuletzt bearbeitet:
PHP:
!preg_match('/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/',$Absender)
Leider löst dein Vorschlag mein Problem auch nicht, der Fehler besteht weiterhin.
BTW: Hat das nen Sinn:
PHP:
                  //HTML-und PHP-Code entfernen
                  $inhalt = strip_tags($inhalt);
                  //Umlaute und Sonderzeichen in HTML umwandeln
                  $inhalt = htmlspecialchars($inhalt);
                  //Entfernt überflüssige Zeichen
                  $inhalt = trim($inhalt);
                  //Backslashes entfernen
                  $inhalt = stripslashes($inhalt);
? Was hast du denn gegen trim(strip_tags($inhalt)) etc.? :D
Man könnte das mit dem trim(...) etc. sicherlich auch anders lösen, nur habe ich das Script wie gesagt aus einem Buch entnommen und nur geringfügig verändert :-)
 
Du übergibst der Funktion doch den Variablenwert der Variable $Absender. Hast du diesen schon mal selbst geprüft?
 
Wenn ich versuche den Wert der Variablen $Absender ausgeben zu lassen mit:
PHP:
//...
if(!empty($error_msg)) {
              echo "
              <html>
              <head>
              <title>Test-Kontakt Fehler</title>
              </head>
              <body bgcolor='#FFFFFF' text='#000000'>
              <table width='300' align='center'>
              <tr>
              <td align='center' colspan='3'>- FEHLER - <br>
              <p>$error_msg</p>
              <p>$Absender</p>
              <a href='mailer.php'>Zur&uuml;ck</a><br>
//...
wird mir in der Fehlerausgabe keine E-Mail mit angegeben.
Daraus schließe ich, dass kein Wert für $Absender übergeben wird. Ich hoffe ich habe dich dahingehend, was die Überprüfung angeht richtig verstanden Gumbo.
Nun stellt sich mir die Frage warum nichts übergeben wird.
 
Hab ich was überlesen oder wurde noch gar nicht gesagt, um welche Fehlermeldung es sich eigentlich handelt? Also die, die PHP ausgibt, weil daran kann man ja schon essenzielle Sachen wie Syntaxfehler oder falsche Variablen erkennen.
 
Zurück