cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
wichtigWir suchen PHP-Entwickler/innen (Freelancer oder Vollzeit)
eBooks
Hochgeladene Bilder
Letzte Änderungen

Lexikon

Bücher
Themengebiete

Tutorials


Statistik
Mitglieder gesamt: 69184
Mitglieder online: 1
Gäste online: 5
mehr...

Anzeige
Tutorials » Tutorials: PHP/MySQL » Tutorial: PHP Kontakt-Formular

Tutorial: PHP Kontakt-Formular

PHP Kontakt-Formular

Ich erkläre, wie man ein Kontakt-Formular in einer Datei unterbringt !


Hi !
Ich werde dir jetzt erklären, wie du ein Kontaktformular mithilfe von PHP kinderleicht erstellst !
Los gehts ...

Ich erstelle eine Datei namens "kontakt.php" und öffne diese mit einem beliebigen Text-Editor .
Jetzt muss erstmal eine Form -in der die Input felder sitzen- her :
PHP:
1
2
<form action="kontakt.php?action=send" method="POST">
</form>
Im action-tag wird die Adresse zum Sende Formular angegeben .
Da ichja nur eine Datei will, werde ich das Sende Formular ebenfalls in dieser Datei unterbringen - dazu später !
Nun brauch ich eine Tabelle, in der die Inputs sitzen werden .
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<form action="kontakt.php?action=send" method="POST">
 
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="200" valign="middle" class="mainpage">Ihr Name : </td>
    <td height="35" valign="middle"><input type="text" name="name" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihre Emailadresse : </td>
    <td height="35" valign="middle"><input type="text" name="email" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihr Betreff :</td>
    <td height="35" valign="middle"><input type="text" name="betreff" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihre Nachricht :</td>
    <td height="180" valign="middle"><textarea name="nachricht" cols="50" rows="10"></textarea></td>
  </tr>
</table>
 
</form>
Hier habe ich 4 Felder benutzt .
"name", "email", "betreff" sowie "nachricht".
Diese namen werden beim submitten von PHP benutzt .
Sie können natürlich beliebig abgewandelt werden !
Jetzt muss noch der Submit-Button her, damit die Variablen "name", "email", "betreff" und "nachricht" gesendet werden .
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form action="kontakt.php?action=send" method="POST">
 
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="200" valign="middle" class="mainpage">Ihr Name : </td>
    <td height="35" valign="middle"><input type="text" name="name" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihre Emailadresse : </td>
    <td height="35" valign="middle"><input type="text" name="email" size="20"></td>
  </tr>
  <tr>
    <td height="22" valign="middle" class="mainpage">Ihr Betreff :</td>
    <td height="35" valign="middle"><input type="text" name="betreff" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihre Anfrage :</td>
    <td height="180" valign="middle"><textarea name="nachricht" cols="50" rows="10"></textarea></td>
  </tr>
</table>
<div align="center"><input type="submit" value="Abschicken"></div>
 
</form>
Der Submit-Button wurde von mir mithilfe von <div> zentriert .
Die Aufschrift Abschicken kann ebenfalls abgeändert werden .
Es spielt keine Rolle was draufsteht  :wink: 
Jetzt kommt PHP dazu !
+ 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
31
32
33
34
<?PHP
$sendto = "info@fischertechnologies.de";
$message = "
Name :  $name
Email :  $email
 
Nachricht : 
$nachricht
";
?>
 
<form action="kontakt.php?action=send" method="POST">
 
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="200" valign="middle" class="mainpage">Ihr Name : </td>
    <td height="35" valign="middle"><input type="text" name="name" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihre Emailadresse : </td>
    <td height="35" valign="middle"><input type="text" name="email" size="20"></td>
  </tr>
  <tr>
    <td height="22" valign="middle" class="mainpage">Ihr Betreff :</td>
    <td height="35" valign="middle"><input type="text" name="betreff" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihre Anfrage :</td>
    <td height="180" valign="middle"><textarea name="nachricht" cols="50" rows="10"></textarea></td>
  </tr>
</table>
<div align="center"><input type="submit" value="Abschicken"></div>
 
</form>
Hier bestimme ich die Variablen "message" und "sendto" .
Du wirst sicher sehen, dass ich hier wieder "name", "email", "betreff" und "nachricht" benutze .
Wie vorhin angedeutet, wandelt PHP die namen der Inputs beim submitten in Variablen um !
Wieso habe ich kein $betreff verwendet ?
Das siehst du gleich !
+ 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?PHP
$sendto = "info@fischertechnologies.de";
$message = "
Name :  $name
Email :  $email
 
Anfrage : 
$nachricht
";
 
