[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Bestätigungsmail mit Daten - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Ben
Beiträge: 73
Registriert: 15. Aug 2006, 13:48
Wohnort: Rostock

Bestätigungsmail mit Daten

16. Feb 2008, 14:03

Hallo,

ich habe ein Problem und finde leider keine Lösung.
Und zwar schicke ich wenn ich einen Datensatz bestätige, den Datensatz von der Tabelle anmeldung zur Tabelle meldeliste. Dabei wird eine Mail versand.
Diese Mail wird auch versand, nur leider stehen die Daten, wie zum Beispiel die Sartnummer da dann nicht drin.
Findet jemand meinen Fehler?

Die Verwaltung:

Code: Alles auswählen

<? require('../redaxo/include/classes/class.phpmailer.inc.php'); ?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<?php 

$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."); 

/* ausführen einer SQL Anfrage */ 
$query = "SELECT * FROM anmeldung"; 
$query2 = "SELECT * FROM anmeldung WHERE (nr='$nummer')"; 
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error()); 
$result2 = mysql_query($query2) or die("Anfrage fehlgeschlagen: " . mysql_error()); 

$result3 = mysql_fetch_array($result2); 

mysql_query("INSERT INTO meldeliste(nr, nachname, vorname, geschlecht, strasse, plz, ort, geburtstag, mail, telefon, shirt, groesse,datum) SELECT nr, vorname, nachname, geschlecht, strasse, plz, ort,  geburtstag, mail, telefon, shirt, groesse, datum FROM anmeldung WHERE (nr='$nummer')") or die ("Fehler kopieren."); 
mysql_query("DELETE FROM anmeldung WHERE (nr='$nummer')") or die ("Fehler löschen"); 




$text = 'Liebe(r) Sportfreund(in), 


ihre Startgebühr ist bei uns eingetroffen. 
Ihre Startnummer: ' .$_POST['form_nr']. '  ';   /* Hier ist das Problem!!!*/ 


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

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

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

  //Empfängeradresse setzen 
  $mail->AddAddress($result3[mail]); 

  //Betreff der Email setzen 
  $mail->Subject = "Anmeldebestätigung"; 

  //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 "<span style='color:white;'>So eben wurde eine E-Mail-Anmeldebestätigung versandt.</span><br /><br />"; 
  } 





mysql_query("DELETE FROM anmeldung_schwimmen WHERE (nr='$loeschena')") or die ("Fehler löschen"); 

mysql_query("DELETE FROM meldeliste_schwimmen WHERE (nr='$loeschenb')") or die ("Fehler löschen"); 

/* Freigeben des Resultsets */ 
mysql_free_result($result); 
mysql_free_result($result2); 

?> 


Danke für eure Hilfe.

Benutzeravatar
Koala
Beiträge: 1612
Registriert: 3. Okt 2005, 13:20

Re: Bestätigungsmail mit Daten

16. Feb 2008, 16:56

Ben hat geschrieben:Diese Mail wird auch versand, nur leider stehen die Daten, wie zum Beispiel die Sartnummer da dann nicht drin.
In den DB-Abfragen verwendest du die Variable $nummer im Emailtext steht aber plötzlich etwas von $_POST['form_nr'].
Sind das wirklich zwei verschiedene Nummern oder sollten das die gleichen sein? Heißt dein Input-Feld auch wirklich 'form_nr'?
Was gibt denn ein

Code: Alles auswählen

var_dump($_POST);
aus? Da müsste deine 'form_nr' ja drin erscheinen.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung

Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)

Ben
Beiträge: 73
Registriert: 15. Aug 2006, 13:48
Wohnort: Rostock

16. Feb 2008, 18:55

Naja es geht ja nicht nur die Nummer, sondern zum Bsp. auch um die Ausgabe des Namen

Code: Alles auswählen

Name: ' .$_POST['nachname']. '
was auch leer ist, die Nummer war nur ein Bsp.

Wenn ich

Code: Alles auswählen

var_dump($_POST);
unter die Datei setze steht dann da:

Code: Alles auswählen

array(0) { } 

Benutzeravatar
Koala
Beiträge: 1612
Registriert: 3. Okt 2005, 13:20

17. Feb 2008, 00:16

Mal kurz zum besseren Verständnis.
Du hast ein Formular in dem du was einträgst, damit der von dir gezeigte Code nach dem absenden ausgeführt wird?
Zeige doch bitte mal das dazugehörige Formular.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung

Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)

Ben
Beiträge: 73
Registriert: 15. Aug 2006, 13:48
Wohnort: Rostock

17. Feb 2008, 23:39

Hey Koala,

