1
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:
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 [at] test [Punkt] 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"> <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