schmaidt: Wo ist Der fehler im Formmailer?

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

  1. 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

    1. 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

      1. schreib doch in die bodymessage
        mail("a@a.de","Feedback","Name: $name\nEmail: $email\nText: $text","")

        1. 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

          1. 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

  2. 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

    1. Naja, aber kennst Du denn einen anderen kostenlosen Webspaceanbieter, der die neueste PHP-Version unterstützt?

      Schmaidt

  3. 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)