das Anmeldeforular sie so aus:

Code: Alles auswählen

<?php

function formular()
{
echo"
<b>Anmeldung:</b><br />
<form method='POST' action='anmeldung.php'>
<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>Geschlecht:*</td>
	<td><input type='radio' name='form_geschlecht' value='m'";
	if ($_POST['form_geschlecht']=="m") echo 'checked';

echo">Männlich
	<input type='radio' name='form_geschlecht' value='w'";
	if ($_POST['form_geschlecht']=="w") echo 'checked';
echo">Weiblich</td>
</tr>
<tr>

<tr>
	<td>Strasse:*</td>
	<td><input type='text' name='form_strasse' size='30' value='".$_POST['form_strasse']."'></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 colspan=2><br>
	Damit es bestmöglich passt, wählen Sie bitte die Größe aus.<br /><br>
</tr>
<tr>

		<td> T-Shirt:*</td>
		<td><select name='form_shirt' size='1'>
		<option value='1'>1</option>
		<option value='2'>2</option>
		<option value='3'>3</option>
		<option value='4'>4</option></select>
	Stück in der Größe:* <select name='form_groesse' size='1'>
		<option value='M'>M</option>
		<option value='L' selected>L</option>
		<option value='XL'>XL</option> </select><br /></td>
</tr>
<tr>
	<td> </td>
	<td colspan=2><br />
	<input type='checkbox' name='form_verzicht' value='verzicht'";
if ($_POST['form_verzicht']=="verzicht") echo 'checked';

echo">Als Teilnehmer am  ich auf eigene Rechung und Gefahr,<br>
die Veranstalter übernehmen auch Dritten gegenüber keine Haftung.<br />
<br />
</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='Jetzt anmelden!' name='los'>
	<input type='hidden' name='gesendet' value='1'></td>
</tr>
</table>
</form>";
}

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

if ($_POST['form_geschlecht']=='')
	{ $meldung.="Das Geschlecht mu&szlig; ausgew&auml;hlt werden.<br />"; }
if ($_POST['form_nachname']=='')
	{ $meldung.="Der Nachname mu&szlig; eingegeben werden.<br />"; }
if ($_POST['form_nachname']=='')
	{ $meldung.="Der Vorname mu&szlig; eingegeben werden.<br />"; }
