Zur Navigation

Phpmailer in existierendes Formular einbinden

1 tobi

Hallo zusammen,

ich habe ein Formlar bei welchem man sich für ein Turnier anmelden kann. Die Daten werden dann in der DB gespeichert und via E-Mail an den Teilnehmer und die Turnierleitung gesendet.
Das Formular funktioneirt aktuell mittels der phpmail funktion. Ich hatte jedoch letztes Jahr das Problem, dass die Mails nicht korrekt angezeigt wurden. Ich habe dann den Tipp bekommen, auf fertige Klassen wie bspw. PHPMailer zurück zu greifen.
Den Phpmailer habe ich nun von https://github.com/PHPMailer/PHPMailer auf meinen Webspace geladen. Die Frage ist jetzt nur, wie baue ich diesen in mein bestehendes Formular ein? Hatt hier jemand schon mal mit dem Phpmailer gearbeitet und kann mir hier Hilfe geben?

Mein aktuelles Formular schaut so aus:
<?php
//include des Kopfbereiches
include("include/kopf.php");
//include der Navigation
include("include/navigation.php");
//include Anfang des ganzen Inhaltes
include("include/anfang-ganzer-inhalt.php");
?>
	 
		    <!-- Anfang Linker Inhalt -->
		    <div id="linkerinhalt">
				<h1>Anmeldung</h1>	 
				<p>für den Turniertag 2, Sonntag den 13.09.2015</p>
				
