php Kontaktformular für mehrere Empfänger
Benni
- php
Hi!
Ich hab untenstehendes Script.
Aber 1. funktioniert das (noch) nicht, wenn ich was eingebe und abschicke, kommt die Fehlermeldung, dass ich kenen Namen eingegeben habe, oder keine E-Mailadresse, oder auch nicts ausgewählt habe.
Außerdem fehlt mir noch ne Abfrage, dass wenn ich an den Vorstand schicken will, auch dorthingeschickt wird.
Ich kann hier nur eine Empfänger Adresse eingeben...
Es wäre gut, wenn ich den Empfäger aus ner Auswahl Box auswählen kann.
Es osllten 4 Empfänger zu Auswahl stehen.
Ne überprüfung, ob was eingegeben wurde wäre gut, und auch, ob die Mail Adresse korrekt ist.
Ich hab so n Script, aber irgendwie funktioniert das nicht wirklich.
Das wäre der html Code:
<h1>Kontaktformular</h1>
<form action="anfrage.php" method="post">
<p>Name:<br>
<input name="Name" type="text" size="30" maxlength="80"><br>
Email:<br><input name="Email" type="text" size="30" maxlength="80"><br><br>
Hier können Sie beliebige Optionen einsetzen. Auch mehr als 3 sind möglich.<br>
<select name="Option" size=1>
<option value="Leer"> bitte auswählen...
<option value="option1"> 1. Vorstand
<option value="option2"> Schatzmeister
<option value="option3"> Schriftführer
<option value="option4"> Webmaster
</select>
</p>
<p>Bitte hier den Text für Ihre Anfrage schreiben:<br>
<textarea name="Text" cols="50" rows="7"></textarea>
</p>
<input type="submit" name="Senden" value="Abschicken">
<input type="reset" name="Löschen" value="Text Löschen">
</form>
</body>
</html>
Das wäre die zugehörige anfrage.php:
<html>
<head>
<title>Kontaktformular</title>
</head>
<body bgcolor="#FFFFFF">
<div align="center">
<br><br>
<?
// Übergeben der Daten aus dem Formular
$name = $HTTP_POST_VARS["Name"];
$text = $HTTP_POST_VARS["Text"];
$option = $HTTP_POST_VARS["Option"];
$absemail = $HTTP_POST_VARS["Email"];
// Überprüfung ob etwas eingetragen wurde
// Wenn die Option nicht zwingend angegeben werden soll
// && $option != "Leer" aus der nächsten Zeile entfernen
if ($name !="" && $text !="")
{
// Überprüfung ob eine Emailähnliche Angabe gemacht wurde
// Überprüfung auf @ und .com oder ähnliches
if ($absemail!="" && ereg("^([a-zA-Z0-9.\_-]+)@([a-zA-Z0-9.-]+.[A-Za-z][A-Za-z][A-Za-z]+)$", $absemail))
{
// Zuweisung der Option die ausgewählt wurde, falls mehr als 3 verwendet werden sollen,
// einfach noch eine elseif Abfrage dazuschreiben
// elseif ($option == "option4"){ $option = "Möglichkeit4";} usw.
// Der Text Möglichkeit.. zwischen den "" kann beliebig verändert werden.
if ($option == option2)
{
$option = "Möglichkeit2";
}
elseif ($option == "option3")
{
$option = "Möglichkeit3";
}
// Hiervor die zusätzliche elseif Abfrage einfügen
elseif
{$option = "Möglichkeit4";}
// Überschrift, Option und Text der Email Nachricht
$message = "Nachricht fuer $email von $name, aus Kontaktformular.
";
$message.= $option."
".$text."
".$name;
// Betreff der Emailnachricht
$subject = "Anfrage wegen Thema vom ";
// Hier die Empfängeremailadresse eintragen
$email = "16v@bossmail.de";
//Senden der Email und Meldung das alles OK ist
// Die Texte hier in den ECHO Angaben können nach Belieben geändert werden.
// HTML wird unterstützt. Bitte beachte vor " einen Backslash zu setzen. Also " schreiben.
mail($email,$subject,$message,"From: $absemail");
echo "Vielen Dank für Deine Anfrage! Wir werden uns schnellstmöglich melden.<br>";
echo "<a href="javascript:history.go(-1)">Hier gehts zurück zu der Seite vor Deinem Eintrag.</a><br>";
}
// Folgende Meldung kommt
// falls keine korrekte Schreibweise bei der Angabe der Emailadresse da ist
else {
echo "Du hast keine korrekte Emailadresse eingegeben. Bitte überprüfe Deine Eingabe.<br>";
echo "<a href="javascript:history.back()">Hier noch einmal versuchen.</a>";
}
}
// Wenn ein Feld nicht ausgefüllt wurde oder keine Option ausgewählt wurde
// kommt folgende Meldung
else {
echo "Du hast keinen Namen oder keinen Text eingegeben. Vieleicht hast Du auch keine Option ausgewählt. ";
echo "Überprüfe bitte Deine Eingabe!<br>";
echo "<a href="javascript:history.back()">Hier noch einmal versuchen.</a>";
}
?>
</div>
</body>
</html>
Und was passiert seht ihr hier:
ksv-luetzelburg.pytalhost.de/kontakt/anfrage.html
Ich dank Euch
Benni
Hi!
Und was passiert seht ihr hier:
ksv-luetzelburg.pytalhost.de/kontakt/anfrage.html
Da sehe ich ein Formular.
Ich kann es aber nicht testweise abschicken, weil ich dazu erst alle Felder ausfüllen müßte und da habe ich keine Lust zu.
Poste einfach deine Fehlermeldung und die entsprechende Codezeile.
Schöner Gruß,
rob
Hi!
Keine Ahnung!
Steht ja schon alles beschrieben!
Code, und die Fehlermeldung.
Wenn ich es abschicke, kommt dass ich keinen Namen eingegeben habe, oder keine dresse, vielleicht auch keinen Text, oder ich habe keine Auswahl getroffen.
OBWOHL überall was drinnesteht....
Und ich brauch eben noch ne Abfrage, dass wenn ich den Vorstand erreichen will, auch die entsprechende E-Mail Adresse gewählt wird, und wenn ich den Webmaster erreichen will, soll auch da die Richtige Adresse hergenommen werden
MfG
Benni
Hi!
Und was passiert seht ihr hier:
ksv-luetzelburg.pytalhost.de/kontakt/anfrage.html
Da sehe ich ein Formular.
Ich kann es aber nicht testweise abschicken, weil ich dazu erst alle Felder ausfüllen müßte und da habe ich keine Lust zu.
Poste einfach deine Fehlermeldung und die entsprechende Codezeile.Schöner Gruß,
rob
Hi!
Code, und die Fehlermeldung.
Es kommt also keine PHP-Fehlermeldung?
Nur deine Ausgabe?
Wenn ich es abschicke, kommt dass ich keinen Namen eingegeben habe, oder keine dresse, vielleicht auch keinen Text, oder ich habe keine Auswahl getroffen.
OBWOHL überall was drinnesteht....
Wirklich sicher, daß "überall was drinnesteht"?
Was ist denn in $HTTP_POST_VARS enthalten?
Das solltest du dir mal mit print_r() oder var_dump() anschauen.
Ich könnte mir gut vorstellen, daß es $HTTP_POST_VARS gar nicht gibt.
Das ist abhängig von der Serverkonfiguration.
In jedem Fall ist $HTTP_POST_VARS aber veraltet und wird nur noch auf einigen Servern aus Gründen der Rückwärtskompatibilität unterstützt.
In nächster PHP-Version wird es nicht mehr enthalten sein.
Nutze $_POST stattdessen.
Ich frage mich außerdem, warum du nicht selbst in der Lage bist, deinen Fehler zu finden.
Das kann doch nicht so schwer sein.
Wenn das nicht funktioniert, dann mußt du eben schauen, bis wohin dein Script noch korrekt abgearbeitet wird.
Und wenn die Bedingung einer if-Abfrage unerwarteter Weise erfüllt wird, dann mußt du halt rausfinden, warum das so ist.
Dazu läßt du dir einfach den Inhalt deiner Variablen ausgeben.
// Überprüfung ob etwas eingetragen wurde
if ($name !="" && $text !="")
Schau dir doch mal die Fuktionen [isset()](http://www.php.net/manual/de/function.isset.php) und [empty()](http://www.php.net/manual/de/function.empty.php) an.
> `$name = $HTTP_POST_VARS["Name"];`{:.language-php}
Warum das?
Wozu den Wert einer Variablen in einer anderen speichern, anstatt diese Variable direkt einzusetzen?
Das ist doch nur Speicherverschwendung.
> `if ($absemail!="" && ereg("^([a-zA-Z0-9.\_-]+)@([a-zA-Z0-9.-]+.[A-Za-z][A-Za-z][A-Za-z]+)$", $absemail))`{:.language-php}
Du solltest nicht mit den POSIX-Funktionen arbeiten, sondern die PCRE-Funktionen einsetzen. Diese arbeiten bei weitem schneller.
Nutze [preg_match()](http://www.php.net/manual/de/function.preg-match.php) statt ereg().
> Und ich brauch eben noch ne Abfrage, dass wenn ich den Vorstand erreichen will, auch die entsprechende E-Mail Adresse gewählt wird, und wenn ich den Webmaster erreichen will, soll auch da die Richtige Adresse hergenommen werden
Was ist daran denn so schwer? Wo hängst du?
Da brauchst du doch nur eine einfache if-Abfrage, welches Feld deiner Select-Box ausgewählt wurde.
Schöner Gruß,
rob
Hi!
O.K.
Ich gestehe:Ich habe keine Ahnung, was das ist, und wie das funktioniert.
Das hab ich bei Google gefunden, als "Kontaktformular für mehrere Empfänger"
Aber: wie du sicherlich erkennst, ist da nur einer da...
O.K. Wenn ich mir das so ansehe, wird das ne Abfrage ähne: If option=option1 then EMail=blablabla
elseif option = o2 then Email=blablabla, und das 4 mal.
Aber was du da mit $post ind ereg von mir willst, hab ich keine Ahnung von.
Ich hab nie mit php gearbeitet.
Kann n bissl was mit html, und schul mich grad in flash, deswegen is momentan ken interesse an php vorhanden.
MfG
Benni