Wo ist Der fehler im Formmailer?
schmaidt
- php
Hi,
ich habe mal eine Frage bezüglich eines PHP-Skripts zur Versendung von Formulardaten an meine E-Mail Adresse. Allerdings bin ich ein ziemlicher PHP-Neuling und finde nicht den Fehler, bzw. ich weiss nicht wie ich ihn ausmerzen kann. Ich erhalte folgende Fehlermeldung:
Warning: Wrong parameter count for mail() in /web/sites/100/changing-
life/www.changing-life.f2s.com/assets/scripts/kontakt.php on line 41
Das ist der Teil der HTML-Datei und des Skripts, in dem der Fehler liegen müsste (Line 41 ist die Zeile mail("$to", ....) aber meiner Meinung nach stimmen alle Variablen!
<?
if (isset($cmd) && $cmd == "send")
{
// ******************** send mail ***********************
// Variablen aus dem Formular: $to, $subject, $name, $msg, $email
mail("$to", "$subject", "$name", "$msg", "From: $email\nX-Mailer: PHP/" . phpversion());
echo "<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td height="450">";
echo "<B>Deine eMail wurde verschickt</B><BR>";
echo "Bis bald . . . :-)<BR>";
echo "<div valign=bottom>";
echo "<p align=center>";
echo "</div></p></td></tr></table>";
exit;
}
// ************** finish ***************
// ******************** default, no parameters have been send ***********
?>
<form NAME="mailform" ACTION="<?echo "$PHP_SELF"?>" METHOD="POST">
<INPUT TYPE="hidden" NAME="cmd" VALUE=send>
<INPUT NAME="to" TYPE="hidden" value="schmaidt@web.de">
<INPUT NAME="subject" TYPE="hidden" value="Changing Life Bestellung">
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" align="center">
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="17" height="17">
<p><img src="http://www.schmaidt.de/cl-website/assets/images/main/bullet.gif" width="17" height="17"></p>
</td>
<td width="583" height="17">
<p><b>Formular</b></p>
</td>
</tr>
<tr>
<td colspan="2"><img src="http://www.schmaidt.de/cl-website/assets/images/shared/pixel_blank.gif" width="600" height="10"></td>
</tr>
<tr>
<td colspan="2">Name:</td>
</tr>
<tr>
<td colspan="2"><img src="http://www.schmaidt.de/cl-website/assets/images/shared/pixel_blank.gif" width="600" height="5"></td>
</tr>
<tr>
<td colspan="2">
<input type=text size=60 name="name" style="BORDER-RIGHT:#000000 1 solid;BORDER-LEFT:#000000 1 solid;BORDER-TOP:#000000 1 solid;BORDER-BOTTOM:#000000 1 solid">
</td>
</tr>
</tr>
<tr>
<td colspan="2"><img src="http://www.schmaidt.de/cl-website/assets/images/shared/pixel_blank.gif" width="600" height="10"></td>
</tr>
<tr>
<td colspan="2">E-Mail:</td>
</tr>
<tr>
<td colspan="2"><img src="http://www.schmaidt.de/cl-website/assets/images/shared/pixel_blank.gif" width="600" height="5"></td>
</tr>
<tr>
<td colspan="2">
<input type=text size=60 name="email" style="BORDER-RIGHT:#000000 1 solid;BORDER-LEFT:#000000 1 solid;BORDER-TOP:#000000 1 solid;BORDER-BOTTOM:#000000 1 solid">
</td>
</tr>
<tr>
<td colspan="2"><img src="http://www.schmaidt.de/cl-website/assets/images/shared/pixel_blank.gif" width="600" height="10"></td>
</tr>
<tr>
<td colspan="2">Kommentar:</td>
</tr>
<tr>
<td colspan="2"><img src="http://www.schmaidt.de/cl-website/assets/images/shared/pixel_blank.gif" width="600" height="5"></td>
</tr>
<tr>
<td colspan="2">
<textarea cols="52" name="msg" style="BORDER-RIGHT:#000000 1 solid;BORDER-LEFT:#000000 1 solid;BORDER-TOP:#000000 1 solid;BORDER-BOTTOM:#000000 1 solid" rows="5">
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td width="50%">
<input type="submit">
</td>
<td width="50%">
<input type="reset">
</td>
</tr>
</table>
</form>
Kann mir da jemand helfen?
Danke jetzt schonmal, schmaidt
mail("$to", "$subject", "$name", "$msg", "From: $email\nX-Mailer: PHP/" . phpversion());
die korrekte syntax lautet:
mail("empfängeremail","betreffzeile","bodymessage","sonstige header");
$name gehört da nicht rein... wenn d uden namen rein willst würd ich das ganze so aufbaun:
mail($to,$subject,$msg,"From: $name <$email>\nX-Mailer: PHP/".phpversion());
lg
ludwig
die korrekte syntax lautet:
mail("empfängeremail","betreffzeile","bodymessage","sonstige header");
Bedeutet das, dass ich, wenn ich mehrere Texfelder im Formular habe (zB. Anschrift, Tel.-Nr., ...), diese alle in "bodymessage" als eine Variable reinpacken muss? Wenn ja, wie packe ich mehrere Formularfelder in eine Variable?
Danke, schmaidt
schreib doch in die bodymessage
mail("a@a.de","Feedback","Name: $name\nEmail: $email\nText: $text","")
schreib doch in die bodymessage
mail("a@a.de","Feedback","Name: $name\nEmail: $email\nText: $text","")
Oh sorry, aber das ging zu schnell. Das hab ich nicht kapiert!
schmaidt
schreib doch in die bodymessage
mail("a@a.de","Feedback","Name: $name\nEmail: $email\nText: $text","")
Oh sorry, aber das ging zu schnell. Das hab ich nicht kapiert!
schmaidt
Mach es so:
$bodytext="
Nachricht von $name (mailto:$email)
Text:
$msg
";
mail("an@empfänger.de","Feedback",$bodytext,"FROM: $name <$email>");
lg
ludwig
seas,
Warning: Wrong parameter count for mail() in /web/sites/100/changing-
life/www.changing-life.f2s.com/assets/scripts/kontakt.php on line 41
ich habe mir vor ca. einer woche auch einen account bei f2s.com gemacht.
das mit dem fünften parameter habe ich nicht probiert aber ich denke das
die eine zu alte php version haben siehe:
http://www.php.net/manual/en/function.mail.php
Note: This fifth parameter was added in PHP 4.0.5.
und soviel ich noch weiß verwenden die 4.0.4pl1.
und jetzt noch was zu f2s seit dem ich den account dort habe, hat sendmail
genau einmal funktioniert (für ca. 15 min). wie man auch im userforum nachlesen kann hat
f2s irgend etwas umgestellt und jetzt läuft noch nicht alles einwandfrei. wann
jedoch die vorhaben das sendmail zum laufen zu bringen steht nirgendwo.
schöne grüße
FICHTL
Naja, aber kennst Du denn einen anderen kostenlosen Webspaceanbieter, der die neueste PHP-Version unterstützt?
Schmaidt
Hi,
habe mich vorgestern oder so auch mit der Frage rumgeschlagen und das folgendermaßen gemacht:
________________________________________________________________
<?
/*Hier kann der Empfänger, die Domain und der Mailbetreff ($subject) definiert werden.
Außerdem kann hier die Antwortseite angegeben werden (mit korrektem Pfad bitte,
falls in anderem Verzeichnis. Es sollten alle Variablen
definiert sein (macht einen guten Eindruck :-) */
$empfaenger="ralf";
$subject="Anfrage über das Mail-Formular Ihrer Internet Seite";
$domain="xyz.de";
$antwort="antwort.html";
/*Definition der Felder, die mit der Mail versandt werden. Die Felder der Mail müssen dann
wie die Variable benannt werden also "name", "vorname" usw.*/
$name;
$vorname;
$strasse;
$telefon;
$telefax;
$email;
$rueckruf;
$nachricht;
//Ab hier erfolgt die Zusammenstellung des Mail-Inhalts
$message="Name: $name\n";
$message.="Vorname: $vorname\n";
$message.="Strasse: $strasse\n";
$message.="Telefon: $telefon\n";
$message.="Telefax: $telefax\n";
$message.="E-Mail: $email\n";
$message.="Rueckruf: $rueckruf\n";
$message.="Nachricht: $nachricht\n";
//Hier wird die Mail versandt
mail($empfaenger, $subject, $message,
"From: kontaktformular@$domain\n Reply-To:$email \nX-Mailer: PHP/" . phpversion());
//hier wird die Antwortseite includet.
include $antwort;
?>
_____________________________________________________________________
duch das "$message.=" addierst du die Bestandteile deines Formulares sozusagen zu einer Variablen, nämlich $message.
Gruß Ralf
(faszinierter php Newbie)