E-Mail senden - HTML -PHP

Hallo,

ich habe eine Website (noch offline), welche ein Kontaktformular beinhaltet, dass beim Buttom-Klick „senden“ die E-Mail mit den Werten aus den Feldern an eine E-Mail-Adresse senden soll. Nun ist es allerdings so, das beim betätigen des Buttons nichts passiert.

Hier mal ein Ausschnitt aus der .html-Datei und .php-Datei:

HTML:

Name:

Nachricht:

PHP:

<?PHP echo "Sie haben folgende Angaben gemacht:
"; echo "Ihr Name: $\_POST[NameSenderFormular] "; echo "Ihre Nachricht $\_POST[NachrichtSenderFormular]"; mail("[[email protected]](mailto:[email protected])","Kontaktformular","NachrichtSenderFormular"); ?\> P.S. Wie wertet man Chechboxen aus? Vielen Dank, Gruß KLEINMEI

http://aktuell.de.selfhtml.org/artikel/php/form-mail/

Hallo, schau dir mal das Beispiel an.

Beste Grüße

Friedrich Hofmann

Hallo KLEINMEI !

Im Prinzip bin ich kein Experte für php-Formulare.
Und im Prinzip gibts für solche Problemchen Googel
mit massenhafen Fundstellen.

Trotzdem kann ich Dir helfen, weil ich rein zufällig
gerade daran arbeite.
Aber heute Abend um 23:30 Uhr nicht mehr.
Morgen am Freitag, 5.4., bekommst Du meine Hilfe.

Bis dann!
Wolfgang Schmitt

Hallo kleinmei,

Was meinst du denn mit „nichts passiert“ beim senden Button drücken?

Läd nicht mal der Browser?
Heißt deine php Datei auch so wie im Form tag der Wert von action =…?

So auf Anhieb fällt mir nur auf das du gar keine Werte an die mal Funktion übergibst sondern nur Hardcoded strings.

Werde dein Script mal zu Hause ausprobieren und Bescheid geben, wenn ich noch mehr Fehler finde.

Lg Frank

Hallo,

offensichtlich bist du totaler Laie. Deshalb empfehle ich vorab schonmal, ein Buch zum Thema zu lesen - oder zwei. Ich kann dir hier jetzt nicht alles zum Thema Webstandards, Sicherheit und so weiter erklären, das würde leider zu weit führen.
Deshalb nur die Kurzversion:

  • Die php-Datei muss am richtigen Ort liegen. Tut Sie das nicht, landet eine Fehlermeldung im ErrorLog, also immer beim Entwickeln auch dieses überwachen, das kann sehr helfen!

  • Es muss <?php sein, nicht <?PHP

$\_POST[NameSenderFormular] gibt es nicht, aber 

    $\_POST['NameSenderFormular']


- das Skript sollte eine ganze Webseite ausgeben, also auch , usw.

- Du versuchst aktuell nur, die Formulardaten auszugeben, sie landen aber natürlich nicht in der Mail. Dafür müsstest du sie in einer Variablen speichern, z.B. so:


    
    $mailtext = "Es wurde eine Nachricht über das Kontaktformular gesendet!\r\n";
    $mailtext .= "Name: ".$\_POST['NameSenderFormular']."\r\n";
    $mailtext .= "Nachricht:\r\n" . $\_POST['NachrichtSenderFormular'];
    mail("[email protected]","Kontaktformular", $mailtext);



- Checkboxen landen, wenn gesetzt, in einem Array. Auswerten geht so: 


    
    $checkboxgesetzt = isset($\_POST['checkboxname']);



- Bei mehreren Checkboxen als Gruppe sieht das anders aus. Eine beliebige Suchmaschine fördert da sehr umfangreiche Erklärungen zu Tage..

- Achtung! Über das Formular kann einfach alles gesendet werden! Oder auch nichts... Wundere dich also nicht über leere Mails oder Spammails oder gefährliche Mails.. 

Viel Glück beim weiteren Lernen!

Zuerst, ist die php-Funktion mail() sehr unsicher, wenn man nicht genau weiß was man tut. Auch RFC-Konforme Mails zu generieren ist verdammt schwer. Daher empfehle ich immer vorgefertigte Klassen wie
http://phpmailer.worxware.com/ oder http://swiftmailer.org/ damit kann man recht einfach Mails verschicken ohne als Spamschleuder missbraucht zu werden.
Was passiert denn nicht? Wird keine Mail versendet? Das ist auf lokalen Test- und Entwicklungssystem eigentlich normal, da man in der Regel keinen eigenen Mailserver hat.

Checkboxen wertet man genauso aus, wie alles andere. Allerdings wird beim name-Attribut [] angefügt. Und alle Checkboxen gleich benannt. So erhälst du später ein Array in dem $_POST mit der Bezeichnung der Checkboxen

http://aktuell.de.selfhtml.org/artikel/php/checkboxen/

