Antwort nach Mailversand geht nicht
Rex
- php
0 Matthias Jütte0 romy
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
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
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
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
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
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
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">";
oder
echo "<form action=".$PHP_SELF."?send=yes" method="post">";
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