Kontaktformular
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angeben
code
dank
email
fehler
fehlermeldung
feld
formular
http
jemand
karpfen
nachname
problem
support
team
test
text
url
versenden
vorname
-
Mhh dieses Scripte klappt leider nicht :(
Ist dort i-wo ein Fehler oder sonstiges drin?
Er gibt zwar an das er dieMail gesendet hat aber sendet sie nicht :(
Ursprungscode hier http://www.webdesign.rudomazin.de/scripte/kostenlose/kontaktformular-script.html
<?php // wenn das Formular übermittelt wurde if(isset($_POST['abschicken'])){ while(list($feld,$wert)=each($HTTP_POST_VARS)){ // übermittelte Inhalte "entschärfen" $wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert); $$feld=$wert; // die übermittelten Variablen werden zum "Text der Email" zusammengefasst if($feld!="abschicken"){ $mailnachricht.=ucfirst($feld).": $wert\n"; } } $mailnachricht.="\nDatum/Zeit: ". date("d.m.Y H:i:s"); // Überprüfen ob alle Pflichtfelder gefüllt sind empty($nachname) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false; empty($vorname) ? $err[] = "<p>- Bitte den Vornamen angeben.</p>" : false; empty($email) ? $err[] = "<p>- Bitte die Email-Adresse angeben.</p>" : false; // wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt if(!empty($err)) { echo "<p>Bitte korrigieren Sie folgende Fehler:</p>"; foreach($err as $fehler){ echo $fehler; } ?> <form action="#" method="post"> <table width="100%" border="0" cellpadding="3" cellspacing="1"> <tr><td width="140" align="right">*Nachname:</td><td align="left"><input type="text" name="nachname" value="<?php echo $nachname; ?>" style="width:40%;" /></td></tr> <tr><td align="right">*Vorname:</td><td align="left"><input type="text" name="vorname" value="<?php echo $vorname; ?>" style="width:40%" /></td></tr> <tr><td align="right">Postanschrift:</td><td align="left"><input type="text" name="strasse" value="<?php echo $strasse; ?>" style="width:40%" /></td></tr> <tr><td align="right">*E-Mail:</td><td align="left"><input type="text" name="email" value="<?php echo $email; ?>" style="width:40%" /></td></tr> <tr><td colspan="2"><textarea rows="12" style="width:40%" name="text"><?php echo $text; ?></textarea></td><td> </td></tr> <tr><td colspan="2" align="left" nowrap><br /><input type="reset" value="Formular löschen" style="width:19%" /> <input type="submit" name="abschicken" class="button" value="Formular absenden" style="width:19%" /></td></tr> </table> </form> <p>*Pflichtfelder</p> <p><a href=http://thorkai.lima-city.de/indexhaupt.php?site=Home><font color=black>Ohne Kontaktdaten senden zurück zur E-Mail </a><P> <?php // sind keine Fehler vorhanden, wird die Email versendet } else { $mailbetreff="Kontaktformular ".$_SERVER['php_self']; // HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!! if(mail("*****Meine E-Mail*****", $mailbetreff, $mailnachricht, "From: $email")){ echo "<p>Vielen Dank für Ihre eMail!</p>zurück zur Website: <a href=http://thorkai.lima-city.de/indexhaupt.php?site=Home><font color=black>Klicken</a>"; } else { echo "<p>Ein Fehler ist aufgetreten!</p>"; } } // das Formular welches als erstes dem Besucher angezeigt wird } else { ?> <form action="#" method="post"> <table width="100%" border="0" cellpadding="3" cellspacing="1"> <tr><td width="140" align="right">*Nachname:</td><td align="left"><input type="text" name="nachname" value="" style="width:40%;" /></td></tr> <tr><td align="right">*Vorname:</td><td align="left"><input type="text" name="vorname" value="" style="width:40%" /></td></tr> <tr><td align="right">Postanschrift:</td><td align="left"><input type="text" name="strasse" value="" style="width:40%" /></td></tr> <tr><td align="right">*E-Mail:</td><td align="left"><input type="text" name="email" value="" style="width:40%" /></td></tr> <tr><td colspan="2"><textarea rows="12" style="width:40%" name="text"></textarea></td><td> </td></tr> <tr><td colspan="2" align="left" nowrap><br /><input type="reset" value="Formular löschen" style="width:19%" /> <input type="submit" name="abschicken" value="Formular absenden" style="width:19%" /></td></tr> </table> </form> <p>*Pflichtfelder</p> <p><a href=http://thorkai.lima-city.de/indexhaupt.php?site=Home><font color=black>Ohne Kontaktdaten senden zurück zur Homepage </a><P> <br /> <br /> <br /> <br /><!-- bitte lassen Sie diesen Link sichtbar auf Ihrer Seite. Danke! --> <p style="text-align:right;font:normal 10px Verdana, Arial, Helvetica, sans-serif;"><a href="http://www.webdesign.rudomazin.de/" target="_blank">Script von DERUS Webdesign</a></p> <?php } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also mein Parser gibt dabei folgendes aus, das sollte dir ja weiterhelfen:
Warning: Variable passed to each() is not an array or object in /opt/lampp/htdocs/alphara/test.php on line 4
Notice: Undefined variable: mailnachricht in /opt/lampp/htdocs/alphara/test.php on line 13
Ersteres bezieht sich auf den Parameter der Whileschleife aber was da genau falsch ist, muss ich erst nachlesen, weil mir das so nicht ganz geläufig ist.
Das Zweite bezieht sich wohl darauf, dass die var nur in der Whileschleife bekannt ist und danach nicht mehr. Lässt sich ja leicht korrigieren.
€dit: Nicht, dass es wichtig ist, aber warum beendest du unterwegs immer wieder das php-script? Schreib es doch komplett durch und wirf die html in einem echo aus. Ist zwar nicht falsch, wie es jetzt ist, aber ich bin jedesmal verwirrt, wenn ich das sehe
€DIT: Nachdem ich jetzt mal alles ins Script übertragen habe sind da noch folgende Fehler aufgetaucht:
Notice: Undefined variable: nachname in /opt/lampp/htdocs/alphara/test.php on line 28
Notice: Undefined variable: vorname in /opt/lampp/htdocs/alphara/test.php on line 29
Notice: Undefined variable: strasse in /opt/lampp/htdocs/alphara/test.php on line 30
Notice: Undefined variable: email in /opt/lampp/htdocs/alphara/test.php on line 31
Notice: Undefined variable: text in /opt/lampp/htdocs/alphara/test.php on line 32
Die standen vorher in den Formularfeldern und da hab ich sie übersehen. Beruht aber vermutlich auf der gleichen Sache wie vorher der 2. Fehler
Beitrag zuletzt geändert: 18.8.2009 2:43:27 von alphara -
Hallo!
Allgemein liest man bei dieser Art Problem ja häufig (und oben war ja geschrieben worden, dass es keine Fehlermeldung gab), dass es gelegentlich zu Verzögerungen beim Mails-Versenden seitens lima-city kommt, so dass evtl. gar kein Code-Problem vorliegt. Ich benutze einen ganz ähnlichen PHP-Code zum Versenden von Mails aus einem Kontaktformular und habe ebenfalls seit ein paar Tagen Probleme damit, dass die Mails nicht ankommen. Vorher hatte es noch funktioniert und den Code hatte ich nicht geändert. Vielleicht weiß jemand aus dem Moderatoren-/Support-Team Rat?
Gruß,
bluemax -
Das Problem ist ganz klar:
Du hast ein Input Feld, das hat den Name "nachname".
Dann im zweiten Schritt willst du überprüfen, ob ein Wert in dieser Variable ist:
empty($nachname)
Doch wann sagst du dem Script, das der Wert "nachname" in dem Wert $nachname stehen soll?
Gar nicht, deswegen muss du erst folgendes machen:
$nachname = $_POST['nachname'];
Dann müsste es eigentlich laufen.
Ein wichtiger Tipp, du solltest die Eingabe des Benutzers erst checken, bevor du damit weiter arbeitest!
Beitrag zuletzt geändert: 18.8.2009 9:14:22 von newwarrior -
bluemax schrieb:
Hallo!
Allgemein liest man bei dieser Art Problem ja häufig (und oben war ja geschrieben worden, dass es keine Fehlermeldung gab), dass es gelegentlich zu Verzögerungen beim Mails-Versenden seitens lima-city kommt, so dass evtl. gar kein Code-Problem vorliegt. Ich benutze einen ganz ähnlichen PHP-Code zum Versenden von Mails aus einem Kontaktformular und habe ebenfalls seit ein paar Tagen Probleme damit, dass die Mails nicht ankommen. Vorher hatte es noch funktioniert und den Code hatte ich nicht geändert. Vielleicht weiß jemand aus dem Moderatoren-/Support-Team Rat?
Gruß,
bluemax
Ja hast Recht habs auf einen anderen Server geladen un des klapt *?*
Mhh könnte sich das Lima Team vielleicht mal melden deswegen? -
Die Mails kommen bei lima leider immer wieder sehr stark verzögert an, weshalb ich immer wieder dazu rate, dass ganze über SMTP zu verschicken.
-
Hallo karpfen,
das ist schon einmal ein wertvoller Hinweis. Vielen Dank! Ich habe im Forum nach entsprechenden PHP-Code für SMTP geschaut aber noch nichts prägnantes gefunden: Hättest Du einen Link zu funktionierendem Beispielcode?
Das wäre klasse und würde bestimmt auch vielen anderen helfen. Die Frage kommt ja immer wieder.
LG,
bluemax -
Zu diesem PHPMailer hab ich dann auch noch eine kleine Frage:
Funktioniert das auch, wenn ich einen HTML-Newsletter versenden möchte? Vor dem Problem stehe ich nämlich gerade (vielen Dank mail()-Funktion ) -
Sollte eigentlich auch mit HTML-Mails funktionieren.
-
Okay, super, dann versuch ich mal mein Glück ... ich für meinen Teil finde diesen Hinweis/Link schon jetzt sehr hilfreich ... wie oft hab ich schon mit dem Mailen gekämpft *soifz*.
-
Danke Karpfen werd mich mal bei Gelegenheit dran setzen ( die ich leider in nächster Zeit habe) ;)
Und allen anderen nochmal Danke -
ok, kann mir dann mal jemand einen kurzen Tipp geben, warum ich so viele Fehler bekomme, obwohl das Skript funktioniert?
Nebenbei zeigt es mir auch immer an, dass ich die Felder nicht ausgefüllt hätte, obwohl ich das habe... -
Hallo Karpfen:
Auch von mir einen dicken Dank für den Link (http://www.tanmar.info/content/view/36/64/)!
Bin dem Link bzw. dem dortigen Tutorial gefolgt und es klappt allerbestens!!!!
Zwei kleine Hinweise zum dortigen Tutorial:
1. Nicht aus Versehen class.phpmailer.php zweimal einbinden - der Beginn des Tutorials lädt dazu ein, was zu einem nicht ganz so leicht nachvollziehbaren Fehler führt.
2.Beim Hinzufügen eines Blindempfängers hat sich ein Syntaxfehler eingeschlichen: $mail->AddBCC('test1@tanmar.de',);
muss ohne ",", d.h. $mail->AddBCC('test1@tanmar.de'); geschrieben werden.
LG,
bluemax -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage