Zur Navigation

Normales Formular

1 tobi

Hi,

ich habe nun versucht aus einem anderen Formular von mir ein neues zu erstellen. In das Formular sollte: Vorname, Nachname, Geschlecht, Geburtsjahr, Quartals-TTR, Anzahl Einzel, PPC-Turnierklasse, eMail, Verein, Verband, Bezirk, Altersklasse, Spielklasse, Position, Anmerkung drin sein.
Geschlecht, PPC-Turnierklasse und Altersklasse Auswahlfeldern.
Quartals-TTR und Anzah Einzel sind freiweilige Felder.

Ich habe mein bestmöglichstes versucht.
Aktuell wird mir aber nicht das Forumular angezeigt, sondern nur der anfängliche Text.


<!doctype html>
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>Anmeldung</title>
<style type="text/css">
.rot{color:#FF0000;}
.gruen{color:#009900;}
.blau{color:#0000FF;}
</style>
</head>
<body>
<?php
error_reporting(E_ALL);
include_once 'database.php.inc';

?><h1>Anmeldung</h1>
<p>Bitte jetzt folgende Felder aufüllen. Die Teilnahme in einer höheren Turnierklasse ist möglich, nicht aber ein Start in mehreren Wettbewerben</p>
<?php

if(!empty($_POST['email']))
{
   $today=date('l; d.m.Y H:i:s');
   {
      //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 oder w]$/','Bitte Geschlecht eintragen (m (für männlich) oder w (für weiblich))'),array('geburtsjahr','/^(19|20)\d\d$/','Bitte gültiges Geburtsjahr eintragen (z.B. 1967)'),'verein','verband','bezirk','altersklasse','spielklasse','spielposition',array('turnierklasse','/^[1-5]$/','Bitte gültige Turnierklasse auswählen!'));
      $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(empty($_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']='';
         $_POST['ttr']='';
         $_POST['anzahlEinzel']='';
         $_POST['turnierklasse']=intval($_POST['turnierklasse']);
      //end POST form check
      if($show_form)
      {
         //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
         if($_POST['turnierklasse']=='')
         {
            if($row['altersklasse']=='Herren' or $row['altersklasse']=='Damen')
            {
               if($row['ttr']>1601)
                  $_POST['turnierklasse']=5;
               elseif($row['ttr']>1451)
                  $_POST['turnierklasse']=4;
               elseif($row['ttr']>1350)
                  $_POST['turnierklasse']=3;
               else
                  $_POST['turnierklasse']=2;
            } else
               $_POST['turnierklasse']=1;
         } else
            $_POST['turnierklasse']=intval($_POST['turnierklasse']);
 
         //Formular für Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.
         ?>
   
<form name="blub" method="post" action="test.php">
<table><tr>
<td align="left"><label for="vorname">Vorname:</label></td>
<td align="left"><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 align="left"><label for="nachname">Nachname:</label></td>
<td align="left"><input name="nachname" type="text" id="nachanme" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['nachname'].'"/>'.$frm_error['nachname']);?></td>
</tr>
<td align="left">Geschlecht:</td>
<td align="left"><select name="geschlecht">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['geschlecht']==1?' selected=selected':''));?>>männlich</option><option value="3"<?php echo(($_POST['geschlecht']==2?' selected=selected':''));?>>weiblich</option></select>
</td></tr>
<tr>
<td align="left"><label for="geschlecht">Geschlecht:</label></td>
<td align="left"><input name="geschlecht" type="text" id="geschlecht" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['geschlecht'].'"/>'.$frm_error['geschlecht']);?></td>
</tr>
<tr>
<td align="left"><label for="ttr">Quartals-TTR:</label></td>
<td align="left"><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 align="left"><label for="anzahlEinzel">Anzahl Einzel:</label></td>
<td align="left"><input name="anzahlEinzel" type="text" id="anzahlEinzel" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['anzahlEinzel'].'"/>'.$frm_error['anzahlEinzel']);?></td>
</tr>
<tr>
<td align="left">Turnierklasse:</td>
<td align="left"><select name="turnierklasse">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['turnierklasse']==1?' selected=selected':''));?>>Jugend - Turniertag 1 - Samstag 10. September 2011</option><option value="3"<?php echo(($_POST['turnierklasse']==2?' selected=selected':''));?>>D-Klasse - Turniertag 1 - Samstag 11. September 2011</option><option value="4"<?php echo(($_POST['turnierklasse']==3?' selected=selected':''));?>>C-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="5"<?php echo(($_POST['turnierklasse']==4?' selected=selected':''));?>>B-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="6"<?php echo(($_POST['turnierklasse']==5?' selected=selected':''));?>>A-Klasse - Turniertag 2 - Sonntag 11. September 2011</option></select>
</td></tr>
<tr>
<td align="left"><label for="email">E-Mail:</label></td>
<td align="left"><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 align="left"><label for="geburtsjahr">Geburtsjahr:</label></td>
<td align="left"><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 align="left"><label for="verein">Verein:</label></td>
<td align="left"><input name="verein" type="text" id="verein" size="70" maxlength="50" class="eingabe" value="<?php echo(($_POST['verein']==''?$row['verein']:$_POST['verein']).'"/>'.$frm_error['verein']);?></td>
</tr>
<tr>
<td align="left"><label for="verband">Verband:</label></td>
<td align="left"><input name="verband" type="text" id="verband" size="70" maxlength="50" class="eingabe" value="<?php echo(($_POST['verband']==''?$row['verband']:$_POST['verband']).'"/>'.$frm_error['verband']);?></td>
</tr>
<tr>
<td align="left"><label for="bezirk">Bezirk:</label></td>
<td align="left"><input name="bezirk" type="text" id="bezirk" size="70" maxlength="50" class="eingabe" value="<?php echo(($_POST['bezirk']==''?$row['bezirk']:$_POST['bezirk']).'"/>'.$frm_error['bezirk']);?></td>
</tr>
<tr>
<td align="left">Altersklasse:</td>
<td align="left"><select name="altersklasseklasse">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['altersklasse']==1?' selected=selected':''));?>>Herren</option><option value="3"<?php echo(($_POST['altersklasse']==2?' selected=selected':''));?>>Damen</option><option value="4"<?php echo(($_POST['altersklasse']==3?' selected=selected':''));?>>Jugend</option><option value="5"<?php echo(($_POST['altesrklasse']==4?' selected=selected':''));?>>B-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="6"<?php echo(($_POST['turnierklasse']==5?' selected=selected':''));?>>Schüler</option></select>
</td></tr>
<tr>
<td align="left"><label for="spielklasse">Spielklasse:</label></td>
<td align="left"><input name="spielklasse" type="text" id="spielklasse" size="70" maxlength="50" class="eingabe" value="<?php echo(($_POST['spielklasse']==''?$row['spielklasse']:$_POST['spielklasse']).'"/>'.$frm_error['spielklasse']);?></td>
</tr>
<tr>
<td align="left"><label for="spielposition">Spielerposition:</label></td>
<td align="left"><input name="spielposition" type="text" id="spielposition" size="70" maxlength="50" class="eingabe" value="<?php echo(($_POST['spielposition']==''?$row['spielposition']:$_POST['spielposition']).'"/>'.$frm_error['spielposition']);?></td>
</tr>
<tr>
<td align="left" valign="top"><label for="email">Anmerkung:</label></td>
<td align="left"><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
      } else {
         $_POST['geschlecht']=intval($_POST['geschlecht']);
         $geschlechtstr='';
         switch($_POST['geschlecht']) {
            case 1:
               $geschlechtstr='m';break;
            case 2:
               $geschlechtstr='w';break;
         }
         $_POST['turnierklasse']=intval($_POST['turnierklasse']);
         $turnierklassestr='';
         switch($_POST['turnierklasse']) {
            case 1:
               $turnierklassestr='Jugend - Samstag 10. September 2011';break;
            case 2:
               $turnierklassestr='D-Klasse - Samstag 10. September 2011';break;
            case 3:
               $turnierklassestr='C-Klasse - Sonntag 11. September 2011';break;
            case 4:
               $turnierklassestr='B-Klasse - Sonntag 11. September 2011';break;
            case 5:
               $turnierklassestr='A-Klasse - Sonntag 11. September 2011';break;
         }
         $_POST['altersklasse']=intval($_POST['altersklasse']);
         $altersklassestr='';
         switch($_POST['altersklasse']) {
            case 1:
               $altersklassestr='Herren';break;
            case 2:
               $altersklassestr='Damen';break;
            case 3:
               $altersklassestr='Jugend';break;
            case 4:
               $altersklassestr='Schüler';break;
         }
         //wenn die mail adresse vorhanden ist wird das ausgeführt :)
         $mysql_query='
INSERT INTO `anmeldungen`
   (`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `anzahlEinzel`, `email`, `verein`, `verband`, `bezirk`, `altersklasse`, `spielklasse`, `spielposition`, `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['anzahlEinzel']).'", "'. mysql_real_escape_string($_POST['email']).'", "'.mysql_real_escape_string($_POST['verein']).'", "'.mysql_real_escape_string($_POST['verband']).'", "'.mysql_real_escape_string($_POST['bezirk']).'", "'.mysql_real_escape_string($_POST['altersklasse']).'", "'.mysql_real_escape_string($_POST['spielklasse']).'", "'.mysql_real_escape_string($_POST['spielposition']).'", "'.$_POST['turnierklasse'].'","'.mysql_real_escape_string($_POST['eintrag']).'", NOW())';
         $result=mysql_query($mysql_query);
         if($result)
         {
            //Bestätigungsemail an den Anmeldenden
            $to=$_POST['email'];
            $subject='Bestätigung der Anmeldung zum PPC 2011';
            $text='<p>Hallo '.$row['vorname'].' '.$row['nachname'].',</p>
               <p>soeben ('.$today.') ist Ihre Anmeldung zum Test 2011 bei uns eingegangen.</p>
               <p>Hier als Bestätigung und zur Überprüfung die angegebenen Daten.</p>
               <p>Vorname: '.$row['vorname'].'<br/>
               Nachname: '.$row['nachname'].'<br/>
               Geschlecht: '.$row['geschlecht'].'<br/>
               Geburtsjahr: '.$_POST['geburtsjahr'].'<br/>
               Kontakt-E-Mail: '.$_POST['email'].'<br/>
               Quartals-TTR: '.$row['ttr'].'<br/>
               Anzahl Einzel: '.$row['anzahlEinzel'].'<br/>
               Angemeldete Turnierklasse samt Turniertag: '.$turnierklassestr.'<br/>
               Verein: '.$_POST['verein'].'<br/>
               Verband: '.$_POST['verband'].'<br/>
               Bezirk: '.$_POST['bezirk'].'<br/>
               Altersklasse: '.$_POST['altersklasse'].'<br/>
               Spielklasse 11/12: '.$_POST['spielklasse'].'<br/>
               Spielerposition: '.$_POST['spielposition'].'<br/>
               Bemerkung: '.$_POST['eintrag'].'</p>
               <p>Hinweis:<br />
                              Die Teilnehmer des Turniers werden zeitnah auf der Homepage veröffentlicht<br />
               Die Teilnehmer des A-Klassen-Wettbewerbes: http://test.de/teilnehmer-a-klasse.php<br />
               Die Teilnehmer des B-Klassen-Wettbewerbes: http://test.de/teilnehmer-b-klasse.php<br />
               Die Teilnehmer des C-Klassen-Wettbewerbes: http://test.de/teilnehmer-c-klasse.php<br />
               Die Teilnehmer des D-Klassen-Wettbewerbes: http://test.de/teilnehmer-d-klasse.php<br />
               Die Teilnehmer des Jugend-Wettbewerbes: http://test.de/teilnehmer-jugend.php</p>
               <p>Falls eine Teilnahme - aus welchen Gründen auch immer - nicht erfolgen kann, bitte um Abmeldung über folgenden Link: http://test.de/ppc2011Abmeldung.php der via E-mail: test@test.de</p>
               <p>Vielen Dank!</p>
               <p>Mit freundlichen Grüßen<br />
               test</p>';
            $from='From: test - PPC 2011<test@test.de>'."\r\n";
            $from.='Reply-To: test - PPC 2011<test@test.de>'."\r\n";
            $from.='MIME-Version: 1.0'."\r\n";
            $from.='Content-Type: text/html; charset=UTF-8'."\r\n";
            if(mail($to,'=?UTF-8?B?'.base64_encode($subject).'?=',$text,$from))
            {
               //Mail an die Turnierleitung
               $to='blub@blub.de';
               $subject='Neue Anmeldung zum PPC 2011';
               $text='<p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>
                  <p>soeben ('.$today.') gab es eine neue Anmeldung zu unserem PPC 2011.</p>
                  <p>Hier angegebenen Daten.</p>
                  <p>Vorname: '.$row['vorname'].'<br/>
                  Nachname: '.$row['nachname'].'<br/>
                  Geschlecht: '.$row['geschlecht'].'<br/>
                  Geburtsjahr: '.$_POST['geburtsjahr'].'<br/>
                  Kontakt-E-Mail: '.$_POST['email'].'<br/>
                  Quartals-TTR: '.$row['ttr'].'<br/>
                  Anzahl Einzel: '.$row['anzahlEinzel'].'<br/>
                  Angemeldete Turnierklasse: '.$turnierklassestr.'<br/>
                  Verein: '.$_POST['verein'].'<br/>
                  Verband: '.$_POST['verband'].'<br/>
                  Bezirk: '.$_POST['bezirk'].'<br/>
                  Altersklasse: '.$_POST['altersklasse'].'<br/>
                  Spielklasse 11/12: '.$_POST['spielklasse'].'<br/>
                  Spielerposition: '.$_POST['spielposition'].'<br/>
                  Bemerkung: '.$_POST['eintrag'].'</p>';
               $from='From: "'.$row['vorname'].' '.$row['nachname'].'" <'.$_POST['email'].'>'."\r\n";
               $from.='MIME-Version: 1.0'."\r\n";
               $from.='Content-Type: text/html; charset=UTF-8'."\r\n";
               if(mail($to,$subject,$text,$from))
               {
                  ?><p><span class="gruen"><b>Die Anmeldung zum PPC 2011 ist bei uns eingegangen!<br/>In Ihrem Postfach befindet sich eine Bestätigung der 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="test Homepage">zur Webseite des test</a></p><?php
               } else {
                  echo 'Anmeldung erfolgreich. Probleme mit Mailversand.';
               }
            } else {
               ?><p><span class="rot"><b>Die Anmeldung zum PPC 2011 ist Fehlgeschlagen!<br/>Leider trat beim Mailversand ein unerwartetes Problem auf.</b></span></p><?php
            }
         } else {
            die('<b>MySQL Error:</b><div class="rot">'.mysql_error().'</div>');
         }
      }
   }
}
?>
</body>
</html>

