Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Kontaktformulardaten mit PHP versenden“

S

Smoleff

Guest

Hallo Leute,

ich habe versuch das Tutorial
Code:
http://www.psd-tutorials.de/tutorials/web/php/-/view/550--kontaktformulardaten-mit-php-versenden
ein bisschen umzuändern. Jetzt ist es so, dass das Formular auf der Homepage problemlos angezeigt wird nur es wird nichts verschickt und die Bestätigung oder Fehlermeldung wird auch nicht angezeigt. Das Formular habe ich unter hochgeladen.

Die erste Datei ist reg.php
PHP:
<!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>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center">Registrierung</td>
  </tr>
</table>
<table border="0" align="center" cellpadding="1" cellspacing="2">
  <form action="versenden.php" method="post">
<tr>
  <td colspan="2">Persönliche Daten</td>
  </tr>
<tr>
  <td>Vor und Nachnahme</td>
  <td><input name="Name" size="20" type="text" /></td>
</tr>
<tr>
  <td>Geburtsdatum:</td>
  <td><input name="Geburtsdatum" size="20" type="text" /></td>
</tr>
<tr>
  <td>Sozialversicherungsnummer:</td>
  <td><input name="Sozialversicherungsnummer" size="20" type="text" /></td>
</tr>
<tr>
  <td>Email:</td>
  <td><input name="Email" size="20" type="text" /></td>
</tr>
<tr>
  <td>Telefonnummer:</td>
  <td><input name="Telefonnumer" size="20" type="text" /></td>
</tr>
<tr>
  <td colspan="2"><br /><p>Rechnungsadresse</p></td>
  </tr>
<tr>
  <td>Strasse &amp; Hausnummer:</td>
  <td><input name="Strasse" size="20" type="text" /></td>
</tr>
<tr>
  <td>Postleitzahl:</td>
  <td><input name="Postleitzahl" size="20" type="text" /></td>
</tr>
<tr>
  <td>Ort:</td>
  <td><input name="Ort" size="20" type="text" /></td>
</tr>
<tr>
  <td colspan="2"><br />
    <p>Lieferadresse*(falls abweichend von Rechnungsadresse)</p></td>
</tr>
<tr>
  <td>Strasse &amp; Hausnummer:</td>
  <td><input name="Strasse2" size="20" type="text" /></td>
</tr>
<tr>
  <td>Postleitzahl:</td>
<td><input name="Postleitzahl2" size="20" type="text" /></td>
</tr>
<tr>
  <td>Ort:</td>
  <td><input name="Ort2" size="20" type="text" /></td>
</tr>
<tr>
  <td colspan="2"><br />
    <p>Bankverbindung</p></td>
</tr>
<tr>
  <td>Kontoinhaber:</td>
  <td><input name="Kontoinhaber" size="20" type="text" /></td>
</tr>
<tr>
  <td>Kontonummer:</td>
  <td><input name="Kontonummer" size="20" type="text" /></td>
</tr>
<tr>
  <td>Bankleitzahl:</td>
  <td><input name="Bankleitzahl" size="20" type="text" /></td>
</tr>
<tr>
  <td colspan="2"><br />
    <p>Kreditkarte</p></td>
</tr>
<tr>
  <td>Karteninhaber:</td>
  <td><input name="Karteninhaber" size="20" type="text" /></td>
</tr>
<tr>
  <td>Kreditkarte:</td>
  <td><select name="Kreditkarte"
size="1">
    <option>Visa</option>
    <option>Mastercard</option>
   </select></td>
</tr>
<tr>
  <td>Kartennummer:</td>
  <td><input name="Kartennummer" size="20" type="text" /></td>
</tr>
<tr>
  <td>Ablaufdatum:</td>
  <td><input name="Ablaufdatum" size="20" type="text" /></td>
</tr>
<tr>
  <td>Sicherheitscode:</td>
  <td><input name="Sicherheitscode" size="20" type="text" /></td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td>* Optional</td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
</tr>
  <tr>
  <td align="center" colspan="2"><input name="Send" type="submit"
value="Abschicken"> <input name="Reset" type="reset"
value="Löschen"></td>
  </tr>
  </form>