if ($_POST['form_strasse']=='')
	{ $meldung.="Die Strasse mu&szlig; 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 ($_POST['form_verzicht']=='')
	{ $meldung.="Der Verzichtserklärung und Haftungsfreistellung mu&szlig; zugestimmt werden.<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(nachname, vorname, geschlecht, strasse, plz, ort, geburtstag, mail, telefon, shirt, groesse, datum)

VALUES("'.$_POST['form_nachname'].'","'.$_POST['form_vorname'].'","'.$_POST['form_geschlecht'].'","'.$_POST['form_strasse'].'","'.$_POST['form_plz'].'","'.$_POST['form_ort'].'","'.$_POST['form_geburtstag'].'","'.$_POST['form_mail'].'","'.$_POST['form_telefon'].'","'.$_POST['form_shirt'].'","'.$_POST['form_groesse'].'",NOW())';

mysql_query($sql) or die ("Fehler Dateneinfügung: ".mysql_error());

//Bestätigungs-Mail

$text = 'Vielen Dank für Ihre Anmeldung,

Überprüfe noch einmal deine Eingaben:

        Name: ' .$_POST['form_nachname']. '
        Vorname: ' .$_POST['form_vorname']. '
        Geburtsdatum: ' .$_POST['form_geburtstag']. '
        Straße: ' .$_POST['form_strasse']. '
        Postleitzahl: ' .$_POST['form_plz']. '
        Ort: ' .$_POST['form_ort']. '
        E-Mail: ' .$_POST['form_mail']. '
        T-Shirt-Anzahl: ' .$_POST['form_shirt']. '
        T-Shirt-Größe: ' .$_POST['form_groesse'].' ';

//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);

  //Empfänger einer Kopie setzen
  $mail->AddBCC('');

  //Betreff der Email setzen
  $mail->Subject = "Hinweise zu Ihrer Anmeldung";

  //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 vorläufige E-Mail-Anmeldebestätigung versandt.<br /><br />";
  }



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

Daten die Sie eingetragen haben:<br />
      <b>Name:</b>		' .$_POST['form_vorname']. ' ' .$_POST['form_nachname']. '  <br />

      <b>Ort:</b>		' .$_POST['form_strasse']. ' <br />
      			' .$_POST['form_ort']. ' <br />
      <b>Geboren am:</b>	' .$_POST['form_geburtstag']. ' <br />
      <b>e mail: </b>' .$_POST['form_mail']. ' <br />
      <b>Telefon:</b> ' .$_POST['form_telefon']. ' <br />
      <b>T-Shirt:</b> ' .$_POST['form_shirt']. ' in  ' .$_POST['form_groesse']. '<br />


</style>
Bei Fragen wenden Sie sich bitte an:';


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

formular();

?>

Ben
Beiträge: 73
Registriert: 15. Aug 2006, 13:48
Wohnort: Rostock

19. Feb 2008, 20:10

Kann mir niemand weiterhelfen? :-(

zehbaeh
Beiträge: 556
Registriert: 17. Okt 2006, 11:52
Wohnort: Solingen

19. Feb 2008, 22:51

Wenn Du ein XHTML Dokumentenmodell verwendest
müssen alle Tag und Attributnamen sowie deren per DTD
festgelegte Werte in Kleinbuchstaben
angegeben werden!

Bei Dir steht da: form method="POST"

PS: Allerdings ignorieren diese Tatsache die meisten Browser.
Kann aber eine Ursache sein.
Das Verhalten sollte eigentlich sein: ungültige Werte = Fehlermeldung
oder ignorieren und Standardwert benutzen.
Bei "method" ist das zb. "get" in der XHTML Strict DTD.

Ben
Beiträge: 73
Registriert: 15. Aug 2006, 13:48
Wohnort: Rostock

20. Feb 2008, 00:47

Hallo,
du meinst also ich soll alle "POST" klein schreiben?! Richtig verstanden?! Sorry aber das geht auch nicht!
Bleibt wohl ein ungelöstes Problem.....

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

20. Feb 2008, 11:03

Hi,

die ganzen Eingabedaten werden ja an die Datei anmeldung.php gesendet, wertest du diese dort auch aus? Woher sollen denn die POST Werte kommen, die du hier abfragst?

Gruß,
Markus

Ben
Beiträge: 73
Registriert: 15. Aug 2006, 13:48
Wohnort: Rostock

20. Feb 2008, 15:06

Hallo,

Ja ich sende die Daten nur an anmeldung.php, worüber sie ja in der Datenbank gespeichert werden. Und wenn ich die Daten versende sollen dieses aus der Datenbank kommen.
Ich bin davon ausgegangen das es mit POST geht.
Scheinbar, ja nicht!
Wie muß ich denn die Daten denn abrufen?

Gruß,
Ben

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

20. Feb 2008, 15:18

Hi Ben,

mach doch mal ganz am Anfang deines Scripts ein var_dump($_POST);
um zu sehen ob überhaupt was ankommt..

Gruß,
Markus

Ben
Beiträge: 73
Registriert: 15. Aug 2006, 13:48
Wohnort: Rostock

20. Feb 2008, 21:34

Hallo Markus,

wie oben schon erwähnt steht dann da:

Code: Alles auswählen

array(0) { }  
Leider habe ich nirgendwo ne Lösung gefunden wie ich die Daten aus der Datenbank senden kann!

Gruß,
Ben

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

21. Feb 2008, 11:17

Hi,

kann man das formular online sehen?

Gruß,
Markus

TomHH
Beiträge: 379
Registriert: 7. Nov 2005, 17:57
Wohnort: Hamburg

21. Feb 2008, 14:32

Hi ,

wo wird denn die 'form_nr' gesezt? Im Formular kann ich sie nicht entdecken!
Sehe ich das richtig - der gepostete Code 1 ist anmeldung.php?

Gruß, Tom

Ben
Beiträge: 73
Registriert: 15. Aug 2006, 13:48
Wohnort: Rostock

22. Feb 2008, 21:01

@ Markus: Hab dir eine PM geschickt.

@ Tom:
Der erste Code den ich gepostet habe ist die Verwatlung, wo die Daten abgerufen von Anmelde php abgerufen und durch bestätigen in die Meldeliste geschickt werden. Dabei wollte ich die Nummer versenden was nicht funktioniert.
Und der zweite Code das dazugehörige Formular!

Gruß,
Ben

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

29. Feb 2008, 17:48

Hi zusammen,

also ich bin der Meinung, dass das so nicht funktionieren kann.

Du klickst auf einen Link um die Bestätigung rauszuschicken und fragst daraufhin die $_POST Variable ab.. Du hast ja kein Formular verschickt wo dann auch diese Nummer drinne steht.

Du muss einen Query an die DB abschicken, die dir deine Daten die du brauchst selektiert und diese dann einfach in den Emailtext einbetten...

Viele Grüße,
Markus

Zurück zu „Sonstiges“