12.06.2011 21:25 | geändert: 12.06.2011 21:27

2 Jörg

Aktuell wird mir aber nicht das Forumular angezeigt, sondern nur der anfängliche Text.

Ja, weil das Formular innerhalb von "if(!empty($_POST['email'])) { ... }" ausgegeben wird - also nur dann, wenn $_POST['email'] nicht leer ist.

12.06.2011 23:15

3 tobi


<!doctype html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>Anmeldung</title>
<style type="text/css">
.rot{color:#FF0000;}
.gruen{color:#009900;}
.blau{color:#0000FF;}
</style>
</head>
<body>
<?php
error_reporting(E_ALL);
include_once 'database.php.inc';

?><h1>Anmeldung</h1>
<p>Bitte jetzt folgende Felder aufüllen. Die Teilnahme in einer höheren Turnierklasse ist möglich, nicht aber ein Start in mehreren Wettbewerben.<br/>
D-Klasse: bis 1350 TTR Punkte<br/>
C-Klasse: bis 1450 TTR-Punkte<br/>
B-Klasse: bis 1600 TTR-Punkte<br/>
A-Klasse: ab 1601 TTR-Punkte</p>
<?php

if(!empty($_POST['email']))
//{
	$today=date('l; d.m.Y H:i:s');
	{
		//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 oder w]$/','Bitte Geschlecht eintragen (m (für männlich) oder w (für weiblich))'),array('geburtsjahr','/^(19|20)\d\d$/','Bitte gültiges Geburtsjahr eintragen (z.B. 1967)'),'verein','verband','bezirk','altersklasse','spielklasse','spielposition',array('turnierklasse','/^[1-5]$/','Bitte gültige Turnierklasse auswählen!'));
		$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(empty($_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']='';
			$_POST['ttr']='';
			$_POST['anzahlEinzel']='';
			$_POST['turnierklasse']=intval($_POST['turnierklasse']);
		//end POST form check
		if($show_form)
		{
			//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
						if($_POST['turnierklasse']=='')
			{
				$_POST['turnierklasse']=intval($_POST['turnierklasse']);
			}
			
			if($_POST['altersklasse']=='')
			{
				$_POST['altersklasse']=intval($_POST['altersklasse']);
			}
			
			if($_POST['geschlecht']=='')
			{
				$_POST['geschlecht']=intval($_POST['geschlecht']);
			}
  
			//Formular für Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.
			?>
	
<form name="blub" method="post" action="test.php">
<table><tr>
<td align="left"><label for="vorname">Vorname:</label></td>
<td align="left"><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 align="left"><label for="nachname">Nachname:</label></td>
<td align="left"><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 align="left">Geschlecht:</td>
<td align="left"><select name="geschlecht">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['geschlecht']==1?' selected=selected':''));?>>männlich</option><option value="3"<?php echo(($_POST['geschlecht']==2?' selected=selected':''));?>>weiblich</option></select>
</td></tr>
<tr>
<td align="left"><label for="ttr">Quartals-TTR:</label></td>
<td align="left"><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 align="left"><label for="anzahlEinzel">Anzahl Einzel:</label></td>
<td align="left"><input name="anzahlEinzel" type="text" id="anzahlEinzel" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['anzahlEinzel'].'"/>'.$frm_error['anzahlEinzel']);?></td>
</tr>
<tr>
<td align="left">Turnierklasse:</td>
<td align="left"><select name="turnierklasse">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['turnierklasse']==1?' selected=selected':''));?>>Jugend - Turniertag 1 - Samstag 10. September 2011</option><option value="3"<?php echo(($_POST['turnierklasse']==2?' selected=selected':''));?>>D-Klasse - Turniertag 1 - Samstag 11. September 2011</option><option value="4"<?php echo(($_POST['turnierklasse']==3?' selected=selected':''));?>>C-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="5"<?php echo(($_POST['turnierklasse']==4?' selected=selected':''));?>>B-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="6"<?php echo(($_POST['turnierklasse']==5?' selected=selected':''));?>>A-Klasse - Turniertag 2 - Sonntag 11. September 2011</option></select>
</td></tr>
<tr>
<td align="left"><label for="email">E-Mail:</label></td>
<td align="left"><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 align="left"><label for="geburtsjahr">Geburtsjahr:</label></td>
<td align="left"><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 align="left"><label for="verein">Verein:</label></td>
<td align="left"><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 align="left"><label for="verband">Verband:</label></td>
<td align="left"><input name="verband" type="text" id="verband" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['verband'].'"/>'.$frm_error['verband']);?></td>
</tr>
<tr>
<td align="left"><label for="bezirk">Bezirk:</label></td>
<td align="left"><input name="bezirk" type="text" id="bezirk" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['bezirk'].'"/>'.$frm_error['bezirk']);?></td>
</tr>
<tr>
<td align="left">Altersklasse:</td>
<td align="left"><select name="altersklasse">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['altersklasse']==1?' selected=selected':''));?>>Herren</option><option value="3"<?php echo(($_POST['altersklasse']==2?' selected=selected':''));?>>Damen</option><option value="4"<?php echo(($_POST['altersklasse']==3?' selected=selected':''));?>>Jugend</option><option value="5"<?php echo(($_POST['altersklasse']==4?' selected=selected':''));?>>Schüler</option></select>
</td></tr>
<tr>
<td align="left"><label for="spielklasse">Spielklasse:</label></td>
<td align="left"><input name="spielklasse" type="text" id="spielklasse" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['spielklasse'].'"/>'.$frm_error['spielklasse']);?></td>
</tr>
<tr>
<td align="left"><label for="spielposition">Spielerposition:</label></td>
<td align="left"><input name="spielposition" type="text" id="spielposition" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['spielposition'].'"/>'.$frm_error['spielposition']);?></td>
</tr>
<tr>
<td align="left" valign="top"><label for="email">Anmerkung:</label></td>
<td align="left"><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
		} else {
			$_POST['geschlecht']=intval($_POST['geschlecht']);
			$geschlechtstr='';
			switch($_POST['geschlecht']) {
				case 1:
					$geschlechtstr='m';break;
				case 2:
					$geschlechtstr='w';break;
			}
			$_POST['turnierklasse']=intval($_POST['turnierklasse']);
			$turnierklassestr='';
			switch($_POST['turnierklasse']) {
				case 1:
					$turnierklassestr='Jugend - Samstag 10. September 2011';break;
				case 2:
					$turnierklassestr='D-Klasse - Samstag 10. September 2011';break;
				case 3:
					$turnierklassestr='C-Klasse - Sonntag 11. September 2011';break;
				case 4:
					$turnierklassestr='B-Klasse - Sonntag 11. September 2011';break;
				case 5:
					$turnierklassestr='A-Klasse - Sonntag 11. September 2011';break;
			}
			$_POST['altersklasse']=intval($_POST['altersklasse']);
			$altersklassestr='';
			switch($_POST['altersklasse']) {
				case 1:
					$altersklassestr='Herren';break;
				case 2:
					$altersklassestr='Damen';break;
				case 3:
					$altersklassestr='Jugend';break;
				case 4:
					$altersklassestr='Schüler';break;
			}
			//wenn die mail adresse vorhanden ist wird das ausgeführt :)
			$mysql_query='
INSERT INTO `anmeldungen`
	(`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `anzahlEinzel`, `email`, `verein`, `verband`, `bezirk`, `altersklasse`, `spielklasse`, `spielposition`, `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['anzahlEinzel']).'", "'. mysql_real_escape_string($_POST['email']).'", "'.mysql_real_escape_string($_POST['verein']).'", "'.mysql_real_escape_string($_POST['verband']).'", "'.mysql_real_escape_string($_POST['bezirk']).'", "'.mysql_real_escape_string($_POST['altersklasse']).'", "'.mysql_real_escape_string($_POST['spielklasse']).'", "'.mysql_real_escape_string($_POST['spielposition']).'", "'.$_POST['turnierklasse'].'","'.mysql_real_escape_string($_POST['eintrag']).'", NOW())';
			$result=mysql_query($mysql_query);
			if($result)
			{
				//Bestätigungsemail an den Anmeldenden
				$to=$_POST['email'];
				$subject='Bestätigung der Anmeldung zum PPC 2011';
				$text='<p>Hallo '.$_POST['vorname'].' '.$_POST['nachname'].',</p>
					<p>soeben ('.$today.') ist Ihre Anmeldung zum Test 2011 bei uns eingegangen.</p>
					<p>Hier als Bestätigung und zur Überprüfung die angegebenen Daten.</p>
					<p>Vorname: '.$_POST['vorname'].'<br/>
					Nachname: '.$_POST['nachname'].'<br/>
					Geschlecht: '.$geschlechtstr.'<br/>
					Geburtsjahr: '.$_POST['geburtsjahr'].'<br/>
					Kontakt-E-Mail: '.$_POST['email'].'<br/>
					Quartals-TTR: '.$_POST['ttr'].'<br/>
					Anzahl Einzel: '.$_POST['anzahlEinzel'].'<br/>
					Angemeldete Turnierklasse samt Turniertag: '.$turnierklassestr.'<br/>
					Verein: '.$_POST['verein'].'<br/>
					Verband: '.$_POST['verband'].'<br/>
					Bezirk: '.$_POST['bezirk'].'<br/>
					Altersklasse: '.$altersklassestr.'<br/>
					Spielklasse 11/12: '.$_POST['spielklasse'].'<br/>
					Spielerposition: '.$_POST['spielposition'].'<br/>
					Bemerkung: '.$_POST['eintrag'].'</p>
               <p>Hinweis:<br />
                              Die Teilnehmer des Turniers werden zeitnah auf der Homepage veröffentlicht<br />
               Die Teilnehmer des A-Klassen-Wettbewerbes: http://test.de/teilnehmer-a-klasse.php<br />
               Die Teilnehmer des B-Klassen-Wettbewerbes: http://test.de/teilnehmer-b-klasse.php<br />
               Die Teilnehmer des C-Klassen-Wettbewerbes: http://test.de/teilnehmer-c-klasse.php<br />
               Die Teilnehmer des D-Klassen-Wettbewerbes: http://test.de/teilnehmer-d-klasse.php<br />
               Die Teilnehmer des Jugend-Wettbewerbes: http://test.de/teilnehmer-jugend.php</p>
               <p>Falls eine Teilnahme - aus welchen Gründen auch immer - nicht erfolgen kann, bitte um Abmeldung über folgenden Link: http://test.de/ppc2011Abmeldung.php der via E-mail: test@test.de</p>
               <p>Vielen Dank!</p>
               <p>Mit freundlichen Grüßen<br />
               test</p>';
            $from='From: test - PPC 2011<test@test.de>'."\r\n";
            $from.='Reply-To: test - PPC 2011<test@test.de>'."\r\n";
				$from.='MIME-Version: 1.0'."\r\n";
				$from.='Content-Type: text/html; charset=UTF-8'."\r\n";
				if(mail($to,'=?UTF-8?B?'.base64_encode($subject).'?=',$text,$from))
				{
					//Mail an die Turnierleitung
					$to='test@test.de';
					$subject='Neue Anmeldung zum PPC 2011';
					$text='<p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>
						<p>soeben ('.$today.') gab es eine neue Anmeldung zu unserem PPC 2011.</p>
						<p>Hier angegebenen Daten.</p>
						<p>Vorname: '.$_POST['vorname'].'<br/>
						Nachname: '.$_POST['nachname'].'<br/>
						Geschlecht: '.$geschlechtstr.'<br/>
						Geburtsjahr: '.$_POST['geburtsjahr'].'<br/>
						Kontakt-E-Mail: '.$_POST['email'].'<br/>
						Quartals-TTR: '.$_POST['ttr'].'<br/>
						Anzahl Einzel: '.$_POST['anzahlEinzel'].'<br/>
						Angemeldete Turnierklasse: '.$turnierklassestr.'<br/>
						Verein: '.$_POST['verein'].'<br/>
						Verband: '.$_POST['verband'].'<br/>
						Bezirk: '.$_POST['bezirk'].'<br/>
						Altersklasse: '.$altersklassestr.'<br/>
						Spielklasse 11/12: '.$_POST['spielklasse'].'<br/>
						Spielerposition: '.$_POST['spielposition'].'<br/>
						Bemerkung: '.$_POST['eintrag'].'</p>';
					$from='From: "'.$_POST['vorname'].' '.$_POST['nachname'].'" <'.$_POST['email'].'>'."\r\n";
					$from.='MIME-Version: 1.0'."\r\n";
					$from.='Content-Type: text/html; charset=UTF-8'."\r\n";
					if(mail($to,$subject,$text,$from))
					{
					 ?><p><span class="gruen"><b>Die Anmeldung zum PPC 2011 ist bei uns eingegangen!<br/>In Ihrem Postfach befindet sich eine Bestätigung der 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="test Homepage">zur Webseite des test</a></p><?php

					} else {
						echo 'Anmeldung erfolgreich. Probleme mit Mailversand.';
					}
				} else {
					?><p><span class="rot"><b>Die Anmeldung zum PPC 2011 ist Fehlgeschlagen!<br/>Leider trat beim Mailversand ein unerwartetes Problem auf.</b></span></p><?php
				}
			} else {
				die('<b>MySQL Error:</b><div class="rot">'.mysql_error().'</div>');
			}
		}
	} 
