Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Formmailer
Frage
Hallo,
ich bin grade dabei eine HP zu machen.
Ich hänge seit 2 Tagen am Formmailer.
Folgenden Formmailer benutze ich:
[code]
<?php
$admin = "max@muster.de";
$subject = "Anfrage";
$message = "Nachricht fuer $admin von $Email:\n\n";
while(list($name,$value)=each($HTTP_POST_VARS))
{
$message.="$name: $value\n\n";
}
mail($admin,$subject,$message,"From: $Email");
?>
[/code]
Ich habe 2 html dateien, die ich noch in dieses Script einbauen möchte. Einmal danke.html und einmal danke_fehler.html.
Wenn der Benutzer $Vorname, $Nachname, $Telefon, $Email und $Text nicht eingibt, dann danke_fehler.html ansonsten danke.html.
Ich bin euch im voraus dankbar. Ich weiß, es gibt auch schon fertige Formmailer, die ich aber nicht benutzen will.
Antwort 1 von Nessus
Hi,
ist recht einfach:
if (empty ($Text)) {
header(´Location:http://www.Domain/Pfad zur Datei´);
exit; }
HTH
Nessus
ist recht einfach:
if (empty ($Text)) {
header(´Location:http://www.Domain/Pfad zur Datei´);
exit; }
HTH
Nessus
Antwort 2 von cuezuem
Danke für die Schnelle Hilfe.
So sieht es aus.
Funktioniert einwandfrei.
Eine Frage habe ich noch.
Wenn der Benutzer ein Fehler macht, indem er die Pflichtfelder nicht ausfüllt, soll der Formmailer die E-mail nicht abschicken. Wie kann ich das machen?
So sieht es aus.
<?php
$admin = "ma@muster.de";
$subject = "Anfrage";
$message = "Nachricht fuer $admin von $Email:\n\n";
while(list($name,$value)=each($HTTP_POST_VARS))
{
$message.="$name: $value\n\n";
}
mail($admin,$subject,$message,"From: $Email");
if(empty($Vorname) || empty($Nachname) || empty($Telefon) || empty($Email) || empty($Text))
{
header("Location: danke_fehler.html");
}
else
{
header("Location: danke.html");
}
?>
Funktioniert einwandfrei.
Eine Frage habe ich noch.
Wenn der Benutzer ein Fehler macht, indem er die Pflichtfelder nicht ausfüllt, soll der Formmailer die E-mail nicht abschicken. Wie kann ich das machen?
Antwort 3 von Nessus
Hi,
Du bist beim logischen Ablauf etwas durcheinander geraten, Du versendest oben die Mail, bevor die Abfrage auf gültigkeit der Variablen kommt.
Desweiteren hats du den "exit();" vergessen.
So sollte es funktionieren.
Du bist beim logischen Ablauf etwas durcheinander geraten, Du versendest oben die Mail, bevor die Abfrage auf gültigkeit der Variablen kommt.
Desweiteren hats du den "exit();" vergessen.
So sollte es funktionieren.
<?php
$admin = "ma@muster.de";
$subject = "Anfrage";
$message = "Nachricht fuer $admin von $Email:\n\n";
if(empty($Vorname) || empty($Nachname) ||empty($Telefon) || empty($Email) || empty($Text))
{
header("Location: danke_fehler.html");
exit();
}
else
{
header("Location: danke.html");
}
while(list($name,$value)=each($HTTP_POST_VARS))
{
$message.="$name: $value\n\n";
}
mail($admin,$subject,$message,"From: $Email");
?>