<!doctype html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>Anmeldung</title>
<style type="text/css">
.rot{color:#F00;}
.gruen{color:#090;}
.blau{color:#00F;}
.full{color:#F00;font-style:italic;text-decoration:line-through;}
</style>
</head>
<body>
<?php
error_reporting(E_ALL);
include_once('zugang_ppc.php.inc');

// max. Anzahl Teilnehmer Sonntag - 192
$max_sonntag=192;
// sql-Abfrage 1 - Ermitteln Anzahl A-Klasse + Teilweise Damen A (Turnierklasse = 5)
$query=mysql_query('SELECT Count(*) FROM anmeldungen_2014 WHERE gemeldeteKlasse = \'5\'');
list($num_aklasse)=mysql_fetch_row($query);
// sql-Abfrage 2 - Ermitteln Anzahl B-Klasse + Teilweise Damen A (Turnierklasse = 4)
$query=mysql_query('SELECT Count(*) FROM anmeldungen_2014 WHERE gemeldeteKlasse = \'4\'');
list($num_bklasse)=mysql_fetch_row($query);
// sql-Abfrage 3 - Ermitteln Anzahl C-Klasse + Teilweise Damen A (Turnierklasse = 3)
$query=mysql_query('SELECT Count(*) FROM anmeldungen_2014 WHERE gemeldeteKlasse = \'3\'');
list($num_cklasse)=mysql_fetch_row($query);
unset($query);
// alle Klassen Sonntags zusammengesetzt
$num_sonntag = $num_aklasse + $num_bklasse + $num_cklasse;
?>
<?php
//begin POST form check
$show_form=false;
//entweder einfacher Check (nur namen angeben), oder erweiterter via Regularexpression ([name,regex,errormsg])
$frm_field=array(
	array('email','/^[\w\-\.\+]+@([\w\-]+\.?)+$/','Bitte g�ltige E-Mail eintragen!'),
	'vorname','nachname'
	,array('geschlecht','/^(M|W)$/','Bitte Geschlecht ausw�hlen!'),
	array('geburtsjahr','/^(19|20)\d\d$/','Bitte gültiges Geburtsjahr eintragen (z.B. 1967)!'),
	'ttr','verein',
	array('turnierklasse','/^[1-5]$/','Bitte g�ltige Turnierklasse ausw�hlen!'),
	array('email_alt','/(^[\w\-\.\+]+@([\w\-]+\.?)+$|^$)/','Optionales Feld, darf leer gelassen werden oder weitere g�ltige E-Mail eintragen!'));
$frm_error=array();
if(isset($_POST['email'])){
	foreach($frm_field as $val){
		if(!is_array($val)) {
			if(empty($_POST[$val])){
				$_POST[$val]='';
				$frm_error[$val]=' <span class="rot">Bitte ausf�llen!</span>';$show_form=true;
			}else $frm_error[$val]='';
		}else{
			if(!isset($_POST[$val[0]])){
				$_POST[$val[0]]='';
				$frm_error[$val[0]]=' <span class="rot">Bitte ausf�llen!</span>';$show_form=true;
			}elseif(!preg_match($val[1],$_POST[$val[0]])){
				$frm_error[$val[0]]=' <span class="rot">'.$val[2].'</span>';$show_form=true;
			}else $frm_error[$val[0]]='';
		}
	}
}else{
	foreach($frm_field as $val){
		if(is_array($val)){
			if(!isset($_POST[$val[0]]))
				$_POST[$val[0]]='';
			$frm_error[$val[0]]='';
		}elseif(!isset($_POST[$val])){
			$_POST[$val]='';
			$frm_error[$val]='';
		}
	}
	$show_form=true;
}
unset($frm_field);
//vom check oben nicht betroffen (da optional)
if(!isset($_POST['eintrag']))
	$_POST['eintrag']='';
if(!isset($_POST['turnierklasse_ex']))
	$_POST['turnierklasse_ex']='';
//end POST form check

if(!$show_form){//sende anfrage / eintragen
	$_POST['turnierklasse']=intval($_POST['turnierklasse']);
	$turnierklassestr='';
	$altSignUp=($num_sonntag>=$max_sonntag);//case 1&2 change it again
	switch($_POST['turnierklasse']){
	case 1:
	      $turnierklasse = 'C-Klasse';
	      $turnierklassestr='C-Klasse - Sonntag 13. September 2015';
		  $startgeld = '10€';
		  $vorkasse = '9€';			  
		  break;
	case 2:
	      $turnierklasse = 'B-Klasse';
	      $turnierklassestr='B-Klasse - Sonntag 13. September 2015';
		  $startgeld = '10€';
		  $vorkasse = '9€';	
		  break;
	case 3:
	      $turnierklasse = 'A-Klasse';
	      $turnierklassestr='A-Klasse - Sonntag 13. September 2015';
		  $startgeld = '10€';
		  $vorkasse = '9€';	
	      break;
	}
	if(mysql_fetch_object(mysql_query('SELECT * FROM `anmeldungen_2014` WHERE `vorname` = \''.mysql_real_escape_string($_POST['vorname']).'\' AND `nachname` = \''.mysql_real_escape_string($_POST['nachname']).'\' LIMIT 1'))){
		?><p><span class="rot"><b>Die Anmeldung ist Fehlgeschlagen!<br/>Die von dir angegebene Person <?php echo $_POST['vorname'].' '.$_POST['nachname'];?> ist bereits angemeldet.</b></span></p>
				<p>Falls dem nicht so seien sollte, kontaktiere uns bitte via E-Mail unter dieser Mailadresse: <a class="mailto" href="mailto:;">test&nbsp;[at]&nbsp;test&nbsp;[Punkt]&nbsp;de</a></p>
				<p><a class="links" href=index.php title="Zurück zur Übersichtsseite">Zurück zur Übersichtsseite</a> oder <a class="links" href="http://test.de" title="Homepage">zur Webseite des Test</a>
				</p><?php
		$show_form=false;
	}else{//eintragen
		$mysql_query='
INSERT INTO `anmeldungen_2014`
(`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `email`, `verein`, `gemeldeteKlasse`, `anmerkung`, `timestamp`)
VALUES
(\''.mysql_real_escape_string($_POST['vorname']).'\', \''.mysql_real_escape_string($_POST['nachname']).'\', \''.mysql_real_escape_string($_POST['geschlecht']).'\', \''.mysql_real_escape_string($_POST['geburtsjahr']).'\', \''.mysql_real_escape_string($_POST['ttr']).'\', \''.mysql_real_escape_string($_POST['email']).'\', \''.mysql_real_escape_string($_POST['verein']).'\', \''.$_POST['turnierklasse'].'\', \''.mysql_real_escape_string($_POST['eintrag']).'\', NOW())';
		if(mysql_query($mysql_query)){//Best�tigungsemail an den Anmeldenden
		
		
	      	$today=date('l; d.m.Y H:i:s');
			$to=$_POST['email'];
			$subject='Best�tigung der Anmeldung';
			if($altSignUp) $subject='Warteliste - Best�tigung der Daten';
			$text='Hallo '.$_POST['vorname'].' '.$_POST['nachname'].',
			
soeben ('.$today.') ist Ihre ';
			if(!$altSignUp)
				$text.='Anmeldung bei uns eingegangen.
				
Hier als Best�tigung und zur �berpr�fung die angegebenen Daten:';
			else
				$text.='Anfrage zu einer Turnierteilnahme bei uns eingegangen.
Aktuell ist die Teilnehmergrenze in Ihrem gemeldeten Wettbewerb �berschritten und wir k�nnen Ihre Anfrage aktuell noch nicht best�tigen. Erfahrungsgem�� sagen aber kurz vor Turnierbeginn noch der ein oder andere Spieler ab. In einem solchen Fall w�rden wir dich dann umgehend kontaktieren.
Hier zur �berpr�fung die angegebenen Daten:';

			$text.='
Angemeldete Turnierklasse samt Turniertag: '.$turnierklassestr.(intval($_POST['turnierklasse_ex'])?' (freiwillig eine Klasse h�her)':'').'

Vorname: '.$_POST['vorname'].'
Nachname: '.$_POST['nachname'].'
Q-TTR 11.08.2015: '.$_POST['ttr'].'
Verein: '.$_POST['verein'].'
Startgeb�hr: '.$startgeld.'
Vorkasse: '.$vorkasse.'

F�r eine schnellere Abwicklung beim Turnier gibt es die M�glichkeit per Vorkasse bis zum 10.09.2015 (Geldeingang) die Startgeb�hr zu �berweisen.
Kontodaten:
Vereinsname
KTO: 
BLZ: 
Bank
Betrag: '.$vorkasse.'
Verwendungszweck: Test 2015, '.$_POST['nachname'].', '.$_POST['vorname'].', '.$turnierklasse.', '.$_POST['verein'].' 

Hinweis:
Die Teilnehmer des Turniers werden zeitnah auf der Homepage ver�ffentlicht. Zu den einzelnen Teilnehmerfeldern:
http://blub.test.de/';
			if(!$altSignUp)
				$text.='
Falls eine Teilnahme - aus welchen Gr�nden auch immer - nicht erfolgen kann, bitte um Abmeldung via E-mail: test@test.de

Vielen Dank!
Mit freundlichen Grüßen';
			else
				$text.='
				Vielen Dank!
Mit freundlichen Grüßen';
			$header='From: Test <test@ttest.de>'."\n".'Reply-To: Test <test@test.de>'."\n";
			if(!empty($_POST['email_alt'])) $header .='Cc: '.$_POST['email_alt']."\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/plain; charset=utf-8\n";
			if(mail($to,'=?UTF-8?B?'.base64_encode($subject).'?=',$text,$header))
			
			{//Mail an die Turnierleitung
			    $to='test@test.de';
				$subject='Neue Anmeldung';
				if($altSignUp) $subject='Warteliste - Neue Anfrage';
				$text=''.($altSignUp?'- WARTELISTE -':'').'Es gibt eine neue Anmeldung ('.$today.')

�bermittelte Daten:
Vorname: '.$_POST['vorname'].' 
Nachname: '.$_POST['nachname'].'
Geschlecht: '.$_POST['geschlecht'].'
Geburtsjahr: '.$_POST['geburtsjahr'].'
Kontakt-E-Mail: '.$_POST['email'].'
E-Mail 2: '.$_POST['email_alt'].'
Quartals-TTR vom 11.08.2015: '.$_POST['ttr'].'
Angemeldete Turnierklasse: '.$turnierklassestr.(intval($_POST['turnierklasse_ex'])?' (freiwillig eine Klasse h�her)':'').'
Verein: '.$_POST['verein'].'
Bemerkung: '.$_POST['eintrag'].'';
			    $header='From: "'.$_POST['vorname'].' '.$_POST['nachname'].'" <'.$_POST['email'].'>'. "\n".'Reply-To: <'.$_POST['email'].'>'."\n";				
				$header .= "Mime-Version: 1.0\n";
				$header .= "Content-Type: text/plain; charset=utf-8\n";
				if(mail($to,$subject,$text,$header)) 
				{
					?><p><span class="gruen"><b>Die <?php echo($altSignUp?'Anfrage':'Anmeldung');?> ist bei uns eingegangen!<br/>In deinem Postfach befindet sich eine Best�tigung der <?php echo($altSignUp?'Anfrage':'Anmeldung');?>.</b></span><br/><br/><a class="links" href=index.php title="PPC-Allgemein">Zurück zur Übersicht</a> oder <a class="links" href="http://test.de" title="Homepage">zur Webseite des Test</a></p><?php
				}else{?><p><span class="gruen"><b><?php echo($altSignUp?'Anfrage':'Anmeldung');?> erfolgreich</b></span>, <span class="rot"><b>Probleme mit Mailversand.</b></span><br/><br/><a class="links" href=index.php title="PPC-Allgemein">Zurück zur Übersicht</a> oder <a class="links" href="http://test.de" title="Homepage">zur Webseite des Test</a></p><?php }
			}else{
				?><p><span class="rot"><b>Die <?php echo($altSignUp?'Anfrage':'Anmeldung');?> ist Fehlgeschlagen!<br/>Leider trat beim Mailversand ein unerwartetes Problem auf.</b></span></p><br/><?php
				$show_form=true;
			}
		}else{die('<b>MySQL Error:</b><div class="rot">'.mysql_error().'</div><br/>');$show_form=true;}
	}
}
if($show_form)//zeige Formular
{	//f�hrt das aus, wenn die mail adresse noch ned angegeben wurde oder sonst wie das Formular nicht stimmt.
	//ausgabe bzw. setzen von "turnierklasse" vereinfachen
	//Formular f�r Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.
	?>
<p>Bitte jetzt folgende Felder ausf�llen. Die Teilnahme in einer h�heren Turnierklasse ist m�glich (bitte angeben), nicht aber ein Start in mehreren Wettbewerben.</p>
<form name="blub" method="post" action="anmeldung-sonntag.php">
<table><tr>
	<td><label for="vorname">Vorname:</label></td>
	<td><input name="vorname" type="text" id="vorname" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['vorname'].'"/>'.$frm_error['vorname']);?></td>
</tr>
<tr>
	<td><label for="nachname">Nachname:</label></td>
	<td><input name="nachname" type="text" id="nachanme" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['nachname'].'"/>'.$frm_error['nachname']);?></td>
</tr>
<tr>
	<td>Geschlecht:</td>
	<td><select name="geschlecht"><option value="1">Bitte ausw�hlen</option><option value="M"<?php echo(($_POST['geschlecht']=='M'?' selected="selected"':''));?>>m�nnlich</option><option value="W"<?php echo(($_POST['geschlecht']=='W'?' selected="selected"':''));?>>weiblich</option></select><?php echo $frm_error['geschlecht'];?></td>
</tr>
<tr>
	<td><label for="ttr">Quartals-TTR vom 11.08.2015:</label></td>
	<td><input name="ttr" type="text" id="ttr" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['ttr'].'"/>'.$frm_error['ttr']);?></td>
</tr>
<tr>
	<td>Turnierklasse:</td>
	<td><select name="turnierklasse">
	<option>Bitte ausw�hlen</option>
	<?php /*Sonntag*/ $sunfull=($num_sonntag>=$max_sonntag?'full"':'gruen"');?>
	<option value="1" class="<?php echo $sunfull;echo($_POST['turnierklasse']==1?'" selected="selected':'');?>">C-Klasse bis TTR 1450 - Turniertag 2 - Sonntag 13. September 2015</option>
	<option value="2" class="<?php echo $sunfull;echo($_POST['turnierklasse']==2?'" selected="selected':'');?>">B-Klasse bis TTR 1600 - Turniertag 2 - Sonntag 13. September 2015</option>
	<option value="3" class="<?php echo $sunfull;echo($_POST['turnierklasse']==3?'" selected="selected':'');?>">A-Klasse ab TTR 1601 - Turniertag 2 - Sonntag 13. September 2015</option>
	</select><?php echo $frm_error['turnierklasse'];?>
</td></tr>
<?php if($sunfull=='full"'){?><tr><td colspan="2" class="rot" style="text-align:center;font-size:80%;">Hinweis: eine oder mehrere Turnierklassen sind derzeit belegt, Anmeldung f�r die gew�nschte Turnierklasse ist dennoch unter Vorbehalt m�glich!</td></tr><?php }?>
<tr><td colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;<input name="turnierklasse_ex" type="checkbox" id="turnierklasse_ex" value="1"<?php echo(intval($_POST['turnierklasse_ex'])?' checked="checked"':'');?>/> <label for="turnierklasse_ex">Ich habe mich freiwillig eine Klasse h�her gemeldet</label></td></tr>
<tr>
	<td><label for="email">E-Mail*:</label></td>
	<td><input name="email" type="text" id="email" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['email'].'"/>'.$frm_error['email']);?></td>
</tr>
<tr>
	<td><label for="email_alt">E-Mail 2 (optional):</label></td>
	<td><input name="email_alt" type="text" id="email_alt" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['email_alt'].'"/>'.$frm_error['email_alt']);?></td>
</tr>
<tr>
	<td><label for="geburtsjahr">Geburtsjahr:</label></td>
	<td><input name="geburtsjahr" type="text" id="geburtsjahr" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['geburtsjahr'].'"/>'.$frm_error['geburtsjahr']);?></td>
</tr>
<tr>
	<td><label for="verein">Verein:</label></td>
	<td><input name="verein" type="text" id="verein" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['verein'].'"/>'.$frm_error['verein']);?></td>
</tr>
<tr>
	<td valign="top"><label for="email">Anmerkung:</label></td>
	<td><textarea name="eintrag" cols="70" rows="7" id="eintrag" class="eingabe"><?php echo($_POST['eintrag']);?></textarea></td>
</tr>
</table><p><input type="submit" value="Anmeldung abschlie�en"/></form></p><?php
}
?>
*Die Angabe der E-Mail-Adresse ist von N�ten, da wir an diese Adresse die Best�tigungsemail verschicken. 		
				
				
				
				
			    <div class="clear"></div>
					
		    </div>
		    <!-- Ende Linker Inhalt -->
			
<?php
//include des rechten Bereiches
include("include/rechter-inhalt.php");
//include Ende des ganzen Inhaltes
include("include/ende-ganzer-inhalt.php");
//include Fuss
include("include/fuss.php");
//include Ende
include("include/ende.php");
?>
Gruß Tobi

24.03.2015 13:05

2 Jörg Kruse

Auf Github findet sich auch ein einfaches Beispiel:

https://github.com/PHPMailer/PHPMailer#a-simple-example

Als erstes musst die PHPMailerAutoload.php mit require oder include einbinden.

Statt eine Mail mit mail() zu versenden, bildest du (jeweils) ein Objekt $mail

$mail = new PHPMailer;

Im folgenden konfigurierst du das Objekt. Notwendig sind wohl v.a. Angaben für $mail->From, $mail->addAddress(), $mail->Subject und $mail->Body; dei übrigen sind mehr oder weniger optional

Abschließend versendest du die Mail mit mail->send()

Ich würde erstmal in einer separaten PHP-Datei den Versand einer Mail testen, und sobald alles zufriedenstellend läuft, kannst du dies in dein Script einbauen

Im Netz finden sich auch Tutorials auf deutsch, z.B.:

http://www.tanmar.info/content/view/36/64/

24.03.2015 14:40 | geändert: 24.03.2015 14:42

3 tobi

Hallo,

ich habe nun am Anfang meines Scriptes folgendes eingebaut:
<?php
//include des Kopfbereiches
include("include/kopf.php");
//include der Navigation
include("include/navigation.php");
//include Anfang des ganzen Inhaltes
include("include/anfang-ganzer-inhalt.php");
?>

<?php
//include des PHPMailer
require 'PHPMailer-master/PHPMailerAutoload.php';

$mail = new PHPMailer;
?>

<?php
//Zugangsdaten SMTP
$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'meinhostname';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'meinbenutzer';                 // SMTP username
$mail->Password = 'meinpasswort';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to
?>

	 
		    <!-- Anfang Linker Inhalt -->
		    <div id="linkerinhalt">
				<h1>Anmeldung</h1>	 
				<p>f�r den Turniertag 2, Sonntag den 13.09.2015</p>
weiter unten im php Script habe ich dann:
//Maildaten
$mail->From = 'meineMailadresse';
$mail->FromName = 'meinName';
$mail->addAddress('$_POST['email']', '.$_POST['vorname'].' '.$_POST['nachname'].');     // Add a recipient
$mail->addReplyTo('meineMailadresse', 'meinName');
eingefügt.
Leider erhalte ich nun eine weiße Seite und keinerlei Fehlermeldung.

26.03.2015 12:52

4 Jörg Kruse

Leider erhalte ich nun eine weiße Seite und keinerlei Fehlermeldung.

Error Reporting nicht aktiviert? Füg mal die beiden markierten Zeilen an den Anfang der Datei:

<?php

ini_set('display_errors', 1); 
error_reporting(E_ALL);

/* übriger Code */

?>

26.03.2015 15:46 | geändert: 26.03.2015 15:52

5 tobi

Error Reporting ist aktiv, bringt aber diesbzgl. keine Fehlermeldung. Ich bin etwas ratlos ...

27.03.2015 08:39

6 Jörg Kruse

Wird in der Quelltextanzeige des Browsers etwas angezeigt?

Vielleicht wurden auch keine PHP-Fehler erzeugt. Merkwürdig ist dann natürlich, dass der Inhalt nicht angezeigt wird.

Allerdings ist der HTML-Code schon ziemlich kaputt:

		    <!-- Anfang Linker Inhalt -->
		    <div id="linkerinhalt">
				<h1>Anmeldung</h1>	 
				<p>für den Turniertag 2, Sonntag den 13.09.2015</p>
				
<!doctype html>

Zuerst kommt die Doctype-Angabe, dann der Head und dann der Body mit dem Inhalt, siehe auch:

http://wiki.selfhtml.org/wiki/HTML/Dokumentstruktur_und_Aufbau

Davon abgesehen musst du am Ende die Mail auch noch versenden, und dabei kannst du auch noch eine etwaige Fehlermeldung von $mail ausgeben lassen:

if (! $mail->Send()) {                                                            
     echo "Fehler: " . $mail->ErrorInfo;                                           
} else {                                                                           
     echo "Die Email wurde versandt.";                                             
}

27.03.2015 09:08

7 tobi

Ich bin nun schon etwas weiter. Schritt für Schritt kommt man evtl. ans Ziel ;)

Ich habe in dem Formular ein Limit bei 192 gesetzt. Alles was bis 192 das Formluar ausfüllt, soll Text A angezeigt bekommen, alles was nach 192 kommt, Text B.

Aktuell ist die Datenbank mit über 200 befüllt und es müßte demnach Text B erscheinen. Wenn ich dies versuche im Subject um zu setzen, gelinkt mir dies aber nicht und es kommt nur Bestätigung. Eigentlich sollte Warteliste erscheinen.

  //Betreff der Email setzen
  $mail->Subject = 'Bestätigung der Anmeldung' if($altSignUp) 'Warteliste - Bestätigung der Daten';

EDIT: muss wohl so aussehen:
//Betreff der Email setzen
$subject='Bestätigung der Anmeldung';
if($altSignUp) $subject='Warteliste - übermittelte Daten';

$mail->Subject = $subject;

28.03.2015 18:46 | geändert: 28.03.2015 18:55

8 tobi

ich habe nun Schwierigkeiten dies zu platzieren, irgendeine Idee?

	      	$today=date('l; d.m.Y H:i:s');
			$to=$_POST['email'];
			$subject='Bestätigung der Anmeldung';
			if($altSignUp) $subject='Warteliste - Bestätigung der Daten';
			$text='Hallo '.$_POST['vorname'].' '.$_POST['nachname'].',
			
soeben ('.$today.') ist Ihre ';
			if(!$altSignUp)
				$text.='Anmeldung bei uns eingegangen.
				
Hier als Best�tigung und zur Überprüfung die angegebenen Daten:';
			else
				$text.='Anfrage zu einer Turnierteilnahme bei uns eingegangen.
Aktuell ist die Teilnehmergrenze in Ihrem gemeldeten Wettbewerb überschritten und wir k�nnen Ihre Anfrage aktuell noch nicht bestätigen. Erfahrungsgemäß sagen aber kurz vor Turnierbeginn noch der ein oder andere Spieler ab. In einem solchen Fall würden wir dich dann umgehend kontaktieren.
Hier zur Überprüfung die angegebenen Daten:';
Vorname: '.$_POST['vorname'].'
Nachname: '.$_POST['nachname'].'

angefangen habe ich mal so:
		//Text der EMail setzen
		$today_Wochentag=date('l');
		$today_Datum=date('d.m.Y');
		$today_Uhrzeit=date('H:i');
		
		$text= "
		Hallo {$_POST['vorname']} {$_POST['nachname']},
		
		am {$today_Wochentag} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine ';";

		Übermittelte Daten:
		Vorname: {$_POST['vorname']}
		Nachname: {$_POST['nachname']}	";

		$mail->Body = $text;

Den ersten Teil bekomme ich eingebaut, aber den Bereich hier klappt nicht
if(!$altSignUp)
				$text.='Anmeldung bei uns eingegangen. ........

28.03.2015 19:10

9 Jörg Kruse

				$text.='Anfrage zu einer Turnierteilnahme bei uns eingegangen.
Aktuell ist die Teilnehmergrenze in Ihrem gemeldeten Wettbewerb überschritten und wir k�nnen Ihre Anfrage aktuell noch nicht bestätigen. Erfahrungsgemäß sagen aber kurz vor Turnierbeginn noch der ein oder andere Spieler ab. In einem solchen Fall würden wir dich dann umgehend kontaktieren.
Hier zur Überprüfung die angegebenen Daten:';
Vorname: '.$_POST['vorname'].'
Nachname: '.$_POST['nachname'].

Hier ist das '; der vorvorletzten Zeile fehl am Platz - denn dadurch endet der String, der $text angefügt wird. Die folgenden beiden Zeilen müssten einen Syntax-Fehler erzeugen.

Verwendest du einen Editor mit Syntax-Highlighting? mit einem solchen werden derartige Fehler farblich sichtbar.

28.03.2015 19:30

10 tobi

ich bekomme schon wieder eine weiße Seite :(

ich glaube ich habe in $text ein Fehler drinne, komme aber nicht darauf. Kannst du mal schauen?

//Bestätigungsemail an den Anmeldenden
		
		//Betreff in der E-Mail ermitteln, je nach Teilnehmeranzahl
		$subject='Bestätigung der Anmeldung zum PPC 18';
			if($altSignUp) $subject='Warteliste - PPC 18';	

		//Zeit ermittelt an dem das Formular ausgefüllt wurde
		$today_Wochentag=date('l');
		$today_Datum=date('d.m.Y');
		$today_Uhrzeit=date('H:i');
		
		//Anmeldung oder Anfrage ausgegeben, je nach Teilnehmeranzahl
		$anmeldung_oder_warteliste='Anmeldung';
			if($altSignUp) $anmeldung_oder_warteliste='Anfrage';	

		//Text ermitteln, je nach Teilnehmeranzahl
		$text='Hallo {$_POST['vorname']} {$_POST['nachname']},
				am {$today_Wochentag} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine {$anmeldung_oder_warteliste} bei uns eingegangen.
				An die Turnierleitung wurden folgende Angaben übermittelt:
				Vorname: {$_POST['vorname']}
				Nachname: {$_POST['nachname']}
				Q-TTR 11.08.2015: {$_POST['ttr']}
				Angemeldete Turnierklasse samt Turniertag: {$turnierklassestr(intval($_POST['turnierklasse_ex'])?' (freiwillig eine Klasse höher)':'}'
				Verein: {$_POST['verein']}				
				Startgebühr: {$startgeld}
				Vorkasse: {$vorkasse}

				Für eine schnellere Abwicklung beim Turnier gibt es die Möglichkeit per Vorkasse bis zum 10.09.2015 (Geldeingang) die Startgebühür zu überweisen.
				Kontodaten:
				Musterhausen
				KTO: 
				BLZ: 
				kasse
				Betrag: {$vorkasse}
				Verwendungszweck: PPC 2015, {$_POST['nachname']}, {$_POST['vorname']}, {$turnierklasse}, {$_POST['verein']}';
			if($altSignUp) $text='Hallo {$_POST['vorname']} {$_POST['nachname']},
									am {$today_Wochentag} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine {$anmeldung_oder_warteliste} bei uns eingegangen.
									Aktuell ist die Teilnehmergrenze in deinem gemeldeten Wettbewerb überschritten und wir können deine Anfrage aktuell leider noch nicht bestätigen. Erfahrungsgemäß sagen aber kurz vor Turnierbeginn noch der ein oder andere Spieler/in ab. In einem solchen Fall würden wir dann umgehend mit dir Kontakt aufnehmen.
									An die Turnierleitung wurden folgende Angaben übermittelt:
									Vorname: {$_POST['vorname']}
									Nachname: {$_POST['nachname']}
									Q-TTR 11.08.2015: {$_POST['ttr']}
									Angemeldete Turnierklasse samt Turniertag: {$turnierklassestr(intval($_POST['turnierklasse_ex'])?' (freiwillig eine Klasse höher)':'}'
									Verein: {$_POST['verein']}';			
		
		//UTF-8 Kodierung festlegen
		$mail->CharSet  =  "utf-8"; 
		
		//Absenderadresse der Email setzen
		$mail->setFrom($_POST['email'], $_POST['vorname'].' '.$_POST['nachname']);
		$mail->addReplyTo($_POST['email'], $_POST['vorname'].' '.$_POST['nachname']);
  
		//Name des Abenders setzen
		$mail->FromName = ($_POST['vorname'].' '.$_POST['nachname']);
  
		//Empfängeradresse setzen
		$mail->AddAddress("meine@meine.de");
  
		//Betreff der Email setzen
		$mail->Subject = $subject;
 
		//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 "Die Email wurde versandt.";
  }

28.03.2015 19:49