Stephan: Mailscript funzt nicht...

Hallo. Ich habe versucht, mir ein Mailscript zu bauen. Aber es funzt mit den Parametern nicht.. Eine Datei heisst "bestell.php" und das ist ihr Quelltext:

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

<p align=center><b>Bestellformular</b></p>
<table border=0>
<tr>
<form action="senden.php" method="post">
<td>Vorname</td>   <td><input type="text" name="vorname" size="30"></td>
</tr><tr>
<td>Nachname</td>   <td><input type="text" name="nachname" size="30"></td>
</tr><tr>
<td>Straße/Nr</td>   <td><input type="text" name="straße" size="30"></td>
</tr><br><br><tr>
<td>PLZ/Ort</td>   <td><input type="text" name="ort" size="30"></td>
</tr><tr>
<td>Emailadresse</td>   <td><input type="text" name="email" size="30"></td>
</tr><tr>
<td>Gewünschtes Webpaket</td>  <td><input type="text" name="webpaket" size="30"></td>
</tr><br><br><tr>
<td>Wunschdomain (ohne www)</td> <td><input type="text" name="wunschdomain" size="30"></td>
</tr><tr>
<td>Sonstige Fragen oder Anregungen</td><td><input type="text" name="sonstiges" size="30"></td>
</tr>
</table>

Bitte vor dem Abschicken genau auf Richtigkeit der Daten kontrollieren.<br><br>

<input type="submit" name="senden" value="Bestellung aufgeben">
</form>
-----------------------------

Ja, dann gibt es noch die "senden.php", die hat folgenden Quelltext:

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

</head>
<body>

<?
$empfaenger = "stephan@lectronhosting.com";
$redirect = "$email";
$betreff = "Bestellung von $name, $vorname";
$inhalt = "Hallo Webmaster. <br><br>
Es ist eine Bestellung eingegangen.<br>
Name: $vorname $name<br>
Adresse: $straße<br>
PLZ/Ort: $ort<br>
Emailadresse: $email<br><br>
Gewünschtes Webpaket und Wunschdomain des Kunden: $webpaket, $wunschdomain
<br><br>
<br>
Sonstiges: $sonstiges";

mail($redirect, $empfaenger, $betreff, $inhalt);

echo"Bitte warten<br>
Sie werden in 10 Sekunden weitergeleitet!
<br><br><br>

Der Webmaster hat folgende Mail erhalten:<br><br><br><br>

$inhalt";
?>
</body></html>
-------------------------------

Wenn ich das Formular ausfülle, kommt eine Bestätigung, so wie ich es wollte.. Allerdings stehen in dieser Bestätigung keine Daten der Parameter drin, die ich eingesetzt habe.. Und eine Mail wird auch nicht versendet. Was habe ich falsch gemacht?

Gruß Stephan

  1. Hey Stephan,
    auf dem Server ist register_globals wohl richtigerweise auf OFF gesetzt worden.
    Das heißt, dass du auf deine Variablen nicht über $variable zugreifen kannst, sondern in deinem fall über $_POST['variable']
    Also damit sind die ganzen Variablen aus dem Formular, dass mit POST übertragen wurde gemeint.
    gruß
    aLex

    1. Hey Stephan,
      auf dem Server ist register_globals wohl richtigerweise auf OFF gesetzt worden.
      Das heißt, dass du auf deine Variablen nicht über $variable zugreifen kannst, sondern in deinem fall über $_POST['variable']
      Also damit sind die ganzen Variablen aus dem Formular, dass mit POST übertragen wurde gemeint.
      gruß
      aLex

      Hm, das klappt nicht, dann kommt diese Meldung hier:

      Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/l/lectronhosting.com/public_html/senden.php on line 13

      Das ist sicherlich nur ein Tippfehler oder so ?!?

      Mfg

      Stephan

      1. Hi,

        Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/l/lectronhosting.com/public_html/senden.php on line 13

        Das ist sicherlich nur ein Tippfehler oder so ?!?

        Nein, ein Denkfehler. Du denkst, das wir riechen können, was aktuell in Zeile 13 Steht, aber das können hier nur sehr wenige.

        1. Also:

          Mittlerweile versendet er die Mail.. Aber es kommt folgende Mail an:
          -------------------------------------
          Hallo Webmaster. <br><br>
          Es ist eine Bestellung eingegangen.<br>
          Name: Array ['vorname'] Array ['nachname']<br>
          Adresse: Array ['strasse']<br>
          PLZ/Ort: Array ['ort']<br>
          Emailadresse: Array ['email']<br><br>
          Gewünschtes Webpaket und Wunschdomain des Kunden: Array ['webpaket'], Array ['wunschdomain']
          <br><br>
          <br>
          Sonstiges: Array ['sonstiges']

          Bestellung von Array ['nachname'], Array ['vorname']
          ---------------------------------------

          Kein Betreff, kein Absender steht richtig in der Mail... Was ist denn jetzt noch falsch am Script? Und die Variabeln kommen auch nicht an..

          Hm.

          Danke für eure Hilfe..

          Mfg

          Stephan

          1. 2 Stichwörter, die in den letzen Tagen hier zuhauf gefallen sind:

            register_globals
            HTML-Mails (bzw. MIME-Mails)

      2. Hey,
        jo, das wird wohl heißen, dass du einen Tippfehler drinne hast. Genauer: irgend ein lehrzeichen wo keins sein soll. Also such mal danach dann wirds klappen.
        Alex

  2. Hallo Stephan.

    mail($redirect, $empfaenger, $betreff, $inhalt);

    Bist du sicher, dass du die Parameter der mail-Funktion richtig zugeordnet hast?

    Du musst $redirect und $empfaenger schon zu einem einzigen String verknüpfen und natürlich ein Komma in diesen String zwischen die beiden Mailadressen setzen.

    Momentan geht die Mail mit dem Betreff $empfaenger und dem Inhalt $betreff an $redirect und verwendet zusätzliche Header aus $inhalt.

    Einen schönen Freitag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]