Hallo,

ich habe eine Website (noch offline), welche ein
Kontaktformular beinhaltet, dass beim Buttom-Klick „senden“
die E-Mail mit den Werten aus den Feldern an eine
E-Mail-Adresse senden soll. Nun ist es allerdings so, das beim
betätigen des Buttons nichts passiert.

Hier mal ein Ausschnitt aus der .html-Datei und .php-Datei:

HTML:

Name:

Nachricht:

PHP:

<?PHP :echo "Sie haben folgende Angaben gemacht:
"; echo "Ihr Name: $\_POST[NameSenderFormular] "; echo "Ihre Nachricht $\_POST[NachrichtSenderFormular]"; mail("[[email protected]](mailto:[email protected])","Kontaktformular","NachrichtSenderFormular "); ?\> P.S. Wie wertet man Chechboxen aus? Vielen Dank, Gruß KLEINMEI

Hallo,

wenn Sie offline sind (vermute lokal), dann haben Sie keine Möglichkeiten Mails zu senden, da kein mailserver installiert ist.

Sonnst, versuchen Sie es so:

<?php if (!empty($_POST['NameSenderFormular']) && !empty($_POST['NachrichtSenderFormular']) {
if (true === mail("[[email protected]](mailto:[email protected])","Kontaktformular","NachrichtSenderFormular")) { echo "Sie haben folgende Angaben gemacht: "; echo "Ihr Name: $\_POST['NameSenderFormular'] "; echo "Ihre Nachricht $\_POST['NachrichtSenderFormular']"; } } ?\> Also erst checken ob das Form valid ist, denn die Email versandt ist, und dann infos zurückgeben. Checkboxes kriegt man wie ein array(). z.B. isset($\_POST['checkbox']) oder eine schleife foreach ($\_POST['checkbox'] as $cb) wenn multiple Gruß

Hallo KLEINMEI !

Wie gestern versprochen, heute meine Hilfe:

  1. Ein PHP-Skript läuft nie lokal auf Deinem PC.

Es wird immer serverseitig ausgeführt, bzw. interpretiert.
Du musst Dein Formular und das dazugehörige php-Skript auf
Deinen Webspace auf den Server Deines Providers
hochladen und dann testen.
Voraussetzung: Dein Server muss PHP-fähig sein.

Oder: Du hast auf Deinem PC lokal XAMPP (Apache)installiert.
Dann kann Dein PC auch als Server fungieren.

  1. Eine gute Vorlage für Formulare bietet grammiweb.de
    Der liefert einen Formulargenerator. Ist Shareware.
    Dazu benötigst Du zusätzlich mailopen.php.
    Googeln: mailopen.php

  2. Checkboxes und RadioButtons werden bei Grammiweb auch
    gezeigt.

Ich hoffe, ich konnte ein bisschen helfen.

Viel Erfolg !

Über Deine E-Mail kann ich vielleicht noch mehr helfen.

Meine ist: [email protected]

W. Schmitt

Ich weiß nicht, bei mir gehts.
Wenn ich absende

dann wird $_POST[„HideInTheLib“] den Wert „x“ haben.
Viel Spaß

Hallo KLEINMEI,

Du brauchst zwei verschiedene Dateien:
formularversenden1.php

Name:

Nachricht:

formularversenden2.php

<?PHP echo "Sie haben folgende Angaben gemacht:
"; echo "Ihr Name: $\_POST[NameSenderFormular] "; echo "Ihre Nachricht: $\_POST[NachrichtSenderFormular]"; mail("[[email protected]](mailto:[email protected])","Kontaktformular","NachrichtSenderFormular"); ?\> Wichtig: Dein virtueller Server kann keine E-Mails verschicken. Auf dem echtem Server sollte das "Problem" eigentlich nicht mehr auftreten (vgl. nachfolgenden Link: [http://www.php-einfach.de/php-tutorial/php-mail.php](http://www.php-einfach.de/php-tutorial/php-mail.php)) Für die Auswertung einer Checkboxen kannst Du z.B. verschiedene Namen vergeben: Kreuzen Sie die gewünschten Zutaten an: Salami Pilze Sardellen Etwas komplizierter ist das Anlegen eines Arrays: Datei pizza1.php: Pizzabelag nach Wahl! Kreuzen Sie die gewünschten Zutaten an: Salami Pilze Sardellen Datei pizza2.php: <?php $zutaten = $_POST['zutat'];
//Dadurch werden die Daten aus dem $\_POST-Array in das Array $zutaten übernommen! for ($i=0;$i{echo " $zutaten[$i]";} ?\> (vgl. auch: [http://aktuell.de.selfhtml.org/artikel/php/checkboxen/](http://aktuell.de.selfhtml.org/artikel/php/checkboxen/)) Viel Erfolg!

Schätze, Du hast keinen Mailserver installiert, der die Mailfunktion bedienen kann.

Gruß, remy