//}
?>
</body>
</html>
ich habs mal auskommentiert und noch etwas verändert.

alle umlaute werden bei mir falsch dargestellt, ich habe überall dies Zeichen.?
ich habe zudem Undefined index: ttr und anzahlEinzel
bitte auswählen soltle bei allen drei feldern zu beginn stehen, dies ist aber nciht bei allen dreien der fall.

12.06.2011 23:47 | geändert: 13.06.2011 00:00

4 tobi

das umlaute problem hab ich nun in griff bekommen, undefined index meldung ist nun auch weg. und das dritt problem auch.
allerdings sind nun die ttr und anzahlEinzel pflichtfelder, dies soll nicht so sein.

<!doctype html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>Anmeldung</title>
<style type="text/css">
.rot{color:#FF0000;}
.gruen{color:#009900;}
.blau{color:#0000FF;}
</style>
</head>
<body>
<?php
error_reporting(E_ALL);
include_once 'database.php.inc';

?><h1>Anmeldung</h1>
<p>Bitte jetzt folgende Felder aufüllen. Die Teilnahme in einer höheren Turnierklasse ist möglich, nicht aber ein Start in mehreren Wettbewerben.<br/>
D-Klasse: bis 1350 TTR Punkte<br/>
C-Klasse: bis 1450 TTR-Punkte<br/>
B-Klasse: bis 1600 TTR-Punkte<br/>
A-Klasse: ab 1601 TTR-Punkte</p>
<?php

if(!empty($_POST['email']))
//{
	$today=date('l; d.m.Y H:i:s');
	{
		//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 oder w]$/','Bitte Geschlecht eintragen (m (für männlich) oder w (für weiblich))'),array('geburtsjahr','/^(19|20)\d\d$/','Bitte gültiges Geburtsjahr eintragen (z.B. 1967)'),'ttr','anzahlEinzel','verein','verband','bezirk','altersklasse','spielklasse','spielposition',array('turnierklasse','/^[1-5]$/','Bitte gültige Turnierklasse auswählen!'));
		$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(empty($_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']='';
			$_POST['ttr']='';
			$_POST['anzahlEinzel']='';
			$_POST['turnierklasse']=intval($_POST['turnierklasse']);
		//end POST form check
		if($show_form)
		{
			//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
			if($_POST['turnierklasse']=='')
			{
				$_POST['turnierklasse']=intval($_POST['turnierklasse']);
			}
			
			if($_POST['altersklasse']=='')
			{
				$_POST['altersklasse']=intval($_POST['altersklasse']);
			}
			
			if($_POST['geschlecht']=='')
			{
				$_POST['geschlecht']=intval($_POST['geschlecht']);
			}
  
			//Formular für Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.
			?>
	
<form name="blub" method="post" action="test.php">
<table><tr>
<td align="left"><label for="vorname">Vorname:</label></td>
<td align="left"><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 align="left"><label for="nachname">Nachname:</label></td>
<td align="left"><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 align="left">Geschlecht:</td>
<td align="left"><select name="geschlecht">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['geschlecht']==2?' selected=selected':''));?>>männlich</option><option value="3"<?php echo(($_POST['geschlecht']==3?' selected=selected':''));?>>weiblich</option></select>
</td></tr>
<tr>
<td align="left"><label for="ttr">Quartals-TTR:</label></td>
<td align="left"><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 align="left"><label for="anzahlEinzel">Anzahl Einzel:</label></td>
<td align="left"><input name="anzahlEinzel" type="text" id="anzahlEinzel" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['anzahlEinzel'].'"/>'.$frm_error['anzahlEinzel']);?></td>
</tr>
<tr>
<td align="left">Turnierklasse:</td>
<td align="left"><select name="turnierklasse">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['turnierklasse']==2?' selected=selected':''));?>>Jugend - Turniertag 1 - Samstag 10. September 2011</option><option value="3"<?php echo(($_POST['turnierklasse']==3?' selected=selected':''));?>>D-Klasse - Turniertag 1 - Samstag 10. September 2011</option><option value="4"<?php echo(($_POST['turnierklasse']==4?' selected=selected':''));?>>C-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="5"<?php echo(($_POST['turnierklasse']==5?' selected=selected':''));?>>B-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="6"<?php echo(($_POST['turnierklasse']==6?' selected=selected':''));?>>A-Klasse - Turniertag 2 - Sonntag 11. September 2011</option></select>
</td></tr>
<tr>
<td align="left"><label for="email">E-Mail:</label></td>
<td align="left"><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 align="left"><label for="geburtsjahr">Geburtsjahr:</label></td>
<td align="left"><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 align="left"><label for="verein">Verein:</label></td>
<td align="left"><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 align="left"><label for="verband">Verband:</label></td>
<td align="left"><input name="verband" type="text" id="verband" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['verband'].'"/>'.$frm_error['verband']);?></td>
</tr>
<tr>
<td align="left"><label for="bezirk">Bezirk:</label></td>
<td align="left"><input name="bezirk" type="text" id="bezirk" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['bezirk'].'"/>'.$frm_error['bezirk']);?></td>
</tr>
<tr>
<td align="left">Altersklasse:</td>
<td align="left"><select name="altersklasse">
<option value="1">Bitte auswählen</option><option value="2"<?php echo(($_POST['altersklasse']==2?' selected=selected':''));?>>Herren</option><option value="3"<?php echo(($_POST['altersklasse']==3?' selected=selected':''));?>>Damen</option><option value="4"<?php echo(($_POST['altersklasse']==4?' selected=selected':''));?>>Jugend</option><option value="5"<?php echo(($_POST['altersklasse']==5?' selected=selected':''));?>>Sch??</option></select>
</td></tr>
<tr>
<td align="left"><label for="spielklasse">Spielklasse:</label></td>
<td align="left"><input name="spielklasse" type="text" id="spielklasse" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['spielklasse'].'"/>'.$frm_error['spielklasse']);?></td>
</tr>
<tr>
<td align="left"><label for="spielposition">Spielerposition:</label></td>
<td align="left"><input name="spielposition" type="text" id="spielposition" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['spielposition'].'"/>'.$frm_error['spielposition']);?></td>
</tr>
<tr>
<td align="left" valign="top"><label for="email">Anmerkung:</label></td>
<td align="left"><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
		} else {
			$_POST['geschlecht']=intval($_POST['geschlecht']);
			$geschlechtstr='';
			switch($_POST['geschlecht']) {
				case 2:
					$geschlechtstr='m';break;
				case 3:
					$geschlechtstr='w';break;
			}
			$_POST['turnierklasse']=intval($_POST['turnierklasse']);
			$turnierklassestr='';
			switch($_POST['turnierklasse']) {
				case 2:
					$turnierklassestr='Jugend - Samstag 10. September 2011';break;
				case 3:
					$turnierklassestr='D-Klasse - Samstag 10. September 2011';break;
				case 4:
					$turnierklassestr='C-Klasse - Sonntag 11. September 2011';break;
				case 5:
					$turnierklassestr='B-Klasse - Sonntag 11. September 2011';break;
				case 6:
					$turnierklassestr='A-Klasse - Sonntag 11. September 2011';break;
			}
			$_POST['altersklasse']=intval($_POST['altersklasse']);
			$altersklassestr='';
			switch($_POST['altersklasse']) {
				case 2:
					$altersklassestr='Herren';break;
				case 3:
					$altersklassestr='Damen';break;
				case 4:
					$altersklassestr='Jugend';break;
				case 5:
					$altersklassestr='Schüler';break;
			}
			//wenn die mail adresse vorhanden ist wird das ausgeführt :)
			$mysql_query='
INSERT INTO `anmeldungen`
	(`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `anzahlEinzel`, `email`, `verein`, `verband`, `bezirk`, `altersklasse`, `spielklasse`, `spielposition`, `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['anzahlEinzel']).'", "'. mysql_real_escape_string($_POST['email']).'", "'.mysql_real_escape_string($_POST['verein']).'", "'.mysql_real_escape_string($_POST['verband']).'", "'.mysql_real_escape_string($_POST['bezirk']).'", "'.mysql_real_escape_string($_POST['altersklasse']).'", "'.mysql_real_escape_string($_POST['spielklasse']).'", "'.mysql_real_escape_string($_POST['spielposition']).'", "'.$_POST['turnierklasse'].'","'.mysql_real_escape_string($_POST['eintrag']).'", NOW())';
			$result=mysql_query($mysql_query);
			if($result)
			{
				//Bestätigungsemail an den Anmeldenden
				$to=$_POST['email'];
				$subject='Bestätigung der Anmeldung zum PPC 2011';
				$text='<p>Hallo '.$_POST['vorname'].' '.$_POST['nachname'].',</p>
					<p>soeben ('.$today.') ist Ihre Anmeldung zum Test 2011 bei uns eingegangen.</p>
					<p>Hier als Bestätigung und zur Überprüfung die angegebenen Daten.</p>
					<p>Vorname: '.$_POST['vorname'].'<br/>
					Nachname: '.$_POST['nachname'].'<br/>
					Geschlecht: '.$geschlechtstr.'<br/>
					Geburtsjahr: '.$_POST['geburtsjahr'].'<br/>
					Kontakt-E-Mail: '.$_POST['email'].'<br/>
					Quartals-TTR: '.$_POST['ttr'].'<br/>
					Anzahl Einzel: '.$_POST['anzahlEinzel'].'<br/>
					Angemeldete Turnierklasse samt Turniertag: '.$turnierklassestr.'<br/>
					Verein: '.$_POST['verein'].'<br/>
					Verband: '.$_POST['verband'].'<br/>
					Bezirk: '.$_POST['bezirk'].'<br/>
					Altersklasse: '.$altersklassestr.'<br/>
					Spielklasse 11/12: '.$_POST['spielklasse'].'<br/>
					Spielerposition: '.$_POST['spielposition'].'<br/>
					Bemerkung: '.$_POST['eintrag'].'</p>
					<p>Hinweis:<br />
					
					<p>Vielen Dank!</p>
					<p>Mit freundlichen Grüßen</p>';
				$from='From:  2011<@>'."\r\n";
				$from.='Reply-To:  2011<@t>'."\r\n";
				$from.='MIME-Version: 1.0'."\r\n";
				$from.='Content-Type: text/html; charset=UTF-8'."\r\n";
				if(mail($to,'=?UTF-8?B?'.base64_encode($subject).'?=',$text,$from))
				{
					//Mail an die Turnierleitung
					$to='@';
					$subject='Neue Anmeldung zum PPC 2011';
					$text='<p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>
						<p>soeben ('.$today.') gab es eine neue Anmeldung zu unserem PPC 2011.</p>
						<p>Hier angegebenen Daten.</p>
						<p>Vorname: '.$_POST['vorname'].'<br/>
						Nachname: '.$_POST['nachname'].'<br/>
						Geschlecht: '.$geschlechtstr.'<br/>
						Geburtsjahr: '.$_POST['geburtsjahr'].'<br/>
						Kontakt-E-Mail: '.$_POST['email'].'<br/>
						Quartals-TTR: '.$_POST['ttr'].'<br/>
						Anzahl Einzel: '.$_POST['anzahlEinzel'].'<br/>
						Angemeldete Turnierklasse: '.$turnierklassestr.'<br/>
						Verein: '.$_POST['verein'].'<br/>
						Verband: '.$_POST['verband'].'<br/>
						Bezirk: '.$_POST['bezirk'].'<br/>
						Altersklasse: '.$altersklassestr.'<br/>
						Spielklasse 11/12: '.$_POST['spielklasse'].'<br/>
						Spielerposition: '.$_POST['spielposition'].'<br/>
						Bemerkung: '.$_POST['eintrag'].'</p>';
					$from='From: "'.$_POST['vorname'].' '.$_POST['nachname'].'" <'.$_POST['email'].'>'."\r\n";
					$from.='MIME-Version: 1.0'."\r\n";
					$from.='Content-Type: text/html; charset=UTF-8'."\r\n";
					if(mail($to,$subject,$text,$from))
					{
						?><p><span class="gruen"><b>Die Anmeldung zum PPC 2011 ist bei uns eingegangen!<br/>In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung.</b></span><br/><br/></p><?php
					} else {
						echo 'Anmeldung erfolgreich. Probleme mit Mailversand.';
					}
				} else {
					?><p><span class="rot"><b>Die Anmeldung zum PPC 2011 ist Fehlgeschlagen!<br/>Leider trat beim Mailversand ein unerwartetes Problem auf.</b></span></p><?php
				}
			} else {
				die('<b>MySQL Error:</b><div class="rot">'.mysql_error().'</div>');
			}
		}
	} 