if ($action == "send") {
  if ($name == "" || $betreff == "" || $nachricht == "" || !preg_match("/[.a-z0-9_-]+@+[.a-z0-9_-]+.+[.a-z0-9_-]{2,}/i", $email)) {
      echo "Es wurden nicht alle Felder korrekt ausgefällt!";
  } else {
      mail($sendto, "FischerTECHNOLOGIES - Support : " . $betreff . " [" . date("d.M.Y") ."]", $message);
      echo "Nachricht erfolgreich gesendet!<p>[" . date("d.M.Y") . "]";
  }
} else {
?>
 
<form action="kontakt.php?action=send" method="POST">
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="200" valign="middle" class="mainpage">Ihr Name : </td>
    <td height="35" valign="middle"><input type="text" name="name" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihre Emailadresse : </td>
    <td height="35" valign="middle"><input type="text" name="email" size="20"></td>
  </tr>
  <tr>
    <td height="22" valign="middle" class="mainpage">Ihr Betreff :</td>
    <td height="35" valign="middle"><input type="text" name="betreff" size="20"></td>
  </tr>
  <tr>
    <td valign="middle" class="mainpage">Ihre Anfrage :</td>
    <td height="180" valign="middle"><textarea name="nachricht" cols="50" rows="10"></textarea></td>
  </tr>
</table>
<div align="center"><input type="submit" value="Abschicken"></div>
</form>
 
<?PHP
}
?>
Als erstes habe ich eine If-Schleife reingesetzt, die überprüft, ob der User die Mail fortschicken will, oder nicht - wir haben im Form-Tag ja angegeben, dass ?action=send die Variable $action auf "send" gesetzt wird !
Genau dies wird von der ersten If-Anweisung überprüft .
Somit teile ich dem Formular mit, dass er nicht mehr das Fomular ausgeben soll, sondern die Mail verschicken !
Ich habe noch eine zweite If-Anweisung eingebaut .
Sie überpfrüft, ob alle Felder ausgefüllt wurden .
Falls du es entdeckt hast :
PHP:
1
mail($sendto, "FischerTECHNOLOGIES - Support : " . $betreff . " [" . date("d.M.Y") ."]", $message);
Hier verwende ich nun die $betreff-Variable .

Der Mailto-Befehl wird folgendermaßen aufgebaut :
PHP:
1
mail(EMAIL, BETREFF, NACHRICHT, X-HEADER);
Allerding braucht man keine X-HEADER, deswegen habe ich sie auch weggelassen !

Ich hoffe, dir hat mein Tutorial weitergeholfen ...
Bitte schreib per Kommentar, was du verbesserungswürdig findest !

MfG
Kevin Fischer

Dieses Tutorial wurde von Gelöscht #644 am 03.01.2006 verfasst.

Kommentare

wundertuete meinte am 22.04.2006 um 18:14 Uhr:
wurde überarbeitet, ist soweit alles richtig - Mail kommt an :wink:
Gelöscht #329 meinte am 22.02.2006 um 21:47 Uhr:
Du kannst auchnoch reinschreiben, wie man den From und Reply to teil reinmacht...
Funatiker meinte am 04.01.2006 um 15:16 Uhr:
hmmm... das geht aber einfacher: man muss keine variable mitsenden, die überprüft ob das teil gesendet werden kann... man kann einfach isset($nachicht) oder so machen um z erfahren ob ein text eingegeben wurde... auserdem sollte man den extendet header (eriweterten kopf bereich) mit From: \"absender\" füllen, damit man im email programm gleich namen und emailadresse sieht.. ich finde auserdem, dass sowas wie ein datei-versand-script auch noch toll gewesen wäre... und noch ne kleine sicherheitslücke ist drin: globale variablen... es ist besser die variablen per $_POST auszulesen... andernfalls kann man einfach per get (zb als iframe) nen clientseitigen mailbomber daraus machen indem man aufruft: index.php?site=kontakt&action=send&name=test&email=bla@bla.bla&nachricht=test&betreff=blablabla man seiht übrigens, dass der script aus der fischertech website entnommen wird: design merkmale subject betitelung include variable.... fazit: einfacher versuch auf schnelle art und weise cydots zu bekommen....
nach obennach oben

Copyright © 2012 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - s.Oliver Onlineshop für Schuhe
ANEXIA - PHP Entwicklung - Dockers- Think Schuhe - der eigene Weg - Paul Green Damenschuhe - Bequeme Geox Schuhe - Web-Entwicklung - Fritz!Box Anrufmonitor für Mac OS - Rolladen, Markisen und Jalousien in Stuttgart - Rolladen in Stuttgart - SMSjobs