Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Tutorials und FAQ (https://www.gegen-bilderklau.net/board.php?boardid=45)
----- [PHP & MySQL] Formmailer mit PHP (https://www.gegen-bilderklau.net/thread.php?threadid=180546)


Geschrieben von White_Mustang am 18.06.2011 um 16:44:

  Formmailer mit PHP

Da ich jetzt schon öfter danach gefragt worden bin habe ich mir jetzt mal vorgenommen ein Formmailer-Tutorial online zu stellen. Ich bin nicht so gut im Erklären, also fragt ruhig, wenn ihr Fragen habt (:

Beachtet, dass ich das ganze jetzt als Kontaktformular darstelle, die Angaben können jeweils aber auch als Anmeldebogen, etc. verändert werden!

SCHRITT 1:
Zu aller erst erstellt ihr eine neue Datei in eurem Editor.
Ich benenne sie jetzt mal formular.html. Wichtig ist, das dies eine HTML Datei ist.

In dieser HTML schreibe ich dann folgendes:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<form action="action_formular.php" method="POST">

### Das "action_formular.php" muss an euren Namen angepasst werden, wie ihr die php-Datei benennt, also "action_NAME.php" ###

<table><tr><td><b>Name:</b></td><td><input type="text" name="name"></td></tr>
<tr><td><b>eMail-Adresse:</b></td><td><input type="text" name="email"></td></tr>
<tr><td><b>Betreff:</b></td><td><input type="text" name="betreff"></td></tr>
<tr><td><b>Homepage:</b></td><td><input type="text" name="homepage"></td></tr>
<tr><td><b>Nachricht:</b></td><td><textarea name="nachricht"></textarea></td></tr>

### Dies sind eure Textfelder. Also das, was ihr nachher auch auf eurer Homepage seht, wie Name, eMail-Adresse, Betreff des Kontakts etc. Wichtig sind die input-namen (name="TEXT") diese müssen später in der php-Datei angepasst werden.###

<tr><td><input type="submit" value="Absenden?"></td><td><input type="reset" value="Zurücksetzen?"></td></tr></table></form>

### Hiermit sind die Buttons "Absenden" und "Zurücksetzen" gemeint, die unter dem Formular sind! ###


Die Texte in den # sind nur Hilfen, sie sollten nachher aus der Datei entfernt werden.

Kleine Erklärung noch zu den input typen:
"text" definiert ein einfaches Textfeld
"password" definiert ein Passwort-Textfeld mit •
Dann gibt es noch "textarea" diese definiert ein Mehrzeiliges Textfeld.

SCHRITT 2:
Nachdem ihr die Datei komplett nach euren Wünschen angepasst habt, öffnet ihr eine neue Datei, die ich, passend zur HTML action_formular.php nenne. Wichtig ist hier, dass ihr die Datei genau so nennt, wie ihr es oben bei <form action="action_formular.php"> angegeben habt und es eine PHP Datei ist.

In dieser füge ich folgendes ein:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
<?php
  $name $_POST['name'];
  $email $_POST['email'];
  $betreff $_POST['betreff'];
  $homepage $_POST['homepage'];
  $nachricht $_POST['nachricht'];
  if ( ($name == "") OR ($email == "") OR ($nachricht == "") )

### Hier findet ihr die vorher angegebenen input Namen wieder. Hier ist es wichtig, dass hier sowohl hinter dem $ als auch in den ['NAME'] die gleichen Angaben stehen. Das if definiert die Angaben die gemacht werden MÜSSEN! ###

  {
    echo "Du hast nicht alle Felder ausgefüllt! Gehe <a href='javascript:back()'>zurück</a> und korrigiere dies!";
  }

### Das echo steht für den Hinweis, das nicht alle Pflichtfelder ausgefüllt worden sind! ###

  else
  {
    $text "Name: $name
E-Mail: $email
Homepage: $homepage
Nachricht: $nachricht";
    mail("EMAIL-ADRESSE",$betreff,$text,"From $name <$email>");
    echo "Deine e-Mail wurde erfolgreich abgeschickt.";
  }

### Im else definiert sich der Inhalt der eMail die ihr bekommt, also der Name des Absenders, die eMailadresse, Homepage, Betreff und Inhalt. Bei der mail müsst ihr die eMailadresse angeben, an die das Formular gesendet werden soll, also eure. ###

?>


Diese beiden Dateien nun speichern und in den selben Ordner per FTP uploaden. Es ist kein Problem den HTML-Teil auf eure Seite einzubauen, dazu fügt ihr diesen Teil einfach in euren BODY-Tag.



Geschrieben von Ichigo am 20.07.2011 um 22:26:

 

Danke smile

Tolles Tutorial



Geschrieben von White_Mustang am 20.07.2011 um 23:14:

 

Bitte, bitte, ich bin froh, wenn ich auch mal helfen kann xD



Geschrieben von Luca_G am 17.08.2011 um 14:43:

 

Kannst du mir auch erklären wie ich ein Auswahlfeld mache?

Also das man z.B. gefragt wird "wie viel möchtest du haben" und man zwischen 1,2,3,4 wählen kann?

wäre super! smile



Geschrieben von Nanni am 17.08.2011 um 14:50:

 

Ich kanns dir auch sagen ;D

code:
1:
2:
3:
<select name="feldname">
<option value="1">Auswahlmöglichkeit 1</option>
<option value="2">Auswahlmöglichkeit 2</option></select>



Geschrieben von Krissy* am 27.08.2011 um 14:42:

 

edit: hat sich erledigt, war nur weil's noch auf meinem pc war und nicht auf dem server hochgeladen



Geschrieben von Ales am 24.09.2011 um 12:23:

 

ich hab mal ne Frage
also so funktioniert es einwandfrei, aber irgendwie kommen keine e-mails an -.-
ich hab es jetzt so gelassen, weil ich es als Kontaktformular brauche, aber wo muss ich jetzt genau die E-mail, also meine, eintragen?
weil ich habs jetzt da eingetragen, wo groß E-mail adresse steht, aber irgendwie kommt nichts an o.O



Geschrieben von Oli am 24.09.2011 um 12:32:

 

Zitat:
Original von Ales
ich hab mal ne Frage
also so funktioniert es einwandfrei, aber irgendwie kommen keine e-mails an -.-
ich hab es jetzt so gelassen, weil ich es als Kontaktformular brauche, aber wo muss ich jetzt genau die E-mail, also meine, eintragen?
weil ich habs jetzt da eingetragen, wo groß E-mail adresse steht, aber irgendwie kommt nichts an o.O


Hi,

hast du bei
php:
1:
mail("EMAIL-ADRESSE",$betreff,$text,"From $name <$email>");

EMAIL-ADRESSE durch deine Mailadresse ersetzt? Augenzwinkern


LG



Geschrieben von Ales am 24.09.2011 um 12:47:

 

ja hab ich
darum irritiert es mich ja auch

ja hab ich

php:
1:
2:
3:
4:
5:
6:
7:
$text "Name: $name
E-Mail: $email
Homepage: $homepage
Nachricht: $nachricht";
    mail("Alexandragoder@web.de",$betreff,$text,"From $name <$email>");
    echo "Deine e-Mail wurde erfolgreich abgeschickt.";
  }



Geschrieben von Nanni am 24.09.2011 um 13:34:

 

Hast du nachgeschaut, ob die Mail im Spamordner gelandet ist?



Geschrieben von Ales am 24.09.2011 um 14:18:

 

ja, alles geguckt
ich probiers mal nochmal aus



Geschrieben von Javerheri am 08.11.2011 um 23:10:

 

Bei mir ist irgendwie was schief gelaufen großes Grinsen

so siehts fertig aus: das absenden ist am falschen Platz gelandet


und so mein code:


nochmal groß
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>


<form action="action_kontaktformular.php" method="post">
<table><tr><td><b>Name:</b></td><td><input type="text" name="name"></td></tr>
<table><tr><td><b>Telefon</b></td><td><input type="text" name="telefon"></td></tr>
<tr><td><b>eMail-Adresse:</b></td><td><input type="text" name="email"></td></tr>
<select name="Sie sind:">
<option value="1">Privatperson</option>
<option value="2">Züchter</option>
<option value="3">Verein</option></select>
<tr><td><b>Rasse:</b></td><td><input type="text" name="rasse"></td></tr>
<tr><td><b>Anzahl der Modelle:</b></td><td><input type="text" name="anzahl"></td></tr>
<tr><td><b>Alter des Tieres:</b></td><td><input type="text" name="alter"></td></tr>
<tr><td><b>Haben Sie noch Fragen?:</b></td><td><textarea name="fragen"></textarea></td></tr>
<input type="submit" value="Absenden?"></td><td><input type="reset" value="Zurücksetzen?"></td></tr></table></form>
<body>
</body>
</html>



Geschrieben von Nanni am 09.11.2011 um 00:50:

 

In Zeile 21 (in deinem Editor) fehlt der Beginn der Zeile und Spalte, in welcher der Button stehen sollte. Also ganz am Anfang der Zeile fehlt das <tr><td> Augenzwinkern



Geschrieben von Javerheri am 09.11.2011 um 21:13:

 

danke, dass hat schonmal geklappt smile

da ich beim coden immer nur "bahnhof umsteigen" denk, ist schon wieder was passiert großes Grinsen



Die Zeile für den Namen ist weg
und dadrunter sollte eigentlich eine Auswahlmöglichkeit sein (Züchter, Privatperson, Verein)
und ganz unten, kann man die Buttons wo "abschicken" und "zurücksenden" drauf steht dunkler machen und näher zusammenrücken?




Geschrieben von Nanni am 09.11.2011 um 23:33:

 

Beim <select> - Teil hast du die ganze Zeile vergessen. Also: Zeile beginnen (<tr>), Spalte beginnen (<td>), Spalte befüllen (Sie sind: ), Spalte beenden (</td>), zweite Spalte beginnen (<td>) und dann gehört hier das select hin. Nach dem </select> musst du natürlich auch die 2. Spalte schließen (</td>) und die gesamte Zeile abschließen (</tr>).

Bei dem <select name=""> soll der Name des Select-Feldes rein, nicht das, was in dem Tabellenfeld angezeigt werden soll Augenzwinkern

Die Absendebuttons näher zusammen... du kannst natürlich den Zurücksetzen-Button zentrieren bzw. nach rechts ausrichten - vor das <input...> dann <P align="center"> bzw. <P align="right"> (welcher Befehl was bewirkt, ist glaub ich eindeutig ;D)



Geschrieben von Javerheri am 12.11.2011 um 20:38:

 

vielen Dank für deine Hilfe smile

jetzt noch 2 Schöhnheitssachen:
- die Zeile für den Namen auch dort zu platzieren, wo die anderen sind, also so ausrichten
-die buttons dunkler machen

wenn ich die entwurfsansicht anmach, passiert nichts, wenn die Auswahlfrage anklicke. Muss das so, oder hab ich was falsch gemacht?






Geschrieben von Skyler am 02.02.2012 um 18:17:

 

bei mir sagt das formular ich habe nicht alle felder ausgefüllt obwohl ich es habe.



Geschrieben von Nanni am 02.02.2012 um 18:26:

 

Vielleicht hast du die Variablen unterschiedlich genannt, vom Formular und von der ABfrage ob sie ausgefüllt sind? Aber wenn du den Code reinstellst könnte man etwas mehr tun als nur raten großes Grinsen



Geschrieben von Skyler am 02.02.2012 um 18:47:

 

Formular
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
<form action="action_formular.php" method="POST">

<table><tr><td><b>Name:</b></td><td><input type="text" name="name"></td></tr>
<tr><td><b>eMail-Adresse:</b></td><td><input type="text" name="email"></td></tr>
<tr><td><b>Pflegepferd:</b></td><td><input type="text" name="pflegepferd"></td></tr>
<tr><td><b>Nachricht:</b></td><td><textarea name="bewerbungstext"></textarea></td></tr>


<tr><td><input type="submit" value="Absenden?"></td><td><input type="reset" value="Zurücksetzen?"></td></tr></table></form>


php-datei
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
<?php
  $name = $_POST['name'];
  $email = $_POST['email'];
  $pflegepferd = $_POST['pflegepferd'];
  $bewerbungstext = $_POST['bewerbungstext'];
  if ( ($name == "") OR ($email == "") OR ($nachricht == "") )



  {
    echo "Du hast nicht alle Felder ausgefüllt! Gehe <a href='javascript:back()'>zurück</a> und korrigiere dies!";
  }



  else
  {
    $text = "Name: $name
E-Mail: $email
Pflegepferd: $pflegepfed
Bewerbungstext: $bewerbungstext";
    mail("kirosmaus@popmessenger.de",$text,"From $name <$email>");
    echo "Deine e-Mail wurde erfolgreich abgeschickt.";
  }



?>



Geschrieben von Nanni am 02.02.2012 um 18:57:

 

Du fragst in Zeile 6 ob $nachricht leer ist - die Varible hast du nirgendwo gesetzt, daher gilt sie quasi als leer. Es müsste bei dir in der if-Abfrage $bewerbungstext heißen (:


Forensoftware: Burning Board, entwickelt von WoltLab GmbH