Forum: PC-Programmierung PHP-Formular am EMail übertragen


von Relchen (Gast)


Lesenswert?

Hallo zusammen,
ich habe Probleme bei der Verwirklichung meines Formulars. Ich habe mich 
schon stunndenlang durch Foren und Tutorials gewühlt, aber die 
letztendliche Lösung hab ich noch nicht gefunden. Vielleicht kann mir 
hier jemand einen Tip geben?
Das Formuar soll ausgefüllt werden und dann an eine E-Mailadresse 
gesendet werden. Die Mail wird auch verschickt, aber ich schaffe es noch 
nicht, dass alle Ihnalte angezeigt werden. So viel ich verstanden hab, 
muss ich das mit additional headers machen, aber ich hab nicht 
verstanden WO und WIE ich die einbauen muss, also an welcher Stelle und 
in welcher Form. Ich habe das Manual gelesen aber es klappt trotzdem 
nicht. Vielleicht kann mir jemand, dass an einem Beispiel in meinen 
PHP-Code einfügen???

Im Vorraus schon mal danke für Eure Hilfe!
Relchen


Hier der php-Code:
1
<?PHP
2
3
mail("aurelia_wolters@yahoo.de", "Nachricht von $_POST[Nachname]", $_POST[Anfrage], "From: " . $_POST[emailadresse] );
4
?>

und hier der html-Code:
1
<p> Gerne können Sie auch das folgende Kontaktformular verwenden: </p> <br/>
2
 <form method="post" action="formular.php">
3
   <fieldset>
4
      <legend> persönliche Daten </legend>
5
        <p> <label for="vorname"> Vorname: </label> <br/> <input id = "vorname" type="text" name="Vorname" size="25"     /> </p>
6
        
7
        <p> <label for="Nachname"> Nachname: </label> <br/> <input id = "nachname" type="text" name="Nachname" size="25"     /> </p>
8
        <p> <label for="strasse"> Straße: </label> <br/> <input id = "strasse" type="text" name="Strasse" size="25"     /> </p>
9
        <p> <label for="postleitzahl"> Postleitzahl: </label> <br/> <input id = "postleitzahl" type="text" name="Postleitzahl" size="5"     /> </p>
10
        
11
        <p> <label for="ort"> Ort: </label>
12
        <br/> <input id = "ort" type="text" name="Ort" size="25"     /> </p>
13
        
14
        <p> <label for="telefon"> Telefon: </label> <br/> <input id = "telefon" type="text" name="Telefon" size="15"     /> </p>
15
        <p> <label for="email"> E-Mailadresse: </label> <br/> <input id = "emailadresse" type="text" name="E-Mailadresse:" size="30"     /> </p>
16
        
17
      
18
      <p> <label for="anfrage"> Ihre Anfrage: </label> <br/> <textarea id="anfrage" name="Anfrage" cols="30" rows="5"> Anfrage </textarea> </p>
19
      
20
      <p> <input type="submit" value="Formular absenden" /> </p>
21
      
22
</fieldset>  
23
</form>

von Chris R. (hownottobeseen)


Lesenswert?

Hi,

hast du display_errors aktiviert?
Vermutlich nicht, da dir PHP sonst schon gesagt hätte, was falsch ist ;)

dir fehlen zum einen Anführungszeichen, zum anderen solltest du auch die 
anderen Eingabefelder mitsenden:
1
$msg = "Hallo Relchen,\n".
2
"Hier ist eine Nachricht von ".$_POST["Vorname"]." ".$_POST["Nachname"].":\n".
3
"...";
4
5
mail("aurelia_wolters@yahoo.de", "Nachricht von ". $_POST["Nachname"], $msg, "From: " . $_POST["emailadresse"] );

Siehe auch: http://www.php.net/manual/en/function.mail.php

von Relchen (Gast)


Lesenswert?

Danke für den Tip. Leider funktioniert es immernoch nicht fehlerfrei.

Die EMail kommt an und im Betreff steht auch "Nachtricht von XXX" aber 
die E-Mail ist leer.
Wenn ich den Code so verwende müsste doch in der E-Mail der Text stehen:
"Hallo Relcen,
hier ist eine Nachricht von YYY XXX.

Wo liegt der Fehler?
1
<?PHP
2
$msg = "Hallo Relchen,\n".
3
"Hier ist eine Nachricht von ".$_POST["Vorname"]." ".$_POST["Nachname"].":\n".
4
5
6
mail("xxxxx_wwwww@yahoo.de", "Nachricht von ". $_POST["Nachname"], $msg, "From: " . $_POST["emailadresse"] );
7
?>

Wenn ich weitere Inhalte in der E-Mail angezeigt bekommen will, muss ich 
dann schreiben:
1
<?PHP
2
$msg = "Hallo Relchen,\n".
3
"Hier ist eine Nachricht von ".$_POST["Vorname"]." ".$_POST["Nachname"].":\n".
4
".$_POST["Strasse"]."
5
".$_POST["Postleitzahl"]."

Muss da noch ein Semikolon irgendwo hin??

von Sven P. (Gast)


Lesenswert?

[ ] Irgendeine Form von Handbuch zu PHP gelesen.
[x] Trial & Error.

Sei versichert, Trial & Error geht meistens in die Hose, vorallem bei 
einer Programmiersprache, die derart kaputt ist, wie PHP.

Ja, da fehlt ein Semikolon. Da fehlt auch jegliche Form von Überprüfung 
der Eingaben.

von hui buh (Gast)


Lesenswert?

Ich hatte mal ein Heft aus dem Knowware-verlag für 4€. Einstig in PHP 
oder so ähnlich. Da hat er beschrieben, wie man damit eine Seite 
aufziehen kann, Formulare einbindet, auswertet,.... Für 4€ ok, wenn man 
zum ersten Mal damit in Kontakt kommt, da alles auf Beispielen basiert.

von Relchen (Gast)


Lesenswert?

So jetzt funktionierts. Danke nochmal an Chris :-)

Hier noch die "Lösung", falls es mal wieder jemand braucht:
1
<?PHP
2
3
$text = $_POST[Vorname]."\n".$_POST[Nachname]."\n".$_POST[Strasse]."\n".$_POST[Postleitzahl]."\n".$_POST[Ort]."\n".$_POST[Telefon]."\n".$_POST[E-Mailadresse]."\n".$_POST[Anfrage];
4
5
mail("xxxxx_yyyyyyy@yahoo.de","Email per Formular",$text);
6
7
?>

von Sven P. (Gast)


Lesenswert?

Relchen schrieb:
> Hier noch die "Lösung", falls es mal wieder jemand braucht:
> ...

Es fehlen wieder Anführungszeichen um die Array-Indizes. Bei 
$_POST[E-Mailadresse] wird das unter Umständen in die Hose gehen.
Empfehlenswert wäre auch ein Blick auf isset(), um die Formulareingaben 
zu prüfen. Anschließend kommt eine Maskierung auch ganz gut, damit nicht 
jeder willkürlich Zeugs einbetten kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.