Formular- Bestätigungsmail und Bestätigungsseite

Ben82

Grünschnabel
Hallo ich hab ein Problem mit meinem Formular!
Und zwar möchte ich die eingegeben Daten per E-Mail verschicken und auf der Bestätigungsseite anzeigen lassen. Leider funktioniert beides nicht!
Kann sich das mal jemand ansehen?!
PHP:
<?php

function formular()
{
echo"
<b></b>Formular zum anmelden!<br>
</b><br>

 <br>

<b>Anmeldung:</b><br />

<form method='POST' action='anmeldung'>


<table >

<tr>
	<td>Nachname:</td>
	<td><input type='text' name='form_nachname' size='40' value='".$_POST['form_nachname']."'></td>
</tr>
<tr>
	<td>Vorname:</td>
	<td><input type='text' name='form_vorname' size='40' value='".$_POST['form_vorname']."'></td>
</tr>

<tr>
	<td>Strasse:</td>
	<td><input type='text' name='form_strasse' size='30' value='".$_POST['form_strasse']."'>
	Nummer:<input type='text' titel='form_nummer' size='5' value='".$_POST['form_nummer']."'></td>
</tr>
<tr>
	<td>PLZ:</td>
	<td><input type='text' name='form_plz' size='10' value='".$_POST['form_plz']."'>
              Ort:    	<input type='text' name='form_ort' size='40' value='".$_POST['form_ort']."'></td>
</tr>

<tr>
 <td> </td>
 <td> </td>
</tr>
<tr>
	<td>Geburtsdatum:</td>
	<td><input type='text' name='form_geburtstag' size='10' value='".$_POST['form_geburtstag']."'>  (Format: DD.MM.YYYY, z.B. 01.01.2006)</td>
</tr>

<tr>
	<td>E-Mail:</td>
	<td><input type='text' name='form_mail' size='40' value='".$_POST['form_mail']."'></td>
</tr>
<tr>
	<td>Telefon:</td>
	<td><input type='text' name='form_telefon' size='40' value='".$_POST['form_telefon']."'></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>


<tr>
	<td> </td>
	<td> * erforderlich</td>
</tr>
<tr>
	<td> </td>
	<td>Bitte überprüfen Sie noch einmal alle Eingaben, eine spätere Korrektur ist NICHT möglich!<br>
	<br>Alle Eingaben korrekt?<br /><br /></td>
</tr>

<tr>
<td> </td>
	<td colspan='2'><input type='submit' value='anmelden!' name='los'>
	<input type='hidden' name='gesendet' value='1'></td>
</tr>
</table>
</form>";
}

if($_POST['gesendet'])
{
$meldung = "";


if ($_POST['form_nachname']=='')
	{ $meldung.="Der Nachname eingegeben werden.<br />"; }
if ($_POST['form_nachname']=='')
	{ $meldung.="Der Vorname eingegeben werden.<br />"; }
if ($_POST['form_strasse']=='')
	{ $meldung.="Die Strasse  eingegeben werden.<br />"; }
if ($_POST['form_plz']=='')
	{ $meldung.="Die Postleitzahl mu&szlig; eingegeben werden.<br />"; }
if ($_POST['form_ort']=='')
	{ $meldung.="Der Ort mu&szlig; eingegeben werden.<br />"; }
if ($_POST['form_geburtstag']=='')
	{ $meldung.="Der Geburtstag mu&szlig; eingegeben werden.<br />"; }
if (ereg("[0-3][0-9][.][0-1][0-9][.][1][9][0-9][0-9]", $_POST['form_geburtstag'])) {}
	else { $meldung.="Das Geburtsdatum ist nicht korrekt.<br />"; }

if (eregi("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,4}$", $_POST['form_mail'])) {}
	else { $meldung.="Die E-Mail-Adresse ist nicht korrekt.<br />"; }


if ($meldung == "") {

$mysqlhost="*******";
$mysqluser="*****";
$mysqlpwd="****";
$mysqldb="******";

$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");

$sql = 'INSERT INTO  anmeldung(titel, geschlecht, nachname, vorname, strasse, nummer, plz, ort, geburtstag, mail, telefon, shirt, groesse)

VALUES("'.$_POST['form_titel'].'","'.$_POST['form_geschlecht'].'","'.$_POST['form_nachname'].'","'.$_POST['form_vorname'].'","'.$_POST['form_strasse'].'","'.$_POST['form_nummer'].'","'.$_POST['form_plz'].'","'.$_POST['form_ort'].'","'.$_POST['form_geburtstag'].'","'.$_POST['form_mail'].'","'.$_POST['form_telefon'].'","'.$_POST['form_shirt'].'","'.$_POST['form_groesse'].'")';
mysql_query($sql) or die ("Fehler Dateneinfügung: ".mysql_error());


//Bestätigungs-Mail ..... hier geht es nicht!


$text=  "Ihre übertragen Daten,
Name: $nachname
Vorname: $vorname
Geburtsdatum: $geburtstag
danke für Deine Anmeldung.;

//Instanz von PHPMailer bilden
  $mail = new PHPMailer();

  //Absenderadresse der Email setzen
  $mail->From = "******************";

  //Name des Abenders setzen
  $mail->FromName = "*************";

  //Empfängeradresse setzen
  $mail->AddAddress($form_mail);

  //Betreff der Email setzen
  $mail->Subject = "Übertragen Daten";

  //Text der EMail setzen
  $mail->Body = $text;

  //EMail senden und überprüfen ob sie versandt wurde
  if(!$mail->Send())
  {
     //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
     echo "Die Email konnte nicht gesendet werden";
     echo "Fehler: " . $mail->ErrorInfo;
  }
  else
  {
     //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
     echo "So eben wurde eine E-Mail mit deinen Daten versandt.<br /><br />";
  }

//Bestätigungsseite ..... hier geht es nicht!


echo'<b>Vielen Dank für Deine Anmeldung.</b><br/>;

Daten die Sie eingetragen haben.
Name: $nachname
Vorname: $vorname
Geburtsdatum: $geburtstag





} else {
echo '<b>Folgende Fehler sind aufgetreten:</b><br /><span style="color:red;">'.$meldung.'</span><br />';
formular();
}
}
else

