31
Wie sieht denn der Gesamt-Code aus?
<html>
<head>
<meta http-equiv="Content-Style-Type" content="text/css" />
<style type="text/css">
/* Angaben im Formluar bei Fehlermeldungen */
rot{
color: #FF0000;
}
/* Angaben im Formluar bei erfolgreicher Anmeldung */
gruen{
color: #009900;
}
/* Angaben im Formluar bei vollen Teilnehmerfeldern */
blau{
color: #0000FF;
}
</style>
</head>
<body>
<?php
include "database.php.inc";
echo "<h1>Schritt 4 - Anmeldung fortsetzen</h1>\n";
echo "<p>4. und letzter Schritt um die Anmeldung erfolgreich abzuschließen.</p>";
echo "<p>Hier sind nun sämtliche hinterlegte Daten aufgelistet (Stand 15.05.2011).< p/>";
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 (isset($_POST['spieler_id']))
{
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>';
}
$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`
(`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `anzahlEinzel`, `empfohleneKlasse`, `email`, `verein`, `bezirk`, `altersklasse`, `spielklasse`, `spielposition`, `gemeldeteKlasse`, `anmerkung`, `timestamp`)
VALUES
("' . $row['vorname'] . '", "' . $row['nachname'] . '", "' . $row['geschlecht'] . '", "' . $row['geburtsjahr'] . '", "' . $ttr . '", "' . $row['anzahlEinzel'] . '", "' . $empfohleneKlasse . '","' . $_POST['email'] . '", "' . $_POST['verein'] . '", "' . $_POST['bezirk'] . '", "' . $_POST['altersklasse'] . '", "' . $_POST['spielklasse'] . '", "' . $_POST['spielposition'] . '", "' . $_POST['turnierklasse'] . '","' . $_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>
$from = 'From: Test<test@1234.de>' . "\n";
$from .= 'Reply-To: Test<test@1234.de>' . "\n";
$from .= 'Content-Type: text/html' . "\n";
if(mail($to, $subject, $text, $from))
//Mail an die Turnierleitung
$to = 'test1111.de';
$subject = 'Neue Anmeldung zum PPC 2011';
$text = '
<p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>
$from = 'From: "'. $row['vorname'] .' '. $row['nachname'] .'" <'. $_POST['email'] .'> ' . "\n";
$from .= 'Content-Type: text/html' . "\n";
if(mail($to, $subject, $text, $from))
{
echo '<p><gruen><b>Die Anmeldung zum PPC 2011 ist bei uns eingegangen!<br />In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung.</b></gruen><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';
}
else
{
echo 'Anmeldung erfolgreich. Probleme mit Mailversand.';
}
}
else
{
die(mysql_error());
}
}
}
else //keine Übereinstimmung
{
//Evtl noch Zurück-Link auf erstes Formular einfügen...
echo "Keine Übereinstimmung oder mehrere... Sehr seltsamer Fehler...";
echo "<p>Es konnte keine Übereinstimmung gefunden werden. Bitte versuche es erneut --> <a href=\"index.php\">Zurück zur Übersicht</a></p>";
}
}
else
{
//Wenn Direktaufruf der Datei, dann Hinweis und Link zu Schritt 1
echo "<p>Bitte Übersichgtsseite lesen und dann die Anmeldung tätigen --> <a href=\"index.php\">Zurück zur Übersicht</a></p>";
}
?>
</body>
</html>
$text = '
<p>Hallo '. $row['vorname'] .' '. $row['nachname'] .',</p>
$text = '
<p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>
if (isset($_POST['email']) && empty($_POST['email'])) {
echo '<p>Bitte E-Mail-Adresse angeben!</p>';
}
Die Fehlermeldungen erscheinen nicht, ich habe den Bereich für den Inhalte des Mailversandes zuständig ist, einfach gekürzt, ohne weiter darauf zu achten, ob ich ein Zeichen zuviel gelöscht habe oder nicht.Zitat von Jörg Der gepostete Code kommt wegen Fehlermeldungen gar nicht zur Ausführung, da in zwei Zeilen am Ende noch ein Hochkomma und ein Semikolon fehlen:
$text = ' <p>Hallo '. $row['vorname'] .' '. $row['nachname'] .',</p>
$text = ' <p>Es gibt eine neue Anmeldung zum PPC 14 2011</p>
Zitat von Jörg
Anscheinend ist das Formular auf mehrere Dateien verteilt. Da ist es zum Verständnis schon wichtig zu wissen, welche Namen diese und die sonstigen Dateien haben. Wenn es sich bei anmeldung_komfort.php um eine andere Datei handelt, musst du natürlich dort die Fehlermeldungen einbauen.
Falls es sich bei dieser Datei um anmeldung_komfort.php handelt:
$_POST['spieler_id'] wird dann wohl schon von einem Formular aus einer anderen Datei übermittelt? dann benötigst du eine andere Bedingung, um zu wissen, ob das Formular auf sich selbst abgesendet wurde.
Im einfachsten Fall kannst du ja überprüfen, ob der jeweilige Parameter selbst übermittelt wurde, aber leer ist
if (isset($_POST['email']) && empty($_POST['email'])) { echo '<p>Bitte E-Mail-Adresse angeben!</p>'; }
<html><head></head><body><h1>Schritt 1 - Spieler/innen-Suche</h1><p>Die beiden Felder <b>Vorname</b> und <b>Nachname</b> bitte vollständig und wahrheitsgemäß ausfüllen.<br />Namen in denen ä, ö, ü, ß vorkommen, müssen auch so eingetragen werden.<br />Danach bitte auf "Spieler/innen-Suche beginnen" klicken.</p><form method="post" action="spieler-liste.php"><p>Vorname: <input name="vorname" type="text" /></p><p>Nachname: <input name="nachname" type="text" /></p><input type="submit" value="Spieler/innen-Suche beginnen" /></form></body></html>
<html>
<head>
</head>
<body>
<?php
include "database.php.inc";
if (isset($_POST['vorname']) && isset($_POST['nachname']))
{
$vorname = mysql_escape_string($_POST['vorname']);
$nachname = mysql_escape_string($_POST['nachname']);
$mysql_query = "
SELECT *
FROM
ttr_rangliste
WHERE
vorname = '" . $vorname . "'
AND nachname = '" . $nachname . "';
";
$result = mysql_query($mysql_query);
$num_rows = mysql_num_rows($result);
if ( $num_rows > 0) // Spieler gefunden
{
if ($num_rows > 1) //mehrfach vorhanden
{
echo "<h1>Schritt 2 - Ergebnis der Spieler/innen-Suche</h1>";
echo "<p>Informationen zu gesuchtem Spieler/Spielerin:</p>";
//hab ich mal hinzugefügt ums auszugeben, wass es hier aber nicht tut, unten tuts aber, fehlt wohl das: $row = mysql_fetch_assoc($result); aber wenn ich das einfüge, dann gibt er zwar vornamen und nachnamen aus, aber es wird ein verein weniger aufgelistet
echo "<p><b>".$vorname." ".$nachname."</b></p> ";
echo "<p>wurden gefunden.</p>";
echo "<p>Zu der/die genannte Spieler/Spieler gibt es mehrere Einträge in der Datenbank. Aus diesem Grund ist ein weiterer Schritt, Schritt 3, nötig.<p>";
echo "<h1>Schritt 3 - Spezifische Spieler/innen-Suche</h1>";
echo "Um zu gewährleisten, dass der/die korrekte Spieler/in ausgewählt wird, ist eine weitere Angabe nötig: <b>der Vereinsname</b>. Bitte suche den richtigen Verein aus und klicke dann hinter dem Vereinsnamen auf: \"gefundene Spielerdaten weiter verarbeiten\".<p>";
echo "<table>";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>";
echo "<td>".$row['verein']."</td>\n<td><form method=\"post\" action=\"anmeldung_komfort.php\">\n<input type=\"hidden\" name=\"spieler_id\" value=\"".$row['ID']."\" />\n<input type=\"submit\" value=\"gefundene Spielerdaten weiter verarbeiten\" /></form></td>";
echo "</tr>";
}
echo "</table>";
}
else // nur einmal vorhanden
{
$row = mysql_fetch_assoc($result);
echo "<h1>Schritt 2 - Ergebnis der Spieler/innen-Suche</h1>";
echo "<p>Informationen zu gesuchtem Spieler/Spielerin:</p>";
echo "<p><b>".$row['vorname']." ".$row['nachname']."</b></p> ";
echo "<p>wurden gefunden.</p>";
echo "<p>Um zum nächsten Schritt (Schritt 4) zu gelangen, bitte auf \"gefundene Spielerdaten weiter verarbeiten\" klicken.</p>";
echo "<form method=\"post\" action=\"anmeldung_komfort.php\">\n<input type=\"hidden\" name=\"spieler_id\" value=\"".$row['ID']."\" />\n<input type=\"submit\" value=\"gefundene Spielerdaten weiter verarbeiten\" /></form></p>";
echo "<p>PS: bitte nicht wundern, nach Schritt 2 kommt im Normalfall Schritt 3. Dieser entfällt in diesem Fall aber, da der Spieler/die Spielerin komplett in Schritt 2 gefunden werden konnte.</p>";
}
}
else //keine Übereinstimmung
{
//keine Übereinstimmung - Augabe mit Hinweis und Link zum Formular Schritt 1
echo "<p>Es konnte keine Übereinstimmung gefunden werden. Bitte versuche es erneut --> <a href=\"spieler-suche.html\">Zurück zum Formular</a></p>";
echo "<p><p>Wurde bei einem erneuten Versuch ebenfalls keine Übereinstimmung gefunden, dann ist der Spieler/die Spielerin nicht in der Datenbank gelistet. Eine Anmeldung ist dann ausschließlich via E-Mail möglich: <a href=\"mailto:123@123.de\">123@123.de</a></p>";
}
}
else
{
//Wenn Direktaufruf der Datei, dann Hinweis und Link zu Schritt 1
echo "<p>Bitte fülle das in Schritt 1 aufgezeigte Formular vollständig aus --> <a href=\"spieler-suche.html\">Zurück zum Formular</a></p>";
}
?>
</body>
</html>
Zitat von Jörg
if (isset($_POST['email']) && empty($_POST['email'])) { echo '<p>Bitte E-Mail-Adresse angeben!</p>'; }
if (isset($_POST['email']) && empty($_POST['email'])) {
echo '<p>Bitte E-Mail-Adresse angeben!</p>';
}
nur so gemacht:if (isset($_POST['email']) && empty($_POST['email'])) {
echo '<p>Bitte E-Mail-Adresse angeben!</p>';
und die } Klammer an einer anderen Position gesetzt. Nun wird die Meldung eingeblendet.Zitat von tobi ich hab nun anstatt
nur so gemacht:if (isset($_POST['email']) && empty($_POST['email'])) { echo '<p>Bitte E-Mail-Adresse angeben!</p>'; }
und die } Klammer an einer anderen Position gesetzt. Nun wird die Meldung eingeblendet.if (isset($_POST['email']) && empty($_POST['email'])) { echo '<p>Bitte E-Mail-Adresse angeben!</p>';
Versuche ich nun beispielsweise den Inhalt von dem Feld Spielklasse zu entfernen, dann kommt nur das "Bitte E-Mail Adresse angeben"
und das Feld Spielklasse wird autoamtisch wieder mit dem Inhalt befüllt. Wenn ich den Inhalt bei Spielklasse umändere (und E-Mail leer lasse), dann wird nach Absenden wieder der Usprungsinhalt bei Spielklasse ausgegeben. Ich nehme an, es liegt daran, dass die Werte allesamt aus der DB kommen. Wie kann ich dies ändern?
if (isset($_POST['spielklasse'])) {
$spielklasse = $_POST['spielklasse'];
} else {
$spielklasse = $row['spielklasse']; // Datenbankwert
}
$spielklasse = (isset($_POST['spielklasse'])) ? $_POST['spielklasse'] : $row['spielklasse'];