</table>
</body>
</html>

und versenden.php
PHP:
<!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>

<body>
<?php
$Empfaenger = "roland.kyek@gmail.com"; //Die E-Mail-Adresse an die die
Daten gesendet werden!
if($_REQUEST['Send']) //Hier wird geprüft, ob der Senden Button
angeklickt wurde!
{
//In der folgenden Codeteil wird überprüft, ob die Pflichtfelder leer
sind. Ist dies der Fall, kommt eine Fehlermeldung.
if ( empty ($_REQUEST['Name'] ) || empty ( $_REQUEST['Geburtsdatum'] ) ||
empty ( $_REQUEST['Sozialversicherungsnummer'] ) || empty ( $_REQUEST['Email'] ) || empty ( $_REQUEST['Telefonnummer'] ) || empty ( $_REQUEST['Strasse'] ) || empty ( $_REQUEST['Ort'] ) || empty ( $_REQUEST['Postleitzahl'] ) || empty ( $_REQUEST['Ort'] ) )
//Die Fehlermeldung mit einem Link zurück zur Formularseite.
{
echo"Bitte gehen Sie <a
href="javascript:history.back();">zurück</a> und füllen
Sie alle Felder aus!";
}
//Sind die Felder Name, E-Mail und Nachricht mit Inhalt gefüllt, geht
es hier weiter.
else
{
$Mailnachricht = "Sie haben folgende Nachricht erhalten: //Text der über
den Daten in der E-Mail steht.
nn";
while(list($Formularfeld, $Wert)=each($_REQUEST)) //Hier wird dem Script gesagt, das er die Angaben aus dem Forumlar gelistet ausgeben soll.
//Zuerst steht dort der Name des Forumlarfeldes, und dann der
//eingegebene Wert.
{
if($Formularfeld!="Send")//Wurde der Senden-Button gedrückt, werden die Daten jetzt übergeben.
{
$Name .= $Formularfeld.":
".$Wert."n";
}}
$Mailnachricht .= "nDatum/Zeit: "; //Die Ausgabe des Datums und Uhrzeit erfolgt unter den ganzen Angaben
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Registrierung";
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From:
".$_REQUEST['Email']);
echo"Vielen Dank für Ihre Registrierung!"; //Dieser Text erscheint im Browser wenn die Daten vollständig versendet wurden.
}}
//Ist ein Fehler aufgetreten, erscheint die folgende Meldung.
else
{
echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a
href="reg.php">Seite</a>.";
}
//Ende des Scripts.
?>
</body>
</html>
 

owieortho

Aktives Mitglied

AW: Kontaktformulardaten mit PHP versenden

Hallo,

in Deinem Formular erfragst Du:
HTML:
<input name="Telefonnumer" size="20" type="text" />

in Deiner versenden.php wird aber auf
PHP:
|| empty ( $_REQUEST['Telefonnummer'] )
geprüft (Schreibweise von Telefonnum(m)er). Hier müsste also Deine Meldung zurückzugehen greifen bevor Dein Skript weiter ausgeführt wird.

Und willst Du ernsthaft Bank- und Kreditkartendaten so per Mail verschicken??? Überleg Dir das nochmal!

Frohe Weihnachten

O
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Kontaktformulardaten mit PHP versenden

In dem Script selbst sind einige Fehler, auf der Seite des Tutorials wurden offenbar alle \ entfernt, die aber in diesem Code benötigt werden. Diese Fehler führen üblicherweise zu Fehlerausgaben von PHP, die aber wahrscheinlich auf deinem Free-Hoster ausgeschaltet sind.

