robertternes: Kontakt Formular

Hallo!

In meiner HTML Datei, hab ich irgendwann dieses Formular:

---------------------------------------------------------------------

<form action="mailer.php" method="POST" enctype="text/plain">
       <div align="center">
        <table border="0" width="90%" cellspacing="0" cellpadding="0" id="table4">
         <tr>
          <td width="40%" align="right" height="25" valign="top">
          <p style="margin-right: 10px">Name:</td>
          <td width="60%" height="25" valign="top">
          <input type="text" name="name" size="30" style="border: 1px solid #40352B; background-color: #FBFAF9; font-family:Verdana; font-size:8pt"></td>
         </tr>
         <tr>
          <td width="40%" align="right" height="25" valign="top">
          <p style="margin-right: 10px">E-Mail:</td>
          <td width="60%" height="25" valign="top">
          <input type="text" name="email" size="30" style="border: 1px solid #40352B; background-color: #FBFAF9; font-family:Verdana; font-size:8pt"></td>
         </tr>
         <tr>
          <td width="40%" align="right" height="75" valign="top">
          <p style="margin-right: 10px">Anschrift:</td>
          <td width="60%" height="75" valign="top">
          <textarea rows="4" name="adresse" cols="35" style="border: 1px solid #40352B; background-color: #FBFAF9; font-family:Verdana; font-size:8pt"></textarea></td>
         </tr>
         <tr>
          <td width="40%" align="right" valign="top">
          <p style="margin-right: 10px">Nachricht:</td>
          <td width="60%" valign="top">
          <textarea rows="10" name="nachricht" cols="35" style="border: 1px solid #40352B; background-color: #FBFAF9; font-family:Verdana; font-size:8pt"></textarea></td>
         </tr>
        </table>
        <p>
        <input type="submit" value="Absenden" name="Abschicken" style="border: 1px solid #40352B; background-color: #DFD6D1">
        <input type="reset" value="Zurücksetzen" name="B2" style="border: 1px solid #40352B; background-color: #DFD6D1"></div>

</form>
---------------------------------------------------------------------

Und die mailer.php sieht so aus:

---------------------------------------------------------------------
<html>
<head>
<title>Kontakt-Formular</title>
</head>
<body>

<?php

if($abschicken)
{
   if(empty($name) || empty($email) || empty($nachricht)) || empty($adresse)
   {
      echo "Es wurden nicht alle Felder ordnungsgemäß ausgefüllt. Bitte kehren Sie zurück und vervollständigen Sie Ihre Angaben!";
   }
   else
   {
      while(list($feld,$wert)=each($HTTP_POST_VARS))
      {
         if($feld!="abschicken")
         {
            $mailnachricht.=ucfirst($feld).": $wert\n";
         }
      }
      $mailnachricht.="\nDatum/Zeit: ";
      $mailnachricht.=date("d.m.Y H:i:s");
      $mailbetreff="Kontakt: ";
      $mailbetreff.=$HTTP_POST_VARS[betreff];
      mail("webdesign@pharao-software.de", $mailbetreff, $mailnachricht, "From: $email");
      echo "Vielen Dank für Ihre Anfrage!";
   }
}
else
{
   echo "Ein Fehler ist aufgetreten.";
}

?>

</body>
</html>
---------------------------------------------------------------------

Wenn ich das auf den Server lade und versuche de Mail abzuschicken bekomme ich die Fehlermeldung:
Parse error: parse error in /home/www/web30/html/mailer.php on line 11

Was ist da falsch? Ich kann leider keinen fehler finden. man muss auch sagen, dass dies mein erstes PHP Script ist ;)

Wäre dankbar, wenn mir jemand schnell helfen könnte!

  1. Da fehlt ne Klammer im if

    1. Da fehlt ne Klammer im if

      Bei welchem if? Ich sehe da alles richtig.. mhh - kannst du mir die genaue stelle nennen?

      1. Hi,

        statt

        if(empty($name) || empty($email) || empty($nachricht)) || empty($adresse)

        dieses

        if(empty($name) || empty($email) || empty($nachricht) || empty($adresse))

        dann müßte es gehen

        1. Hallo!

          Das habe ich jetzt gemacht, aber der Fehler tritt immer noch auf. Was soll ich tun?

          1. Hello,

            Das habe ich jetzt gemacht, aber der Fehler tritt immer noch auf. Was soll ich tun?

            PHP lernen, und zwar Schritt für Schritt und nicht gleich alles auf einmal. Drei Monate musst Du dir schon Zeit lassen bis zum Chräck.

            http://tut.php-q.net

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. Hallo!

    Ich hab das Problem mit den Klammern gelöst, aber jetzt kommt ein anderes Problem:

    <html>
    <head>
    <title>Kontakt-Formular</title>
    </head>
    <body>

    <?php

    if($Absenden)
    {
       if (empty($name) || empty($email) || empty($nachricht) || empty($adresse))
       {
          echo "Es wurden nicht alle Felder ordnungsgemäß ausgefüllt. Bitte kehren Sie zurück und vervollständigen Sie Ihre Angaben!";
       }
       else
       {
          while(list($feld,$wert)=each($HTTP_POST_VARS))
          {
             if($feld!="Absenden")
             {
                $mailnachricht.=ucfirst($feld).": $wert\n";
             }
          }
          $mailnachricht.="\nDatum/Zeit: ";
          $mailnachricht.=date("d.m.Y H:i:s");
          $mailbetreff="Kontakt: ";
          $mailbetreff.=$HTTP_POST_VARS[betreff];
          mail("webdesign@pharao-software.de", $mailbetreff, $mailnachricht, "From: $email");
          echo "Vielen Dank für Ihre Anfrage!";
       }
    }
    else
    {
       echo "Ein Fehler ist aufgetreten.";
    }

    ?>

    </body>
    </html>

    Wenn ich auf Absenden klicke, dann kommt die fehlermeldung "Ein Fehler ist aufgetreten" - wie es im Script steht, falls if($Absenden) nicht stimmt. Aber es müsste stimmen (siehe erster Beitrag Formularcode).

    ????

    1. die variable $Absenden soll eigentlich der Name des Buttons sein. Der heißt bei Dir aber Abschicken

      Gruß Rajko

      1. Habe ich gemacht, aber der Fehler besteht weiterhin.

        Lade dir doch bitte die dateien herunter und probiere sie selber aus - ich weiß nicht mehr weiter... ich hab auch schon vieles probiert:

        Formular: http://www.pharao-software.de/bestellung.htm
        PHP-Mailer: http://www.pharao-software.de/mailer.php

        Schonmal vielen Dank für die bisherige und die hoffentlich noch folgende Hilfe!

        die variable $Absenden soll eigentlich der Name des Buttons sein. Der heißt bei Dir aber Abschicken

        Gruß Rajko

        1. schau mal in deine Mailbox

          Gruß Rajko

    2. Hallo robert,

      if($Absenden)

      du verlässt dich hier drauf, das register_globals auf on steht, was bei dir vermutlich nicht der Fall ist - schreib mal hier $_POST['Absenden'] hin und lies http://www.php.net/language.variables.predefined

      if (empty($name) || empty($email) || empty($nachricht) || empty($adresse))

      hier das gleiche - das Array $_POST verwenden.

      mail("webdesign@pharao-software.de", $mailbetreff,

      das ist schonmal gut, dass du die E-Mailadresse fest im Script stehen hast, aber...

      $mailnachricht, "From: $email");

      ... du überprüfst nicht, was in $email (bzw. in $_POST['email']) drinsteht - damit kann dir jemand einen (B)CC-Header unterjubeln, und fröhlich E-Mails verschicken.

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|