Formmailer
Serai
- php
Hallo
ich hab mir mal einen Formmailer zusammen gebastelt aber irgendwie funz das ding nicht das zeigt bei mir immer eine fehlermeldung an in der zeile 108
aber in der zeile 108 ist nur das endtag von php (?>). Kann mir vll jmd helfe?
Danke
Serai
Hi Serai,
das zeigt bei mir immer eine fehlermeldung an in der zeile 108
nachdem das SFAFES (Self-Forum-Automatisches-Fehlermeldung-Erkennungs-System) derzeit offline ist, bitte ich Dich, uns zu verraten, _welche_ Fehlermeldung da kommt.
Mit lieben Grüßen aus Wien
Michi
Hi
also er zeigt diesen Fehler an
Parse error: parse error in C:\xampp\htdocs\php\mailer.php on line 108
aber was das weiter helfen soll ^^
liebe grüße
Sara
Hi Serai,
also er zeigt diesen Fehler an
Parse error: parse error in C:\xampp\htdocs\php\mailer.php on line 108
daraus schließe ich, dass Du die Ressource lokal verwendest. Ich zähle hier nicht zu den PHP-Experten, aber soweit ich weiß kann man mit XAMPP nicht alles machen, was mit einem richtigen PHP-Server möglich ist und das _könnte_ auch Mailfunktionen betreffen.
Hast Du die Ressource auch schon auf den Server eines Hosters hochgeladen und versucht, das Skript dort auzuführen?
Mit lieben Grüßen aus Wien
Michi
Hi Michi
nein hab ich noch nicht. Aber ich hab auch keinen server wo ich das hoch laden könnte. Also liegt es an xampp. Danke für die info ^^ dann muss ich mir was anderes überlegen
liebe grüße
serai
Yerf!
also er zeigt diesen Fehler an
Parse error: parse error in C:\xampp\htdocs\php\mailer.php on line 108aber was das weiter helfen soll ^^
Ein Parse Error wird meist nach dem eigentlichen Fehler angezeigt. Also ist vermutlich in Zeile 107 etwas falsch.
Gruß,
Harlequin
Hi
also ich kopier jetzt den Quelltcode hier rein ich hab zwar was geändert aber dann zeigt es immer mehr fehler an. ^^
wer will kann mal reinschauen.
<script language="php">
$GLOBALS['fehler'] = array();
if (isset($_POST['submit']))
{
pruefe_name($_POST['vorname'],
"Sie haben den Vornamen nicht eingegeben.",
"Sie haben unerlaubte Zeichen im Vornamen eingegeben.");
pruefe_name($_POST['nachname'],
"Sie haben den Nachnamen nicht eingegeben.",
"Sie haben unerlaubte Zeichen im Nachnamen eingegeben.");
pruefe_email($_POST['email'],
"Sie haben keine eMail angegeben.",
"Sie haben unerlaubte Zeichen in Ihrer eMail-Adresse verwendet.");
if (empty($_POST['anfrage'])) : array_push($GLOBALS['fehler'],
"Sie haben keine Anfrage eingegeben."."<BR>"); $_POST['anfrage'] = NULL; endif;
daten_senden("miau@web.de",
"Anfrage - ".$_POST['thema'],
"Von: ".$_POST['anrede']." ".$_POST['vorname']." ".$_POST['nachname']."\n".
"eMail-Adresse: ".$_POST['email']."\n".
"Anfrage: \n----------\n".$_POST['anfrage'],
"Bestätigung",
"Guten Tag ".$_POST['anrede']." ".$_POST['vorname']." ".$_POST['nachname'].",\n".
"Sie erhalten diese eMail, da Sie auf unserer Webseite mit uns Kontakt aufgenommen und eine eMail-".
"Bestätigung gewünscht haben.\n".
"Ihre Anfrage wird so schnell von unseren Mitarbeitern verarbeitet und Sie werden von uns informiert.\n".
"Mit freundlichen Grüßen.",
"Leider konnte Ihre Nachricht nicht übermittelt werden.",
"Leider konnte Ihre Bestätigung nicht übermittelt werden.",
"Ihre Anfrage wurde erfolgreich gesendet.",
"Ihre Bestätigungsmail wurde erfolgreich an Sie weitergeleitet.",
"From: ".$_POST['email']." <".$_POST['vorname']." ".$_POST['nachname'].">",
"From: Mustermann");
}
function pruefe_name(&$name, $fehlermld_1, $fehlermld_2)
{
$name = trim($name);
if (empty($name)) : array_push($GLOBALS['fehler'], $fehlermld_1."<BR>");
$name = NULL; return; endif;
if (preg_match("/^[- A-Za-zÄÖÜßäöü]{2,25}$/i", $name))
{
return $name;
}
else
{
array_push($GLOBALS['fehler'], $fehlermld_2."<BR>");
$name = NULL;
return;
}
function pruefe_email(&$email, $fehlermld_1, $fehlermld_2)
{
$email = trim($email);
if (empty($email)) : array_push($GLOBALS['fehler'], $fehlermld_1."<BR>"); $email = NULL; return; endif;
if (preg_match(
"/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/",
$email))
{
return $email;
}
else
{
array_push($GLOBALS['fehler'], $fehlermld_2."<BR>");
$email = NULL;
return;
}
}
function daten_senden($email, $betreff, $inhalt, $betreff_empfbest, $inhalt_empfbest, $fehlermld,
$fehlermld_empfbest, $erfolgrmld, $erfolgrmld_empfbest, $header = "", $header_empfbest = "")
{
if (sizeof($GLOBALS['fehler']) == 0)
{
if (@mail($email, $betreff, $inhalt, $header)) { echo $erfolgrmld."<BR>"; } else { echo $fehlermld."<BR>"; }
if ($_POST['bestaetigung'])
{
if (@mail($_POST['email'], $betreff_empfbest, $inhalt_empfbest, $header_empfbest))
{
echo $erfolgrmld_empfbest."<BR>";
}
else
{
echo $fehlermld_empfbest."<BR>";
}
}
else
{
foreach ($GLOBALS['fehler'] AS $value)
}
{
echo $value;
}
</script>
Mahlzeit Serai,
<script language="php">
Und das geht? Hattest Du nicht in Deinem ursprünglichen Beitrag etwas von "?>" geschrieben?
if (empty($email)) : array_push($GLOBALS['fehler'], $fehlermld_1."<BR>"); $email = NULL; return; endif;
if (preg_match(
"/^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$/",
$email))
{
return $email;
}
Du verwendest mal die alternative, mal die "klassische" Syntax für if ... es wäre übersichtlicher, wenn Du bei einer bleiben würdest.
Darüber hinaus ist Dein Einrückstil sehr stark gewöhnungsbedürftig, nicht unbedingt leicht lesbar und schreckt Leser unnötig ab.
Bereinige Deinen Code - vielleicht fällt dann auch besser auf, an welcher Stelle Du das Schließen eines Anweisungsblocks vergessen haben könntest (IMHO immer noch der wahrscheinlichste Kandidat als Fehlerursache) ...
MfG,
EKKi
Hello,
... was mal wieder zeigt, dass ein sauberer Allman-Style für die Code-Formatierung die beste Wahl wäre :-)
Was sollen denn diese beiden Zeilen bewirken?
if (empty($_POST['anfrage'])) : array_push($GLOBALS['fehler'],
"Sie haben keine Anfrage eingegeben."."<BR>"); $_POST['anfrage'] = NULL; endif;
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Ganz am Ende:
else
{
foreach ($GLOBALS['fehler'] AS $value)
}
{
echo $value;
}
o.O
Hoffentlich siehst du den Fehler (außer ich gehe hier von falschen Prämissen aus, aber ein foreach ohne body kann ich mir nicht ganz vorstellen).
Mahlzeit Serai,
also er zeigt diesen Fehler an
Parse error: parse error in C:\xampp\htdocs\php\mailer.php on line 108aber was das weiter helfen soll ^^
Das sagt dem geneigten Leser, dass Dein Code in irgendeiner Form syntaktisch falsch ist - und zwar entweder in Zeile 108 oder einer der vorangegangenen.
Wie sehen die betreffenden Zeilen aus?
Ich vermute immer noch stark, dass Du irgendeine Schleife oder irgendeinen Block nicht sauber geschlossen hast, so dass der Parser vom plötzlichen Schließen des PHP-Blocks überrascht wird ...
MfG,
EKKi
Mahlzeit Serai,
das zeigt bei mir immer eine fehlermeldung an in der zeile 108
aber in der zeile 108 ist nur das endtag von php (?>).
"Eine Fehlermeldung"? Wie lautet sie denn genau (Glaskugeln sind grad aus)?
Häufig befindet sich der Fehler in der Zeile vor derjenigen, die angemeckert wird. Wenn es sich um ein PHP-Ende-Tag handelt, kann es auch gut sein, dass irgendeine Schleife oder irgendein Block ( { } ) nicht korrekt beendet wurde.
MfG,
EKKi
Hello,
es wäre hilfreich, wenn Du den Code zu Deinem Formmailer zumindest mal als *.txt-Datei verlinken würdest. Dann könnte man sich auch ansehen, worum es eigentlich geht.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg