PHP: Einfacher PHP-Formmailer
Frank
- php
0 frankx0 Der Martin
Ich hab versucht ein Kontaktformular das ich schon hatte in eine anderes Layout einzu binden, war auch kein problem, aber es versendet keine mails mehr.
<? if($absenden){
$text="Betreff: ".$anfrage."<br>
PLZ: ".$plz." <br>
Ort: ".$ort." <br>
Strasse: ".$strasse." <br>
email: ".$email." <br>
Vorname: ".$vorname." <br>
Name: ".$name;
mail("$emailselect","Comedy-Night Anfrage",$text,"Content-Type: text/html");
echo "<font color=#000000 size=2 face=Verdana, Arial, Helvetica, sans-serif><strong>Anfrage erfolgreich versandt </strong></font>";
}
?>
Dann hab ich mal das hier eins zu eins kopiert:
http://aktuell.de.selfhtml.org/artikel/php/form-mail/index.htm#
Empfänger-Adresse und die Danke-Seite geändert.
ich hab es dann mal online und einmal local hier auf meine server getestet.
bei meine server bekomme ich die fehlermeldung das er nicht zum mailserver(localhost) verbinden kann, ist mir auch klar, der ist im moment noch nicht installiert.
online(http://varmandra.com/test.php) scheint alles zu gehen, keine fehlermeldung, aber bei mir kommt keine mail an, wie bei meine script.
macht mir da jetzt mein provider einen strich durch die rechnung oder stimmt da was mit dem script nicht?
BdT
Frank
Hellihello Frank,
da steht einmal $email und einmal $emailselect. Nimm doch erstmal keine Variable sondern deine Adresse:
mail("test@example.com"...);
Dann siehst Du, ob die Mailfunktion geht.
Dann kannst Du dir auch mit
var_dump($email) mal ausgeben lassen, welchen Wert die Variable enthält.
Gruß,
frankx
Hallo Frank,
<? if($absenden){
diese "halbe" Zeile lässt gleich zwei wichtige Fragen aufkommen:
Sind short_open_tags für PHP auf deinem Server zugelassen? Das ist keineswegs selbstverständlich; ich empfehle sicherheitshalber, *grundsätzlich* die ausführliche Schreibweise "<?php" zu verwenden.
Und wo kommt die Variable $absenden her? Normalerweise hätte ich an dieser Stelle etwas wie $_POST['absenden'] erwartet. Mich beschleicht der Verdacht, dass dein Hoster früher register_globals aktiv hatte und dieses zweifelhafte Feature nun endlich abgestellt hat. Das spräche für ihn. Das würde dann aber auch bedeuten, dass man all die Schlampereien aus Bequemlichkeit nun ins Reine bringen muss.
$text="Betreff: ".$anfrage."<br>
PLZ: ".$plz." <br>
Ort: ".$ort." <br>
Strasse: ".$strasse." <br>
email: ".$email." <br>
Vorname: ".$vorname." <br>
Name: ".$name;
Auch hier tauchen wahrscheinlich alle Variablen aus dem Nichts auf ...
mail("$emailselect","Comedy-Night Anfrage",$text,"Content-Type: text/html");
Warum bettest du $emailselect nochmal in einen String ein? Das macht dem PHP-Parser nur unnötig Arbeit. Und warum versendest du diese einfach strukturierte Nachricht als HTML? Dafür wäre eine Plaintext-Nachricht völlig ausreichend, also zu bevorzugen.
macht mir da jetzt mein provider einen strich durch die rechnung oder stimmt da was mit dem script nicht?
Wie gesagt: Mein Verdacht ist, dass der Provider endlich register_globals deaktiviert hat.
Ciao,
Martin