Formalar-Fehler, aber wo?!?
Klaus
- php
Hi,
ich habe ein Formular in PHP geschrieben. Kann mir jemand sagen, weshalb ich in den ersten 3 Zeilen eine Fehlermeldug bekomme?
if(strlen($name) > 3 && strlen($vorname) > 3 && strlen($strasse) > 3 && strlen($plz) > 3 && strlen($ort) > 3) && strlen($tel) > 3 && strlen($fax) > 3 && strlen($email) > 3)
{
$mail.="
Name: $name
Vorname: $vorname
Strasse: $strasse
PLZ: $plz
Ort: $ort
Telefon: $tel
Fax: $fax
E-Mail: $email";
mail($recipient,$name,$vorname,$strasse,$plz,$ort,$tel,$fax,$email,"From:$name <$email>\n");
echo "
<tr>
<td>Vielen Dank für Ihre Nachricht!</td>
</tr>
";
}
else
echo ".....
also ich wuerde das so machen...
$mail .= "Name: ";
$mail .= $name;
$mail .= "Vorname: ";
$mail .= $vorname;
usw ....
Habe ich versucht. Es kommt aber immer noch die selbe Fehlermeldung an der selben Stelle.
Vielleicht ist aber auch sonst irgendwo was falsch und ich sehe das einfach nur nicht. Deshalb, auch wenns nicht üblich ist, hiermal das ganze Script.
<?
$recipient = "mail@meine_firma.de";
$subject = "Meine Firma";
echo "
<html>
<head>
</head>
<body>
<table cellspacing='0' cellpadding='5' border='0'>
";
if(strlen($name) > 3 && strlen($vorname) > 3 && strlen($strasse) > 3 && strlen($plz) > 3 && strlen($ort) > 3) && strlen($tel) > 3 && strlen($fax) > 3 && strlen($email) > 3)
{
$mail.="
$mail .= "Name: ";
$mail .= $name;
$mail .= "Vorname: ";
$mail .= $vorname;
$mail .= "Strasse: ";
$mail .= $strasse;
$mail .= "PLZ ";
$mail .= $plz;
$mail .= "Ort: ";
$mail .= $ort;
$mail .= "Telefon: ";
$mail .= $tel;
$mail .= "Fax: ";
$mail .= $fax;
$mail .= "EMail: ";
$mail .= $email;
mail($recipient,$name,$vorname,$strasse,$plz,$ort,$tel,$fax,$email,"From:$name <$email>\n");
echo "
<tr>
<td>Vielen Dank für Ihre Nachricht!</td>
</tr>
";
}
else
echo "
<form action='$PHP_SELF' method='post'>
<P>Ich benötige Detailinfos zu folgenden Themen:<P>
<hr>
<table border=0 width=50%>
<tr>
<td width=20%>Name:</td>
<td width=20%><input name='name' type='text' value='$name' rows=1 cols=1 size='25' align=left></td>
<-- hier sind dann die anderen Eingabefelder
<p><input type='submit' value='Absenden'> an mich !<br><br>
<P>
</form>
";
echo "
</table>
</body>
</html>
";
?>
das gleich gilt natürlich für das echo in der 3ten zeile und auch nochmal weiter unten ...
echo darf keinen zeilenumbruch haben
es sollte so aussehen
echo "<html><head></head><body><table>"; (abgeschlossene zeile)
wenn du im generierten quelltext die umbrüche haben willst siehe bei dir oben
dann halt so
echo "<html>\n<head>\n</head>\n";
\n steht für NeueZeile
echo darf keinen zeilenumbruch haben
Oh, das ist mir neu. Muss ich jetzt meine ganzen Scripte umschreiben?
;-)
Funzt leider immer noch net.
Parse error: parse error in /raid/domains/de/
Nabend,
Parse error: parse error in /raid/domains/de/
Dann sag doch auch einmal in welcher Zeile (markiere sie) und ebenso, was es für eine Meldung ist. Meistens sind diese aber doch so super selbsterklärend...
(natürlich hast du Error-Reporting genau wegen diesen Zwecken auf E_ALL stehen...)
Bis denne,
Nabend,
Es kommt aber immer noch die selbe Fehlermeldung an der selben Stelle.
Die du aber immer noch nicht verstehen oder gar mitteilen möchtest...
Bis denne,
Hi,
$mail.="
Name: $name
Vorname: $vorname
Strasse: $strasse
PLZ: $plz
Ort: $ort
Telefon: $tel
Fax: $fax
E-Mail: $email";
Schön, jetzt hast Du alle Daten für die Mail in einer Variable.
mail($recipient,$name,$vorname,$strasse,$plz,$ort,$tel,$fax,$email,"From:$name <$email>\n");
Und jetzt übergibst Du alles einzeln an die mail-Funktion, die mit diesen Sachen aber nicht viel anfangen kann...
cu,
Andreas
Hi,
if(strlen($name) > 3 && strlen($vorname) > 3 && strlen($strasse) > 3 && strlen($plz) > 3 && strlen($ort) > 3) && strlen($tel) > 3 && strlen($fax) > 3 && strlen($email) > 3)
Die Überprüfungen sind z.T. auch sinnlos.
Warum muß der Nachname mind. 4 Zeichen haben? Edgar Allan Poe, ...
Warum muß der Vorname mind. 4 Zeichen haben? Tim, Bob, Jim, ...
Warum muß eine PLZ vorhanden sein? Nicht in jedem Land gibt es Postleitzahlen (Irland z.B.) - oder darf man nur aus Deutschland Kontakt aufnehmen?
Warum muß der Ort mind. 4 Zeichen haben? Au (zw. München und Regensburg), Aue (südöstl. von Zwickau), ...
Warum muß die Faxnummer überhaupt vorhanden sein? Ich hab z.B. kein Fax...
Eine email-Adresse muß auch mind. 6 Zeichen haben (a@b.xy [absichtlich nicht example.org, da zu lang - dafür aber mit derzeit ungültiger tld])
cu,
Andreas
habe d'ehre
if(strlen($name) > 3 && strlen($vorname) > 3 && strlen($strasse) > 3 && strlen($plz) > 3 && strlen($ort) > 3) && strlen($tel) > 3 && strlen($fax) > 3 && strlen($email) > 3)
Wo kommen denn eigentlich Deine Variablen her? Ich vermute mal mit POST
also $_POST['name'] etc;
Die komische Verkettung wuerde ich mal durch eine vernuenftige Formularfeldpruefung ersetzen. Wenn irgendwas nicht Deinen VOrstellungen[1] entspricht einfach $sendemail = "no" setzen und diese vor dem Versand pruefen.
|mail($recipient,$name,$vorname,$strasse,$plz,$ort,$tel,$fax,$email,"From:$name
Die Exakte Syntax fuer mail()
mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])
Jetzt vergleiche mal mit Deiner Funktion.
[1] Warum diese sinnbefreit sind wurde Dir schon mitgeteilt.
carpe diem
Wilhelm