Zur Navigation

Suchformular mit Weiterverarbeitung [3]

21 Jörg Kruse

Ja, dann hast du in Zeile 284 wohl noch eine zweite herrenlose Klammer. Möglicherweise gehörten die beiden zu dem hier auskommentierten if Konstrukt:

//          if(!isset($_POST['email']) OR empty($_POST['email']))

31.05.2011 17:44

22 tobi

wenn ich nun eine weitere { entferne, dann kommt erneut
Parse error: syntax error, unexpected T_ELSE in on line 285. Diese Zeile habe ich nun auch mal auskommentiert.

Nun erscheint die Meldung Keine Emailadresse angegeben! auf der Seite. Diese verschwindet nun, wenn ich die Emailadresse angebe, aber das Formluar wird nicht abgesendet und das Emailfeld leert sich wieder.

31.05.2011 18:42

23 Jörg Kruse

aber das Formluar wird nicht abgesendet und das Emailfeld leert sich wieder.

Hat das denn vorher korrekt funktioniert? dein Script war mit den beiden herrenlosen Klammern ja bereits kaputt, als du die Fehlermeldung eingebaut hast. Ich würde erstmal den alten, funktionierenden Zustand wieder herstellen und danach die Fehlermeldung einbauen.

31.05.2011 21:33

24 tobi

Ja, vorher lief alles. Bestätigunsemails wurden versendet und die Daten in die Datenbank eingetragen. Erst seit ich versuche die Fehlermeldung bzw. Meldungen einzubauen, tauchen immer neue Probleme (Parse error Meldungen) auf.

01.06.2011 00:06

25 Jörg Kruse

Um die Fehlermeldung einzubauen, musst du nur den Dreizeiler aus Beitrag 16 an passender Stelle einfügen - ohne dabei irgendwelchen anderen Code zu ersetzen. Anscheinend hast du aber dabei (oder vorher) noch Code entfernt oder auskommentiert, sonst hätte es nicht die beiden herrenlosen Klammern gegeben, die dann zu den Fehlermeldungen führten.

01.06.2011 16:15

26 tobi

Ich hab nun alles mal in den Usprungszustand gemacht, in der das Formular funktioniert hat. Ich habe nun den Code aus Post 16 mal eingebaut:
echo "D-Klasse: 0000-1350 TTR Punkte<br />";
echo "C-Klasse: 1351-1450 TTR-Punkte<br />";
echo "B-Klasse: 1451-1600 TTR-Punkte<br />";
echo "A-Klasse: 1601-9999 TTR-Punkte</p>";

if (empty($_POST['email'])) {
    echo '<p>Bitte E-Mail-Adresse angeben!</p>';
}	

if (empty($_POST['verein'])) {
    echo '<p>Bitte Verein angeben!</p>';
}

if (empty($_POST['bezirk'])) {
    echo '<p>Bitte Bezirk angeben!</p>';
}

if (empty($_POST['altersklasse'])) {
    echo '<p>Bitte Altersklasse angeben!</p>';
}

if (empty($_POST['spielklasse'])) {
    echo '<p>Bitte Spielklasse angeben!</p>';
}

if (empty($_POST['spielposition'])) {
    echo '<p>Bitte Position angeben!</p>';
}
				
if (isset($_POST['spieler_id'])) 
	{
		$spieler_id = mysql_escape_string($_POST['spieler_id']);
		$today = date("l; d.m.Y H:i:s");
		$eintrag="";
		
		$mysql_query = "
		    SELECT *
		    FROM
		            ttr_rangliste
		    WHERE
		            ID = " . $spieler_id . ";
		    ";
		//echo $mysql_query . "<p>";
		$result = mysql_query($mysql_query);
		$num_rows = mysql_num_rows($result);
		//echo $num_rows ."<p>";
		if ( $num_rows == 1) // Spieler gefunden
			{
			$row = mysql_fetch_assoc($result);
			$ttr = $row['ttr'];
			if(!isset($_POST['email']) OR empty($_POST['email']))

			{
			//führt das aus, wenn die mail adresse noch ned angegeben wurde
			echo "Vorname: ". $row['vorname']."<br />";
			echo "Nachname: ". $row['nachname']."<br />";
			echo "Geschlecht: ". $row['geschlecht']."<br />";
			echo "Geburtsjahr: ". $row['geburtsjahr']."<br />";
			echo "Quartals-TTR: ". $ttr."<br />";
			echo "Anzahl Einzel: ". $row['anzahlEinzel']."<br />";
	//		echo "Bezirk: ". $row['bezirk']."<br />";
	//		echo "Verein: ". $row['verein']."<br />";
	//		echo "Altersklasse: ". $row['altersklasse']."<br />";
	//		echo "Spielklasse: ". $row['spielklasse']."<br/ >";
	//		echo "Spielerposition: ". $row['spielposition']."<br />";
		
			if (($row['altersklasse']=='Damen') || ($row['altersklasse']=='Herren')) 
				{
					//TTR Punkte unter 1351 (also 0-1350)
					if ($ttr<1351) {
						echo "Empfohlene Spielklasse: D-Klasse<br />";
						echo "Turniertag: Samstag 10. September 2011<br />";
						}
					//TTR Punkte unter 1451 (also 1351-1450)
					elseif ($ttr<1451) {
						echo "Empfohlene Spielklasse: C-Klasse<br />";
						echo "Turniertag: Sonntag 11. September 2011<br />";
						}
					//TTR Punkte unter 1601 (also 1451-1600)
					elseif ($ttr<1601) {
						echo "Empfohlene Spielklasse: B-Klasse<br />";
						echo "Turniertag: Sonntag 11. September 2011<br />";
						}
					//TTR Punkte über 1601(also 1601-....)
					else {
						echo "Empfohlene Spielklasse: A-Klasse<br /p>";
						echo "Turniertag: Sonntag 11. September 2011<br />";
						}
				}
				elseif ($row['altersklasse']=='') 
				{
						echo "Empfohlene Spielklasse: keine<p>";
				}
				else // Jugend
				{
						echo "Empfohlene Spielklasse: Jugend<br />";
						echo "Turniertag: Samstag 10. September 2011<br />";
				}
				
				//Formular für Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.	
				echo "<form method=\"post\" action=\"anmeldung_komfort.php\">";
				echo "<table>";
				echo "<tr>\n";
				
				echo "<input type=\"hidden\" name=\"spieler_id\" value=\"" . $_POST['spieler_id'] . "\">";
				echo "<br />";
				echo "<tr>\n";
				echo "<td align=\"left\">Turnierklasse:</td>\n<td align=\"left\">";
				echo "<select name=\"turnierklasse\">\n";
				echo "<option value=\"1\"";if($row['altersklasse']!='' && $row['altersklasse'] != "Herren" && $row['altersklasse'] != "Damen"){echo " selected=selected";} echo ">Jugend - Turniertag 1 - Samstag 10. September 2011</option>";
				echo "<option value=\"2\"";if(($row['altersklasse'] == "Herren" || $row['altersklasse'] == "Damen") && $ttr<1351){echo " selected=selected";} echo ">D-Klasse - Turniertag 1 - Samstag 11. September 2011</option>";
				echo "<option value=\"3\"";if(($row['altersklasse'] == "Herren" || $row['altersklasse'] == "Damen") && $ttr>1350 && $ttr<=1451){echo " selected=selected";} echo ">C-Klasse - Turniertag 2 - Sonntag 11. September 2011</option>";
				echo "<option value=\"4\"";if(($row['altersklasse'] == "Herren" || $row['altersklasse'] == "Damen") && $ttr>1451 && $ttr<=1601){echo " selected=selected";} echo ">B-Klasse - Turniertag 2 - Sonntag 11. September 2011</option>";
				echo "<option value=\"5\"";if(($row['altersklasse'] == "Herren" || $row['altersklasse'] == "Damen") && $ttr>1601){echo " selected=selected";} echo ">A-Klasse - Turniertag 2 - Sonntag 11. September 2011</option>";
				echo "</select>\n";
				echo "</td>";
				echo "</tr>\n";	
				echo "<tr>\n";	
				echo "<td align=\"left\">eMail:</td>\n<td align=\"left\"><input name=\"email\" type=\"text\" id=\"email\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"".$emailx[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Verein:</td>\n<td align=\"left\"><input name=\"verein\" type=\"text\" id=\"verein\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['verein']."".$verein[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Bezirk:</td>\n<td align=\"left\"><input name=\"bezirk\" type=\"text\" id=\"bezirk\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['bezirk']."".$bezirk[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Altersklasse:</td>\n<td align=\"left\"><input name=\"altersklasse\" type=\"text\" id=\"altersklasse\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['altersklasse']."".$altersklasse[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Spielklasse:</td>\n<td align=\"left\"><input name=\"spielklasse\" type=\"text\" id=\"spielklasse\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['spielklasse']."".$spielklasse[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\">Spielerposition:</td>\n<td align=\"left\"><input name=\"spielposition\" type=\"text\" id=\"spielposition\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
				echo " value=\"". $row['spielposition']."".$spielpostion[0]."\"";
				echo "></td>\n";
				echo "</tr>\n";	
				echo "<tr>\n";
				echo "<td align=\"left\" valign=\"top\">Anmerkung:</td>\n<td align=\"left\"><textarea name=\"eintrag\" cols=\"70\" rows=\"7\" id=\"eintrag\" class=\"eingabe\">".$eintrag."</textarea></td>\n";
				echo "</tr>\n";
				echo "</table>";
				echo "<p><input type=\"submit\" value=\"Anmeldung abschließen\" /></form></p>";
			}
			else
			{
				if (($row['altersklasse']=='Damen') || ($row['altersklasse']=='Herren')) 
				{
					//TTR Punkte unter 1351 (also 0-1350)
					if ($ttr<1351) {
						$empfohleneKlasse = 'D-Klasse';
						}
					//TTR Punkte unter 1451 (also 1351-1450)
					elseif ($ttr<1451) {
						$empfohleneKlasse = 'C-Klasse';
						}
					//TTR Punkte unter 1601 (also 1451-1600)
					elseif ($ttr<1601) {
						$empfohleneKlasse = 'B-Klasse';
						}
					//TTR Punkte über 1601(also 1601-....)
					else {
						$empfohleneKlasse = 'A-Klasse';
						}
				}
				elseif ($row['altersklasse']=='') 
				{
						$empfohleneKlasse = '';
				}
				else // Jugend
				{
						$empfohleneKlasse = 'Jugend';
				}
				//wenn die mail adresse vorhanden ist wird das ausgeführt :)
				$mysql_query = 'INSERT INTO `anmeldungen`
...
nun werden alle o.g. Meldungen aufgezeigt, allerdings stehen zu Beginn bereits Inhalte bei Verein, Bezirk, Altersklasse, Spielklasse, Position. Lediglich das Feld E-Mail ist noch leer. Die Meldung für E-Mail wird korrekt ausgegeben (jednefalls aktuell). Allerdings werden alle anderen Fehelrmeldungen auch angezeigt, obwohl ja INhalte in den Feldern stehen. Dort dürfte die Meldung nicht erscheinen bzw. nur dann, wenn jemand was aus dem Bereich entfernt hat.

01.06.2011 16:34 | geändert: 01.06.2011 16:34

27 Jörg Kruse

Verschieb die Fehlermeldungen mal in den folgenden Bedingungsblock:

if (isset($_POST['spieler_id']))
    {

        if (empty($_POST['email'])) {
            echo '<p>Bitte E-Mail-Adresse angeben!</p>';
        }
        // etc.

        $spieler_id = mysql_escape_string($_POST['spieler_id']);
        $today = date("l; d.m.Y H:i:s");
        $eintrag="";

Die Fehlermeldungen sollen ja erst ausgegeben werden, nachdem das Formular abgesendet wurde

01.06.2011 16:42 | geändert: 01.06.2011 16:44

28 tobi

gleiches Ergebnis wie in Post 26

01.06.2011 16:47

29 Jörg Kruse

Du hast den Code an der alten Stelle auch gelöscht?

01.06.2011 17:54

30 tobi

Zitat von Jörg
Du hast den Code an der alten Stelle auch gelöscht?
ja hab ich

01.06.2011 18:17