formular();

?>

Bin für jede Hilfe dankbar!
 
Da sind Klammern falsch gesetzt und es fehlen " und '.
Das wäre das erste was mir auffällt.

Versuch mal das:

PHP:
<?php

function formular()
{
echo"
<b></b>Formular zum anmelden!<br>
</b><br>

 <br>

<b>Anmeldung:</b><br />

<form method='POST' action='anmeldung'>


<table >

<tr>
    <td>Nachname:</td>
    <td><input type='text' name='form_nachname' size='40' value='".$_POST['form_nachname']."'></td>
</tr>
<tr>
    <td>Vorname:</td>
    <td><input type='text' name='form_vorname' size='40' value='".$_POST['form_vorname']."'></td>
</tr>

<tr>
    <td>Strasse:</td>
    <td><input type='text' name='form_strasse' size='30' value='".$_POST['form_strasse']."'>
    Nummer:<input type='text' titel='form_nummer' size='5' value='".$_POST['form_nummer']."'></td>
</tr>
<tr>
    <td>PLZ:</td>
    <td><input type='text' name='form_plz' size='10' value='".$_POST['form_plz']."'>
              Ort:        <input type='text' name='form_ort' size='40' value='".$_POST['form_ort']."'></td>
</tr>

<tr>
 <td> </td>
 <td> </td>
</tr>
<tr>
    <td>Geburtsdatum:</td>
    <td><input type='text' name='form_geburtstag' size='10' value='".$_POST['form_geburtstag']."'>  (Format: DD.MM.YYYY, z.B. 01.01.2006)</td>
</tr>

<tr>
    <td>E-Mail:</td>
    <td><input type='text' name='form_mail' size='40' value='".$_POST['form_mail']."'></td>
</tr>
<tr>
    <td>Telefon:</td>
    <td><input type='text' name='form_telefon' size='40' value='".$_POST['form_telefon']."'></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>


<tr>
    <td> </td>
    <td> * erforderlich</td>
</tr>
<tr>
    <td> </td>
    <td>Bitte überprüfen Sie noch einmal alle Eingaben, eine spätere Korrektur ist NICHT möglich!<br>
    <br>Alle Eingaben korrekt?<br /><br /></td>
</tr>

<tr>
<td> </td>
    <td colspan='2'><input type='submit' value='anmelden!' name='los'>
    <input type='hidden' name='gesendet' value='1'></td>
</tr>
</table>
</form>";
}