Ich habe mal die offensichtlichsten Fehlerquellen beseitigt, aber ich habe es nicht lokal getestet:
PHP:
<?php
$Empfaenger = "XXX@XXX.com"; //Die E-Mail-Adresse an die die Daten gesendet werden!
if($_REQUEST['Send']) //Hier wird geprüft, ob der Senden Button angeklickt wurde!
{
    //In der folgenden Codeteil wird überprüft, ob die Pflichtfelder leer sind. Ist dies der Fall, kommt eine Fehlermeldung.
    if ( empty ($_REQUEST['Name'] ) || empty ( $_REQUEST['Geburtsdatum'] ) ||
	empty ( $_REQUEST['Sozialversicherungsnummer'] ) || empty ( $_REQUEST['Email'] ) || empty ( $_REQUEST['Telefonnummer'] ) || empty ( $_REQUEST['Strasse'] ) || empty ( $_REQUEST['Ort'] ) || empty ( $_REQUEST['Postleitzahl'] ) || empty ( $_REQUEST['Ort'] ) )
	//Die Fehlermeldung mit einem Link zurück zur Formularseite.
    {
	echo"Bitte gehen Sie <a
	    href=\"javascript:history.back();\">zurück</a> und füllen
	    Sie alle Felder aus!";
    }
    //Sind die Felder Name, E-Mail und Nachricht mit Inhalt gefüllt, geht es hier weiter.
    else
    {
	$Mailnachricht = "Sie haben folgende Nachricht erhalten: //Text der über
	    den Daten in der E-Mail steht.
	    \n\n";
	while(list($Formularfeld, $Wert)=each($_REQUEST)) //Hier wird dem Script gesagt, das er die Angaben aus dem Forumlar gelistet ausgeben soll.
	    //Zuerst steht dort der Name des Forumlarfeldes, und dann der
	    //eingegebene Wert.
	{
	    if($Formularfeld!="Send")//Wurde der Senden-Button gedrückt, werden die Daten jetzt übergeben.
	    {
		$Name .= $Formularfeld.":".$Wert."\n";
	    }
	}
	$Mailnachricht .= "\nDatum/Zeit: "; //Die Ausgabe des Datums und Uhrzeit erfolgt unter den ganzen Angaben
	$Mailnachricht .= date("d.m.Y H:i:s");
	$Mailbetreff = "Registrierung";
	mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From:
	    ".$_REQUEST['Email']);
	echo"Vielen Dank für Ihre Registrierung!"; //Dieser Text erscheint im Browser wenn die Daten vollständig versendet wurden.
    }
}
//Ist ein Fehler aufgetreten, erscheint die folgende Meldung.
else
{
    echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a
	href=\"reg.php\">Seite</a>.";
}
//Ende des Scripts.
?>
Du müsstest nur den Empfänger wieder richtig setzen.

Falls diese Variante auch nicht funktioniert, könntest du auf der ersten Zeile des Scripts ein
PHP:
error_reporting(E_ALL);
werfen und mit den hoffentlich erscheinenden Fehlermeldungen weiterarbeiten.


Duddle
 
S

Smoleff

Guest

AW: Kontaktformulardaten mit PHP versenden

Hallo Leute,

danke für eure Antworten, sensationell die Reaktionsgeschwindigkeit in diesem Forum. Ich werde die Hinweise nach den Feiertagen umsetzen und wünsche euch froh Weihnachten
 
S

Smoleff

Guest

AW: Kontaktformulardaten mit PHP versenden

Hallo Duddle!

Dein Script hat dazu genützt, dass über die Registrierung per Mail verschickt wird. Nur das Problem ist dass keines der Felder übernommen wird sondern die Email wie folgt verschickt wird:

noreply@rolandkyek.ro.funpic.de
10:44 (vor 6 Minuten)

an mich
Sie haben folgende Nachricht erhalten:


Datum/Zeit: 28.12.2011 10:43:17

Kann mir jemand helfen dass auch die Felder der reg.php Datei übernommen werden?

Mfg Smoleff



PHP:
<!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>

