weiterleiten...?
Sandmann
- php
Hi
Ich habe einen GAAANZ simplen Formmailer.... der sieht so aus:
<?PHP
if($name=="" || $email==""|| $betreff==""|| $message=="") {
echo ("Bitte füllen Sie alle Felder aus");
} else {
echo "Vielen Dank, ihre Anfrage wird so bald wie möglich bearbeitet.<p>";
mail("webmaster@ahrweiler-treff.de", "ahrweiler-treff.de formmailer", "Name: $name\nEmail: $email\nLink: $link\nBetreff: $betreff\nRubrik: $rubrik\nMessage: $message\n",
"From: $nick <$email>");
echo "Folgende Daten wurden versendet:<br>";
echo "<b>Name:</b> $name<br>\n";
echo "<b>E-Mail:</b> $email<br>\n";
echo "<b>Link:</b> $link<br>\n";
echo "<b>Rubrik::</b> $rubrik<br>\n";
echo "<b>Nachricht:</b> $message\n";
}
?>
Das Problem ist, das er danach eine weisse seite mit en ensprechenden Var's ausgibt also habe ich ihn so modifiziert:
<?PHP
if($name=="" || $email==""|| $betreff==""|| $message=="") {
echo ("Bitte füllen Sie alle Felder aus");
} else {
mail("webmaster@ahrweiler-treff.de", "ahrweiler-treff.de formmailer", "Name: $name\nEmail: $email\nLink: $link\nBetreff: $betreff\nRubrik: $rubrik\nMessage: $message\n",
"From: $nick <$email>");
echo ("<meta http-equiv="refresh" content="5"; URL="index.php?mitte=form&rechts=links&name=$name&email=$email&links=$link&rubrik=$rubrik&message=$message">";
}
?>
jetzt kommt aber der fehler:
Parse error: parse error, unexpected ';' in /www/htdocs/v032034/formmailer.php on line 8
jemand ne Idee?!
echo ("<meta http-equiv="refresh" content="5"; URL="index.php?mitte=form&rechts=links&name=$name&email=$email&links=$link&rubrik=$rubrik&message=$message">";
}
Das Klämmerchen von "echo(" geht nicht wieder zu. :-)
Das Klämmerchen von "echo(" geht nicht wieder zu. :-)
ARGH wie doof! danke... das sind so fehler die man dann auch nach 1000 nachgucken nicht findet
aber es geht immernoch nicht
und zwar:
Er lädt die datei formailer.php wieder und bingt dann :"Bitte füllen Sie alle Felder aus" also er lädt sich selber wieder neu... warum?!
er müsste doch die Index laden
greetz
Sandmann
aber es geht immernoch nicht
In Deinem echo-statement ist noch immer der Wurm, daher am besten genau so:
echo '<meta http-equiv="refresh" content="5; URL=./index.php?mitte=form&rechts=links&name=',$name,'&email=',$email,'&links=',$link,'&rubrik=',$rubrik,'&message=',$message,'">';
P.S.: Ja, sowohl die Beistriche als auch & ist gewollt und korrekt.
Danke
*fast knutsch*
was würde ich ohne das forum hier machen :)
Hallo.
P.S.: Ja, sowohl die Beistriche als auch & ist gewollt und korrekt.
Aber die Kommas müssten Punkte sein, oder?
Und wenn wirs ganz genau nehmen, dann sollten Werte aus $_POST genommen werden.
echo "<meta http-equiv="refresh" content="5; URL=index.php?mitte=form&rechts=links&name=".$_POST['name']."&email=".$_POST['email']."&links=".$_POST['link']."&rubrik=".$_POST['rubrik']."&message=".$_POST['message']."">";
Grüße aus Würzburg
Julian
Aber die Kommas müssten Punkte sein, oder?
Nein, müssen sie nicht, daher auch mein ausdrücklicher Hinweis.
echo ist ein language construct, das als Argument eine durch Beistriche getrennte Liste von Strings akzeptiert und deren Elemente "ohne nachzudenken" ausgibt. Wird der gewohnte concatenation operator "." verwendet, werden im Speicher unnötigerweise die Teilstings sukzessiv "zusammengepickt", was (ein ganzkleinwenig aber doch) Speicherplatz und Zeit kostet.
Und wenn wirs ganz genau nehmen, dann sollten Werte aus $_POST genommen werden.
Prinzipiell hast Du natürlich recht, daß $_GET und $_POST vorzuziehen bzw. bei register_globals=off zwingend erforderlich sind. Da aber aus der Fragestellung nicht hervorgeht, mit welcher method das Formular abgeschickt wird, habe ich die Variablen sicherheitshalber einfach übernommen. Schlimmstenfalls ist $_POST sogar leer, wenn method="get" verwendet wird, was nur zu weiterer Verwirrung führen würde.
Hi.
Aber die Kommas müssten Punkte sein, oder?
Nein, müssen sie nicht, daher auch mein ausdrücklicher Hinweis.
Ups, ok *zurüchnehm*. Wieder mal was gelernt. Hab sowas irgendwie bisher noch nie gesehen gehabt (und folglich selbst immer mit Punkt zusammengebastelt).
Danke für die Erklärung.
Grüße aus Würzburg
Julian
Wieso nutzt Du den Meta Tag für die Weiterleitung, es werden wohl die meisten verstehen, aber Du kannst die Weiterleitung auch mit PHP realisieren.
Wenn Du das Formular z.B. an sich selbst verschickst und beim zweitenmal dann die $_POST prüfst und dann über header(Location...) die neue Seite auslieferst, schau dir mal im PHP manual header() an, da ist auch ne beschreibung einer Weiterleitung. Wird auch oft bei Logins benutzt.
Mike