Andreas: mail(), Massage über mehrere Zeilen - Warum geht das nicht???

Hallo!
Habe folgendes Script, welches 100%ig schonmal bei mir funkioniert hat, wollte das woanders einbauen und ich bekomme es zum verrecken nicht mehr hin!

<?php

$Variable = "Wert";

$subject = "Bestätigung";

/* message */
$message. = "Hallo!\n";
$message. = "Vielen Dank für Ihre Bestellung!\n\n";
$message. = "$Wert";

mail("akorthaus@web.de", "$subject", "$message", "From: Absender\nReply-To: akorthaus@web.de");
?>

Es kommt immer ein "parse Error" in Zeile 8, da wo das erste mal $massage. steht.
Ich hab das immer unter anderen Namen gespeichert, wenn ich wa geändrt habe, nur wenn ich für massage eine einzeilige Variable verwende funktioniert es wieder, so wie

$massage = "Hallo!";

Warum geht das nicht?

Gruß
Andreas

  1. Hallo Andreas

    $message. = "Hallo!\n";

    Probier mal:

    $message .= "Hallo!\n";

    viele Gruesse
      Stefan Muenz

    1. Moin

      $message .= "Hallo!\n";

      Und bitte, bitte initialisiere deine Variablen immer! Schreibe also beim ersten mal wo $message auftaucht $message = "Hallo!\n";  oder irgendwo davor ein unset($message);

      Denn der .=-Operator hängt nur einen String an eine vorher bestende Variable an, und da du sie vorher nirgendwo initialisiert hast, kann der User das tun, indem er einfach ?message=Haha an den URL des Skriptes anhängt.
      Wie du leicht siehst könnte man dann beliebiges Mails verschicken, und ich möchte beinahe wetten, dass es da eine Möglichkeit gibt unserem aller Lieblingsmailclienten einen Wurm unterzujubeln. Und auch wenn nicht, wäre es nicht schön wenn jeder einfach so Mails verschicken kann, evt. sogar noch mit frei wählbarem Addressaten.

      --
      Henryk Plötz
      Grüße aus Berlin

      1. Hi!
        Danke für den Tipp, werde ich machen, wobei man um diese zu Mißbrauchen ja wissen müßte, wo die Datei genau liegt, wie diese heißt und wie die Variable heißt, das steht ja alles nur im PHP-Code, den normalerweise kein normal-sterblicher lesen können sollte. Aber trotzdem bin ich natürlich für jeden Tip in dieser Richtung sehr dankbar, denn es ist und bleibt eine Sicherheitslücke.

        Gruß
        Andreas

    2. Hi Stefan!
      DANKE!!!!!!!!!!!!!!!
      Das wars, meine Güte, manchmal bin ich einfach zu blind!

      Danke nochmal, euch allen!

      Gruß
      Andreas

  2. Hallo Andreas,

    mail("akorthaus@web.de", "$subject", "$message", "From: Absender\nReply-To: akorthaus@web.de");

    $subject und $message sind bereits Zeichenkettenvariablen, nimm also die Anfuehrungszeichen heraus.

    MfG, Thomas

  3. Hallo!

    Tach!

    <?php

    $Variable = "Wert";

    $subject = "Bestätigung";

    /* message */
    $message. = "Hallo!\n";
    $message. = "Vielen Dank für Ihre Bestellung!\n\n";
    $message. = "$Wert";

    mail("akorthaus@web.de", "$subject", "$message", "From: Absender\nReply-To: akorthaus@web.de");
    ?>

    Es kommt immer ein "parse Error" in Zeile 8, da wo das erste mal $massage. steht.

    Der Punkt dient ja zum Anhängen von etwas an einen String. Du hängst also "Hallo!\n" an <irgendwas> drann. <irgendwas> ist nämlich genau das, was da drin steht, wenn man vorher noch nichts anderes darein gepackt hat...

    Also nimm mal den Punkt in der ersten Zeile raus und lass Ihn bei den nachfolgenden Zeilen stehen. Das sollte es dann gewesen sein...

    bye
    ich

    1. Dann kommt der Fehler in der nächsten Zeile!

      1. Dann kommt der Fehler in der nächsten Zeile!

        Sorry hatte das Leerzeichen bei ". =" übersehen. Es muß also ".=" sein. Aber das steht hier ja jetzt schon...

        bye
        ich