<body>
<?php
$Empfaenger = "roland.kyek@gmail.com"; //Die E-Mail-Adresse an die die Daten gesendet werden!
if($_REQUEST['Send']) //Hier wird geprüft, ob der Senden Button angeklickt wurde!
{
    //In der folgenden Codeteil wird überprüft, ob die Pflichtfelder leer sind. Ist dies der Fall, kommt eine Fehlermeldung.
    if ( empty ($_REQUEST['Name'] ) || empty ( $_REQUEST['Geburtsdatum'] ) ||
    empty ( $_REQUEST['Sozialversicherungsnummer'] ) || empty ( $_REQUEST['Email'] ) || empty ( $_REQUEST['Telefonnummer'] ) || empty ( $_REQUEST['Strasse'] ) || empty ( $_REQUEST['Ort'] ) || empty ( $_REQUEST['Postleitzahl'] ) || empty ( $_REQUEST['Ort'] ) )
    //Die Fehlermeldung mit einem Link zurück zur Formularseite.
    {
    echo"Bitte gehen Sie <a
        href=\"javascript:history.back();\">zurück</a> und füllen
        Sie alle Felder aus!";
    }
    //Sind die Felder Name, E-Mail und Nachricht mit Inhalt gefüllt, geht es hier weiter.
    else
    {
    $Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
    while(list($Formularfeld, $Wert)=each($_REQUEST)) //Hier wird dem Script gesagt, das er die Angaben aus dem Forumlar gelistet ausgeben soll.
        //Zuerst steht dort der Name des Forumlarfeldes, und dann der
        //eingegebene Wert.
    {
        if($Formularfeld!="Send")//Wurde der Senden-Button gedrückt, werden die Daten jetzt übergeben.
        {
        $Name .= $Formularfeld.":".$Wert."\n";
        }
    }
    $Mailnachricht .= "\nDatum/Zeit: "; //Die Ausgabe des Datums und Uhrzeit erfolgt unter den ganzen Angaben
    $Mailnachricht .= date("d.m.Y H:i:s");
    $Mailbetreff = "Registrierung";
    mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From:
        ".$_REQUEST['Email']);
    echo"Vielen Dank für Ihre Registrierung!"; //Dieser Text erscheint im Browser wenn die Daten vollständig versendet wurden.
    }
}
//Ist ein Fehler aufgetreten, erscheint die folgende Meldung.
else
{
    echo"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a
    href=\"reg.php\">Seite</a>.";
}
//Ende des Scripts.
?>
</body>
</html>
 

Duddle

Posting-Frequenz: 14µHz

AW: Kontaktformulardaten mit PHP versenden

Ansatz: diese Zeile
PHP:
        $Name .= $Formularfeld.":".$Wert."\n";
könntest du in folgende ändern
PHP:
        $Mailnachricht .= $Formularfeld.":".$Wert."\n";


Duddle
 
S

Smoleff

Guest

AW: Kontaktformulardaten mit PHP versenden

Wahnsinn jetzt funktioniert es, du bist der beste Duddle.

Hätte da noch 3 Fragen:

1. Wie muss ich es eingeben dass bei der Mail zuerst Lieferadresse dann die Daten usw. kommt

2. Gibt es eine spezielle Methode dass die Daten verschlüsselt übertragen werden

3. Kannst du mir einen Tipp geben dass ich selber wieder fit mit php werde?

Mfg Smoleff
 

Duddle

Posting-Frequenz: 14µHz

AW: Kontaktformulardaten mit PHP versenden

Zu 1.: Du müsstest die while-Schleife ersetzen oder das $_REQUEST-Array vorher wie gewünscht sortieren. Einfacher ist wohl ersteres.

Zu 2.: "Verschlüsselung" ist ein sehr, sehr, sehr großes Thema. PHP bietet an.

Zu 3.: Tutorials lesen, Bücher lesen?


Duddle
 
S

Smoleff

Guest

AW: Kontaktformulardaten mit PHP versenden

wie meinst du das genau die while liste ersetzen? hab keinen plan
 

AxelM

Nicht mehr ganz neu hier

AW: Kontaktformulardaten mit PHP versenden

Du könntest , anstatt das $_REQUEST mit der while Schleife durchzugehen die einzlenen Felder per Hand abfragen.
$nachricht .= "Name: ".$_REQUEST['name']."\n";
$nachricht .= "Straße: ".$_REQUEST['strasse']."\n";
$nachricht .= "PLZ: ".$_REQUEST['plz']."\n";
$nachricht .= "Ort: ".$_REQUEST['ort']."\n";
....
Das ist mehr Schreibarbeit, aber für den Anfang wohl das sicherste.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.189
Beiträge
2.582.079
Mitglieder
67.258
Neuestes Mitglied
SaschMasch1312
Oben