//}
?>
</body>
</html>

13.06.2011 18:21

5 Jörg

allerdings sind nun die ttr und anzahlEinzel pflichtfelder, dies soll nicht so sein.

Dann solltest du sie vielleicht aus diesem Array rausnehmen, aus welchem du in der folgenden Schleife die Fehlermeldungen generierst:

        $frm_field=array(array('email','/^[\w\-\.\+]+@([\w\-]+\.?)+$/','Bitte gültige E-Mail eintragen'),'vorname','nachname',array('geschlecht','/[m oder w]$/','Bitte Geschlecht eintragen (m (für männlich) oder w (für weiblich))'),array('geburtsjahr','/^(19|20)\d\d$/','Bitte gültiges Geburtsjahr eintragen (z.B. 1967)'),'ttr','anzahlEinzel','verein','verband','bezirk','altersklasse','spielklasse','spielposition',array('turnierklasse','/^[1-5]$/','Bitte gültige Turnierklasse auswählen!'));

14.06.2011 17:07

6 tobi

ich bin die tage nun ein wenig weitergekommen, allerdings hackt es aktuell an der turnierklasse noch.
ich lasse je nach ausgewählter turneirklasse, die zahlen 1-5 in die db eintragen, via bestätigungsemail wird keine zahl, sondern die namentlichen klasse aufgezeigt. soweit so gut.

