Rex: Antwort nach Mailversand geht nicht

Hi,

ich möchte über php eine Mail versenden und nach getaner Arbeit noch nen Satz ausgeben.
Das Script aber will immer auf index.php, obwohl das script mail.php heißt...

---------schnipp------------------------------

if($send == "yes")
{
mail("$empfanger","$betreff","$nachricht","FROM:$absender");
echo ("Ihre Mail wurde verschickt");
}
else
{
echo "<form action="$PHP_SELF?send=yes" method="post">";

-------------schnapp-----------------------

Woran liegt daß?
Danke, Rex

  1. Hallo!

    Ist dein Beispielcode jetzt aus mail.php?

    if($send == "yes")
    {
    mail("$empfanger","$betreff","$nachricht","FROM:$absender");
    echo ("Ihre Mail wurde verschickt");
    }

    Das bestätigt nicht den Versand einer Mail. Hier kann auch was schiefgehen und es wird trotzdem ausgegeben, daß die Mail verschickt wurde. Es müßte heißen:

    if (mail()) {
        echo "Bingo!";
    } else {
        echo "Problem!";
    }

    echo "<form action="$PHP_SELF?send=yes" method="post">";

    Das sieht nach register_globals=on aus. Nicht gut!

    Konkretere Hilfe kann ich dir vielleicht bieten, wenn du erklärt hast, wie index.php und mail.php zusammenhängen.

    Gruß

    Matthias

    --
    ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
    http://www.makaio.de/quotations
    1. Hi,

      danke erstmal für die Antworten.

      Sorry! Das mit dem Umleiten auf die index.php habe ich selber verbockt. Ganz weit oben habe ich eine Abfrage, die je nach Bedingung auf die Index weiterleitet ...

      Aber: Das mit der Antwortseite nach Deinem Prinzip läuft nicht.

      if (mail()) {
      echo ("Ihre Mail wurde verschickt");
      } else {
          echo "Problem mit dem Mailversand!";
      }

      Ich erhalte als Antwort, das es Probleme gäbe, obwohl die Mail versendet wird.

      Für globals=on kann ich nicht, liegt an Schlund...

      Grüße

      Rex

      1. Aber: Das mit der Antwortseite nach Deinem Prinzip läuft nicht.

        if (mail()) {
        echo ("Ihre Mail wurde verschickt");
        } else {
            echo "Problem mit dem Mailversand!";
        }

        Oops, sorry, ich stand auf dem Schlauch, natürlich funtzt das...

        Danke

        Rex

      2. Hi Rex,

        Für globals=on kann ich nicht, liegt an Schlund...

        deswegen kannst Du aber trotzdem die lange Bezeichnung nehmen, dass ist auch aus Kompatibilitätsgründen besser.
        also z.B.: statt PHP_SELF -> $_SERVER["PHP_SELF"]

        ciao
        romy

        1. Hallo!

          Hätte ich jetzt auch so gesagt. Stell dir nur mal vor Schlund würde auf einmal umstellen oder du ziehst zu einem "braven" Hoster um ;-)

          Gruß

          Matthias

          --
          ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
          http://www.makaio.de/quotations
  2. Hi Rex,

    Das Script aber will immer auf index.php, obwohl das script mail.php heißt...
    echo "<form action="$PHP_SELF?send=yes" method="post">";

    vermutlich, weil in $PHP_SELF index.php steht bzw. vermute ich eher, weil dort gar nichts drinsteht, guck doch mal in den Quellcode wie der Link überhaupt aussieht.

    Desweiteren wäre es sinnvoll den String korrekt zusammenzusetzen
    echo "<form action="{$PHP_SELF}?send=yes" method="post">";

    • die Klammern zeigen, dass dort eine Variable steht

    oder
    echo "<form action=".$PHP_SELF."?send=yes" method="post">";

    • durch die Punkte setzt du den String zusammen

    Ausserdem weiss ich nicht ob in $PHP_SELF was drinsteht, da dies von deiner Konfiguration der php.ini abhängt.
    versuchs mal mit $_SERVER["PHP_SELF"]

    ciao
    romy