if($_POST['gesendet'])
{
$meldung = "";


if ($_POST['form_nachname']=='')
    { $meldung.="Der Nachname eingegeben werden.<br />"; }
if ($_POST['form_nachname']=='')
    { $meldung.="Der Vorname eingegeben werden.<br />"; }
if ($_POST['form_strasse']=='')
    { $meldung.="Die Strasse  eingegeben werden.<br />"; }
if ($_POST['form_plz']=='')
    { $meldung.="Die Postleitzahl mu&szlig; eingegeben werden.<br />"; }
if ($_POST['form_ort']=='')
    { $meldung.="Der Ort mu&szlig; eingegeben werden.<br />"; }
if ($_POST['form_geburtstag']=='')
    { $meldung.="Der Geburtstag mu&szlig; eingegeben werden.<br />"; }
if (ereg("[0-3][0-9][.][0-1][0-9][.][1][9][0-9][0-9]", $_POST['form_geburtstag'])) {}
    else { $meldung.="Das Geburtsdatum ist nicht korrekt.<br />"; }

if (eregi("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,4}$", $_POST['form_mail'])) {}
    else { $meldung.="Die E-Mail-Adresse ist nicht korrekt.<br />"; }


if ($meldung == "") {

$mysqlhost="*******";
$mysqluser="*****";
$mysqlpwd="****";
$mysqldb="******";

$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");

$sql = 'INSERT INTO  anmeldung(titel, geschlecht, nachname, vorname, strasse, nummer, plz, ort, geburtstag, mail, telefon, shirt, groesse)

VALUES("'.$_POST['form_titel'].'","'.$_POST['form_geschlecht'].'","'.$_POST['form_nachname'].'","'.$_POST['form_vorname'].'","'.$_POST['form_strasse'].'","'.$_POST['form_nummer'].'","'.$_POST['form_plz'].'","'.$_POST['form_ort'].'","'.$_POST['form_geburtstag'].'","'.$_POST['form_mail'].'","'.$_POST['form_telefon'].'","'.$_POST['form_shirt'].'","'.$_POST['form_groesse'].'")';
mysql_query($sql) or die ("Fehler Dateneinfügung: ".mysql_error());


//Bestätigungs-Mail ..... hier geht es nicht!


$text=  "Ihre übertragen Daten,
Name: $nachname
Vorname: $vorname
Geburtsdatum: $geburtstag
danke für Deine Anmeldung.";

//Instanz von PHPMailer bilden
  $mail = new PHPMailer;

  //Absenderadresse der Email setzen
  $mail->From = "******************";

  //Name des Abenders setzen
  $mail->FromName = "*************";

  //Empfängeradresse setzen
  $mail->AddAddress($form_mail);

  //Betreff der Email setzen
  $mail->Subject = "Übertragen Daten";

  //Text der EMail setzen
  $mail->Body = $text;

  //EMail senden und überprüfen ob sie versandt wurde
  if(!$mail->Send())
  {
     //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
     echo "Die Email konnte nicht gesendet werden";
     echo "Fehler: " . $mail->ErrorInfo;
  }
  else
  {
     //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
     echo "So eben wurde eine E-Mail mit deinen Daten versandt.<br /><br />";
  }

//Bestätigungsseite ..... hier geht es nicht!


echo'<b>Vielen Dank für Deine Anmeldung.</b><br/>;

Daten die Sie eingetragen haben.
Name: $nachname
Vorname: $vorname
Geburtsdatum: $geburtstag';





} else {
echo '<b>Folgende Fehler sind aufgetreten:</b><br /><span style="color:red;">'.$meldung.'</span><br />';
formular();
}
else
{
formular();
}
}
?>
 
Hey Loomes,

dake für die Hinweise. Aber daran liegt es leider nicht!

Die Felder sind einfach leer in der Bestätigungsmail und auf der Bestätigungsseite!

Kann mir jemand sagen warum?
 
Du solltest vielleicht hier

PHP:
Name: $nachname
Vorname: $vorname
Geburtsdatum: $geburtstag

Den Variablen auch einen Wert zuweisen

PHP:
$nachname = $_POST['form_nachname'];

Oder ich übersehe schon wieder was, hab grad Stress in der Arbeit :)
 
Das hatte ich auch schon mal probiert. Macht diesen Fehler:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /customers/httpd.www/anmeldung.php on line 327


bei:
PHP:
 echo'<b>Vielen Dank für Deine Anmeldung.</b><br/>;
$nachname = $_POST['form_nachname'];
 
Schreibs doch so:

PHP:
echo '<b>Vielen Dank für Deine Anmeldung.</b><br />
      Daten die Sie eingetragen haben.<br />
      Name: ' .$_POST['form_nachname']. ' <br />
      Vorname: ' .$_POST['form_vorname']. ' <br />
      Geburtsdatum: ' .$_POST['form_geburtstag'];
 
Danke Loomes!
Das hat funktioniert! :)
Was so ein $ alles ausmacht...

Kannst du mir auch noch einen Tipp geben wie ich die Daten jetzt in die Bestätigungsmail bekomme!? Da hab ich schon alles probiert...

PHP:
//Bestätigungs-Mail ..... hier geht es nicht! 


$text=  "Ihre übertragen Daten, 
Name: $nachname 
Vorname: $vorname 
Geburtsdatum: $geburtstag 
danke für Deine Anmeldung.";
 
Sollte auch so gehen wie mit dem Teil oben:

PHP:
$text = 'Ihre übertragen Daten,<br />
        Name: ' .$_POST['form_nachname']. '<br />
        Vorname: ' .$_POST['form_vorname']. '<br />
        Geburtsdatum: ' .$_POST['form_geburtstag']. '<br />
        danke für Deine Anmeldung.';
 
Danke das hat funktioniert! Hat mir sehr weitergeholfen! :)

Die Daten werden per Mail übertragen wenn man das Formular abschickt!

Wenn du erlaubst hätte ich noch eine Frage!

Ich schick die Daten jetzt zu einer Datenbank! Und ruf sie dann wieder ab und bestätige sie in eine anderer Datenbank! Wobei der Angemeldete dann auch nochmal eine Mail erhält mit seiner Reg-Nummer. Gibt es da einen andern Befehl als ' .$_POST['form_nr']., weil die Daten schon in der Datenbank stehen?
Denn dann bleiben die Felder in der Mail wieder leer...
 
Zeig mal den passenden Codeschnipsel, ich habe leider (noch) keine hellseherischen Kräfte, also ich weis nicht wieso die Felder leer sind :)
 
Zurück