ich habe nun zuerst Bitte auswählen bei Turnierklasse weggelassen.
nun habe ich es testweise mit
<option value="0">Bitte auswählen</option>
probiert, allerdings erscheint da dann keine fehlermeldung. ich weiß auch nicht ob das so machbar ist.


<!doctype html>
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>Anmeldung</title>
<style type="text/css">
.rot{color:#FF0000;}
.gruen{color:#009900;}
.blau{color:#0000FF;}
</style>
</head>
<body>
<?php
error_reporting(E_ALL);
include_once 'database';


?><h1>Anmeldung</h1>
<p>Bitte jetzt folgende Felder aufüllen. Die Teilnahme in einer höheren Turnierklasse ist möglich, nicht aber ein Start in mehreren Wettbewerben.<br/>
D-Klasse: bis 1350 TTR Punkte<br/>
C-Klasse: bis 1450 TTR-Punkte<br/>
B-Klasse: bis 1600 TTR-Punkte<br/>
A-Klasse: ab 1601 TTR-Punkte</p>
<?php

if(!empty($_POST['email']))
//{
   $today=date('l; d.m.Y H:i:s');
   {
      //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)!'),'verein','verband','bezirk',array('altersklasse', '/[Herren|Damen|Jugend|Schüler]$/', 'Bitte Altersklasse angeben!'),'spielklasse','spielposition',array('turnierklasse','/[1|2|3|4|5]$/','Bitte gültige Turnierklasse auswählen!'));
      $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(empty($_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']='';

      //end POST form check
      if($show_form)
      {
         //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.
         ?>
<form name="blub" method="post" action="muell.php">
<table><tr>
<td align="left"><label for="vorname">Vorname:</label></td>
<td align="left"><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 align="left"><label for="nachname">Nachname:</label></td>
<td align="left"><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 align="left">Geschlecht:</td>
<td align="left"><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 align="left"><label for="ttr">Quartals-TTR:</label></td>
<td align="left"><input name="ttr" type="text" id="ttr" size="70" maxlength="50" class="eingabe" value="<?php if(isset($_POST['ttr'])) echo $_POST['ttr']; ?>" /></td>
</tr>
<tr>
<td align="left"><label for="anzahlEinzel">Anzahl Einzel:</label></td>
<td align="left"><input name="anzahlEinzel" type="text" id="anzahlEinzel" size="70" maxlength="50" class="eingabe" value="<?php if(isset($_POST['anzahlEinzel'])) echo $_POST['anzahlEinzel'];?>" /></td>
</tr>
<tr>
<td align="left">Turnierklasse:</td>
<td align="left"><select name="turnierklasse">
<option value="0">Bitte auswählen</option><option value="1"<?php echo(($_POST['turnierklasse']==1?' selected=selected':''));?>>Jugend - Turniertag 1 - Samstag 10. September 2011</option><option value="2"<?php echo(($_POST['turnierklasse']==2?' selected=selected':''));?>>D-Klasse - Turniertag 1 - Samstag 11. September 2011</option><option value="3"<?php echo(($_POST['turnierklasse']==3?' selected=selected':''));?>>C-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="4"<?php echo(($_POST['turnierklasse']==4?' selected=selected':''));?>>B-Klasse - Turniertag 2 - Sonntag 11. September 2011</option><option value="5"<?php echo(($_POST['turnierklasse']==5?' selected=selected':''));?>>A-Klasse - Turniertag 2 - Sonntag 11. September 2011</option></select>
</td></tr>
<tr>
<td align="left"><label for="email">E-Mail:</label></td>
<td align="left"><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 align="left"><label for="geburtsjahr">Geburtsjahr:</label></td>
<td align="left"><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 align="left"><label for="verein">Verein:</label></td>
<td align="left"><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 align="left"><label for="verband">Verband:</label></td>
<td align="left"><input name="verband" type="text" id="verband" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['verband'].'"/>'.$frm_error['verband']);?></td>
</tr>
<tr>
<td align="left"><label for="bezirk">Bezirk:</label></td>
<td align="left"><input name="bezirk" type="text" id="bezirk" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['bezirk'].'"/>'.$frm_error['bezirk']);?></td>
</tr>
<tr>
<td align="left">Altersklasse:</td>
<td align="left"><select name="altersklasse">
<option value="1">Bitte auswählen</option><option value="Herren"<?php echo(($_POST['altersklasse']=='Herren'?' selected=selected':''));?>>Herren</option><option value="Damen"<?php echo(($_POST['altersklasse']=='Damen'?' selected=selected':''));?>>Damen</option><option value="Jugend"<?php echo(($_POST['altersklasse']=='Jugend'?' selected=selected':''));?>>Jugend</option><option value="Schüler"<?php echo(($_POST['altersklasse']=='Schüler'?' selected=selected':''));?>>Schüler</option></select>
<?php echo $frm_error['altersklasse']; ?>
</td></tr>
<tr>
<td align="left"><label for="spielklasse">Spielklasse:</label></td>
<td align="left"><input name="spielklasse" type="text" id="spielklasse" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['spielklasse'].'"/>'.$frm_error['spielklasse']);?></td>
</tr>
<tr>
<td align="left"><label for="spielposition">Spielerposition:</label></td>
<td align="left"><input name="spielposition" type="text" id="spielposition" size="70" maxlength="50" class="eingabe" value="<?php echo($_POST['spielposition'].'"/>'.$frm_error['spielposition']);?></td>
</tr>
<tr>
<td align="left" valign="top"><label for="email">Anmerkung:</label></td>
<td align="left"><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
      } 
	  else {
         $_POST['turnierklasse']=intval($_POST['turnierklasse']);
         $turnierklassestr='';
         switch($_POST['turnierklasse']) {
            case 1:
               $turnierklassestr='Jugend - Samstag 10. September 2011';break;
            case 2:
               $turnierklassestr='D-Klasse - Samstag 10. September 2011';break;
            case 3:
               $turnierklassestr='C-Klasse - Sonntag 11. September 2011';break;
            case 4:
               $turnierklassestr='B-Klasse - Sonntag 11. September 2011';break;
            case 5:
               $turnierklassestr='A-Klasse - Sonntag 11. September 2011';break;
         }
		 
         //wenn die mail adresse vorhanden ist wird das ausgeführt :)
         $mysql_query='
INSERT INTO `anmeldungen`
   (`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `anzahlEinzel`, `email`, `verein`, `verband`, `bezirk`, `altersklasse`, `spielklasse`, `spielposition`, `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['anzahlEinzel']).'", "'. mysql_real_escape_string($_POST['email']).'", "'.mysql_real_escape_string($_POST['verein']).'", "'.mysql_real_escape_string($_POST['verband']).'", "'.mysql_real_escape_string($_POST['bezirk']).'", "'.mysql_real_escape_string($_POST['altersklasse']).'", "'.mysql_real_escape_string($_POST['spielklasse']).'", "'.mysql_real_escape_string($_POST['spielposition']).'", "'.$_POST['turnierklasse'].'", "'.mysql_real_escape_string($_POST['eintrag']).'", NOW())';
         $result=mysql_query($mysql_query);
         if($result)
         {
            //Bestätigungsemail an den Anmeldenden
            $to=$_POST['email'];
            $subject='Bestätigung der Anmeldung zum PPC 2011';
            $text='<p>Hallo '.$_POST['vorname'].' '.$_POST['nachname'].',</p>
               <p>soeben ('.$today.') ist Ihre Anmeldung zum Test 2011 bei uns eingegangen.</p>
               <p>Hier als Bestätigung und zur Überprüfung die angegebenen Daten.</p>
               <p>Vorname: '.$_POST['vorname'].'<br/>
               Nachname: '.$_POST['nachname'].'<br/>
			   Geschlecht: '.$_POST['geschlecht'].'<br/>
               Geburtsjahr: '.$_POST['geburtsjahr'].'<br/>
               Kontakt-E-Mail: '.$_POST['email'].'<br/>
               Quartals-TTR: '.$_POST['ttr'].'<br/>
               Anzahl Einzel: '.$_POST['anzahlEinzel'].'<br/>
			   Angemeldete Turnierklasse samt Turniertag: '.$turnierklassestr.'<br/>
               Verein: '.$_POST['verein'].'<br/>
               Verband: '.$_POST['verband'].'<br/>
               Bezirk: '.$_POST['bezirk'].'<br/>
			   Altersklasse: '.$_POST['altersklasse'].'<br/>
               Spielklasse 11/12: '.$_POST['spielklasse'].'<br/>
               Spielerposition: '.$_POST['spielposition'].'<br/>
               Bemerkung: '.$_POST['eintrag'].'</p>
';
				$from='From: >'."\r\n";
				$from.='Reply-To: >'."\r\n";
				$from.='MIME-Version: 1.0'."\r\n";
				$from.='Content-Type: text/html; charset=UTF-8'."\r\n";
				if(mail($to,'=?UTF-8?B?'.base64_encode($subject).'?=',$text,$from))
            {
               //Mail an die Turnierleitung
               $subject='Neue Anmeldung zum PPC 2011';
               $text='<p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>
                  <p>soeben ('.$today.') gab es eine neue Anmeldung zu unserem PPC 2011.</p>
                  <p>Hier angegebenen Daten.</p>
                  <p>Vorname: '.$_POST['vorname'].'<br/>
                  Nachname: '.$_POST['nachname'].'<br/>
			      Geschlecht: '.$_POST['geschlecht'].'<br/>
                  Geburtsjahr: '.$_POST['geburtsjahr'].'<br/>
                  Kontakt-E-Mail: '.$_POST['email'].'<br/>
                  Quartals-TTR: '.$_POST['ttr'].'<br/>
                  Anzahl Einzel: '.$_POST['anzahlEinzel'].'<br/>
				  Angemeldete Turnierklasse: '.$turnierklassestr.'<br/>
                  Verein: '.$_POST['verein'].'<br/>
                  Verband: '.$_POST['verband'].'<br/>
                  Bezirk: '.$_POST['bezirk'].'<br/>
				  Altersklasse: '.$_POST['altersklasse'].'<br/>
                  Spielklasse 11/12: '.$_POST['spielklasse'].'<br/>
                  Spielerposition: '.$_POST['spielposition'].'<br/>
                  Bemerkung: '.$_POST['eintrag'].'</p>';
               $from='From: "'.$_POST['vorname'].' '.$_POST['nachname'].'" <'.$_POST['email'].'>'."\r\n";
               $from.='MIME-Version: 1.0'."\r\n";
               $from.='Content-Type: text/html; charset=UTF-8'."\r\n";
               if(mail($to,$subject,$text,$from))
               {
                  ?><p><span class="gruen"><b>Die Anmeldung zum PPC 2011 ist bei uns eingegangen!<br/>In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung.</b></span></p><?php
               } else {
                  echo 'Anmeldung erfolgreich. Probleme mit Mailversand.';
               }
            } else {
               ?><p><span class="rot"><b>Die Anmeldung zum PPC 2011 ist Fehlgeschlagen!<br/>Leider trat beim Mailversand ein unerwartetes Problem auf.</b></span></p><?php
            }
         } else {
            die('<b>MySQL Error:</b><div class="rot">'.mysql_error().'</div>');
         }
      }
   }
//}
?>
</body>
</html>

14.06.2011 17:20

7 Jörg

allerdings erscheint da dann keine fehlermeldung

eine Fehlermeldung, dass nichts ausgewählt wurde?

Wenn du das 'value="0"' weglässt, wird bei dieser Option kein Wert übertragen.

14.06.2011 18:01

8 tobi

Wenn ohne dass was ausfgewählt wurde, soll eine Fehlermeldung erscheinen. Dies geschieht bei allen Feldern, lediglich nicht bei Turnierklasse.

14.06.2011 18:46

9 Jörg

Zitat von Jörg
Wenn du das 'value="0"' weglässt, wird bei dieser Option kein Wert übertragen.

15.06.2011 10:31

10 tobi

Du meinst dann nur so?
<option>Bitte auswählen</option>

Dann taucht allerdings ebenfalls keine Fehlermeldung auf.

15.06.2011 16:07