Zur Navigation

formular

1 tobi (Gast)

hallo,

hier poste ich mal meinen code, evtl kann ja jemand behilflich seien.
ihc habe hier ein formular. das funktioniert eigentlich wunderbar.
seit neustem habe ich ein feld (turnierklasse) eingepflegt bei dem man auswählen kann. bei allen anderen feldern muss man eintragen. sobald ein feld nicht ausgefüllt wurde oder der sicherheitscode falsch war wird eine meldung erscheinen.
nun habe ich dass problem, wie bekomme ich eine fehlermeldung hin, die erschient wenn in meinem neuen feld nix ausgewählt wurde?

<?php
session_start();
include "inc/kopf.php.inc";
include "inc/menu.php.inc";

//Datenbank verbinden
include "../zugang_2.php.inc";

                        $today = date("l; j F Y; G:i:s");
                        $nachname="";
                        $vorname="";
                        $email="";
                        $verein="";
                        $spielklasse="";
                        $position="";
                        $turnierklasse="";
                        $eintrag="";
                        $timestamp="";
                        $meldung="";

// Werte für Listenfeld
$turnierklasse = array(
"Damen"=>"Damen",
"Herren A"=>"Herren A",
"Herren B"=>"Herren B",
"Herren C"=>"Herren C"
       );

         $listeTK = '';
         $listeTK .= "\t<option value=\"Keine Auswahl getroffen\" selected='selected'>Bitte auswählen</option>\n";
         if (!empty($_POST['turnierklasse'])) {
            foreach ($turnierklasse as $keyTK => $valuTK) {
               if ($keyTK != '-' && ($keyTK == $_POST['turnierklasse'])){
                  $listeTK .= "\t<option value=\"".$keyTK."\" selected='selected'>".$valuTK."</option>\n";
               } else {
                  $listeTK .= "\t<option value=\"".$keyTK."\">".$valuTK."</option>\n";
               }// ende for
            }
         } else {
            foreach ($turnierklasse as $keyTK => $valuTK) {
               $listeTK .= "\t<option value=\"".$keyTK."\">".$valuTK."</option>\n";
                  } // ende for
         }

if(isset($_POST['sicherheitscode']))
{
    $code=$_POST['sicherheitscode'];
    $nachname=mysql_real_escape_string($_POST['nachname']);
    $vorname=mysql_real_escape_string($_POST['vorname']);
    $email=mysql_real_escape_string($_POST['email']);
    $verein=mysql_real_escape_string($_POST['verein']);
    $spielklasse=mysql_real_escape_string($_POST['spielklasse']);
    $position=mysql_real_escape_string($_POST['position']);
    $turnierklasse=mysql_real_escape_string($_POST['turnierklasse']);
    $eintrag=mysql_real_escape_string($_POST["eintrag"]);
    $timestamp=mysql_real_escape_string($_POST["timestamp"]);

    $meldung = "";

if(empty($_SESSION['captcha_spam'] ) || $code != $_SESSION['captcha_spam'])
   $meldung .= "<rot><b>Sicherheitscode falsch eingegeben!</b></rot><br>";
if(empty($nachname))
   $meldung .= "<rot><b>Bitte Nachamen eingeben!</b></rot><br>";
if(empty($vorname))
   $meldung .= "<rot><b>Bitte Vornamen eingeben!</b></rot><br>";
if(empty($email) || !ereg('^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.([a-zA-Z]){2,4})$', $email))
   $meldung .= "<rot><b>Bitte eine gültige Emailadresse angeben!</b></rot><br>";
if(empty($verein))
   $meldung .= "<rot><b>Bitte Verein eingeben!</b></rot><br>";
if(empty($spielklasse))
   $meldung .= "<rot><b>Bitte Spielklasse eingeben!</b></rot><br>";
if(empty($position))
   $meldung .= "<rot><b>Bitte Position eingeben!</b></rot><br>";
if(empty($turnierklasse))
   $meldung .= "<rot><b>Bitte richtige Turnierklasse auswählen (Damen, Herren A, Herren B oder Herren C)!</b></rot><br>";
//if(empty($eintrag))
//   $meldung .= "<rot><b>Bitte eine Nachricht verfassen!</b></rot><br>";

if(empty($meldung))
{


                   $meldung="<p><rot><b>Die Anmeldung ist bei uns eingegangen!<br>In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung.</b></rot></p>\n";


                                $subject="Neue Anmeldung";
                                $mailcontent="Es gibt eine neue Anmeldung \n\n";
                                $mailcontent.="Maileingang:             ".$today."\n\n";
                                $mailcontent.="Hier die Daten des Teilnehmers:\n\n";
                                $mailcontent.="Nachame:             ".$nachname."\n\n";
                                $mailcontent.="Vorname:             ".$vorname."\n\n";
                                $mailcontent.="eMail:            ".$email."\n\n";
                                $mailcontent.="Verein:             ".$verein."\n\n";
                                $mailcontent.="Spielklasse 09/10:    ".$spielklasse."\n\n";
                                $mailcontent.="Position:             ".$position."\n\n";
                                $mailcontent.="Turnierklasse:             ".$turnierklasse."\n\n";
                                $mailcontent.="Bemerkung:  \n".$eintrag."\n\n";
                                $mailcontent=ereg_replace("(<br>)","\n",$mailcontent);
                                $mailcontent=str_replace("&quot;","\"",$mailcontent);
                                $mailcontent=str_replace("&amp;","&",$mailcontent);
                                $mailcontent=str_replace("&lt;","<",$mailcontent);
                                $mailcontent=str_replace("&gt;",">",$mailcontent);
                                $from_address="From: \"".$nachname.", ".$vorname."\" <".$email.">\n";
                                mail("123@gmx.net",$subject,$mailcontent,$from_address);

                                $subject="Bestätigung der Anmeldung";
                                $mailcontent="Hallo ".$vorname." ".$nachname.",<br><br>Soeben (".$today.") ist Ihre Anmeldung bei uns eingegangen. Vielen Dank. <br><br>Hier als Bestätigung und zur Überprüfung die angegebenen Daten.\n\n";
                                $mailcontent.="Nachname:             ".$nachname."\n\n";
                                $mailcontent.="Vorname:             ".$vorname."\n\n";
                                $mailcontent.="eMail:            ".$email."\n\n";
                                $mailcontent.="Verein:             ".$verein."\n\n";
                                $mailcontent.="Spielklasse 09/10:    ".$spielklasse."\n\n";
                                $mailcontent.="Position:             ".$position."\n\n";
                                $mailcontent.="Turnierklasse:             ".$turnierklasse."\n\n";
                                $mailcontent.="Bemerkung:  \n".$eintrag."\n\n";
                                $mailcontent.="Kleiner Hinweis: Die Teilnehmer des Turniers werden zeitnah auf der Homepage veröffentlicht\n\n";
                                $mailcontent.="Die Teilnehmer der Damen: http://123.de/ppc2009Damen.php\n\n";
                                $mailcontent.="Die Teilnehmer der Herren A: http://123.de/ppc2009HerrenA.php\n\n";
                                $mailcontent.="Die Teilnehmer der Herren B: http://123.de/ppc2009HerrenB.php\n\n";
                                $mailcontent.="Die Teilnehmer der Herren C: http://123.de/ppc2009HerrenC.php\n\n";
                                $mailcontent.="Falls eine Teilnahme - aus welchen Gründen auch immer - nicht erfolgen kann, bitte um Abmeldung über folgenden Link: http://123.de/ppc2009Abmeldung.php oder via E-mail: 123@123.de\n\n";
                                $mailcontent.="Vielen Dank!\n\n";
                                $mailcontent.="Mit freundlichen Grüßen\n\n";
                                $mailcontent=ereg_replace("(<br>)","\n",$mailcontent);
                                $mailcontent=str_replace("&quot;","\"",$mailcontent);
                                $mailcontent=str_replace("&amp;","&",$mailcontent);
                                $mailcontent=str_replace("&lt;","<",$mailcontent);
                                $mailcontent=str_replace("&gt;",">",$mailcontent);
                                $from_address="From: \" 123h\" <123@123.de>\n";
                                mail("123@gmx.de",$subject,$mailcontent,$from_address);
//                              mail("\"".$nachname."\" <".$email.">",$subject,$mailcontent,$from_address);

mysql_query("INSERT INTO ppc
(nachname, vorname, email, verein, spielklasse, position, turnierklasse, eintrag, timestamp)
VALUES
('$nachname', '$vorname', '$email', '$verein', '$spielklasse', '$position', '$turnierklasse', '$eintrag', NOW())")
or die(mysql_error());

                 }
                 }


mysql_close($link);


                echo "<div id=\"box1\">\n";
                echo "<p><b><font size=\"+2\">Anmeldung zum</font></b></p>\n";
                if ($meldung != "") {echo $meldung;}
                echo "<center>\n";
                echo "<form name=\"anmeldungform\" action=\"ppc2009Anmeldung_spieler1.php\" method=\"POST\">\n";
                echo "<table width=\"10\">\n";
                echo "<tr>\n";
                echo "<tr><td colspan=\"2\">&nbsp;</td></tr>";
                echo "<tr>\n";
                echo "<td align=\"left\">Nachname:</td><td align=\"left\"><input name=\"nachname\" type=\"text\" id=\"name\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$nachname."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Vorname:</td><td align=\"left\"><input name=\"vorname\" type=\"text\" id=\"vorname\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$vorname."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">eMail:</td><td align=\"left\"><input name=\"email\" type=\"text\" id=\"email\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$email."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Verein:</td><td align=\"left\"><input name=\"verein\" type=\"text\" id=\"verein\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$verein."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Spielklasse 09/10:</td><td align=\"left\"><input name=\"spielklasse\" type=\"text\" id=\"spielklasse\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$spielklasse."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Position:</td><td align=\"left\"><input name=\"position\" type=\"text\" id=\"position\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$position."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
//                echo "<td align=\"left\">Turnierklasse:</td><td align=\"left\"><input name=\"turnierklasse\" type=\"text\" id=\"turnierklasse\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
//                echo " value=\"".$turnierklasse."\"";
echo "<form action=\"".$_SERVER['SCRIPT_NAME']."\" method=\"post\">\n";
echo "<td align=\"left\">Turnierklasse:</td><td align=\"left\"><select name=\"turnierklasse\" id =\"turnierklasse\"> ".$listeTK."</select>\n";

                echo "></td>\n";
                echo "</tr>\n";

                echo "<tr>\n";
                echo "<td align=\"left\" valign=\"top\">Anmerkung:</td><td align=\"left\"><textarea name=\"eintrag\" cols=\"70\" rows=\"7\" id=\"eintrag\" class=\"eingabe\">".$eintrag."</textarea></td>\n";
                echo "</tr>\n";
                echo "<tr><td colspan=\"2\">&nbsp;</td></tr>";

//eingefügt aus http://www.stoppt-den-spam.info
                echo "<tr>\n";
                echo "<td align=\"left\"><img src=\"captcha/captcha.php\" border=\"0\" title=\"Sicherheitscode\"></td>\n";
                echo "<td align=\"right\">Sicherheitscode vom Bild: <input type=\"text\" name=\"sicherheitscode\" size=\"5\"></td>\n";
                echo "</tr>\n";
//hier ende des einfügens
                echo "<tr><td colspan=\"2\">&nbsp;</td></tr>";
                echo "</table>\n";
                echo "<input name=\"formposten\" type=\"submit\" value=\"Abschicken\" class=\"button\" onclick=\"this.value='Bitte warten...';this.enabled=false;\"></center><br>\n";
                echo "</form>\n";
                echo "</center>\n";
                include "aktualisierung.php";
                echo "</div>\n";

include "inc/ende.php.inc";
?>

20.02.2009 15:24

2 Jörg Kruse

Den value Wert hier leer lassen:

$listeTK .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";

Dann kannst du auch dort mit empty() prüfen

20.02.2009 15:36

3 tobi (Gast)

cool das klappt. danke.

ich hab hinter meinem auswahlfeld ne klammer stehen >
weiß nur nicht woher die kommt.
fällt des dir auf den ersten blick auf?

20.02.2009 15:51

4 Jörg Kruse

Das steht in der übernächsten Zeile:

echo "<td align=\"left\">Turnierklasse:</td><td align=\"left\"><select name=\"turnierklasse\" id =\"turnierklasse\"> ".$listeTK."</select>\n";

 echo "></td>\n";

20.02.2009 15:58

5 tobi

super perfekt. bei soviel zeichen kann man schon durcheinander kommen. danke. super hier das forum!

wie du im code gesehen hast werden ja alle daten in der datenbank gespeichert.
ich mlchte die daten jetzt auslesen. das klappt auch.
bisher werden mir alle teilnehmer angezeigt.
gibt es auch die möglichkeit dass mir nur teilnehmer angezeigt werden die in der datenbank unter turnierklasse damen stehen haben?

<?php
include "inc/kopf.php.inc";
include "inc/menu.php.inc";

//Datenbank verbinden
include "../zugang_2.php.inc";

echo "<div id=\"box1\">\n";
echo "<p><b><font size=\"+2\">Teilnehmer Damen</font></b></p>\n";
echo "<center>\n";

$sql = "
SELECT id, nachname, vorname, verein, timestamp FROM ppc_anmeldungen
";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

echo "Bisher sind X Meldungen zum Turnier 2009 bei uns eingegangen!";
echo "<br>";
echo "<br>";

echo "<table width=\"80%\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">";
echo "<tr>";
echo "<td></td>";
echo "<td>Name</td>";
echo "<td>Vorname</td>";
echo "<td>Verein</td>";
echo "<td>Meldedatum</td>";
echo "</tr>";

while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $zeile['id'] . "</td>";
echo "<td>". $zeile['nachname'] . "</td>";
echo "<td>". $zeile['vorname'] . "</td>";
echo "<td>". $zeile['verein'] . "</td>";
echo "<td>" . date("d.m.Y G:i:s", strtotime($zeile['timestamp'])) . "</td>";
echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_erg );

echo "<br>";
echo "<hr noshade size=\"2\">";
echo "<p><b>zu den gemeldeten Teilnehmern der anderen Turnierklassen:</b></p>";
echo  "<a href=\"ppc2009HerrenA.php\">Herren A-Klasse</a><br>";
echo  "<a href=\"ppc2009HerrenB.php\">Herren B-Klasse</a><br>";
echo  "<a href=\"ppc2009HerrenC.php\">Herren C-Klasse</a><br>";

echo "<br>";
include "aktualisierung.php";
echo "</center>\n";
echo "</div>\n";

mysql_close($link);

include "inc/ende.php.inc";
?>

20.02.2009 16:19

6 Jörg Kruse

Ich kenne die Datenbankstruktur nicht, aber du kannst die Abfrage mit einem WHERE Statement einschränken

$sql = "SELECT id, nachname, vorname, verein, timestamp FROM ppc_anmeldungen WHERE turnierklasse = 'damen'";

20.02.2009 19:37

7 tobi

super hat geklappt

das ist ja einfach

21.02.2009 02:43

8 tobi

so noch ein kleines problem: bzw 2.

in meiner datenbank sind neben den Damen, auch Herrren A/B/C gespeichert.
wenn ich jetzt für die damen auslese, steht da z.b. die in der datenbank gespeichert ist, z.b. 7 und 12 ...
kann ich da irgendwie machen das es da 1, 2, 3, ... steht?

außerdem problem 2: würde ich geren oberhalb der Tabelle folgendes angeben:
echo "Bisher sind (X) Meldungen zum Turnier 2009 bei uns eingegangen!";
für X soll die Anzahl der Teilnehmer der klasse erscheinen.
müßte ja irgendwie mit:
SELECT COUNT(*) FROM ppc_anmeldungen WHERE turnierklasse = 'Damen'"; gehen oder? bekomme es nur nicht hin

<?php
include "inc/kopf.php.inc";
include "inc/menu.php.inc";

//Datenbank verbinden
include "../zugang_2.php.inc";

echo "<div id=\"box1\">\n";
echo "<p><b><font size=\"+2\">Teilnehmer Damen</font></b></p>\n";
echo "<center>\n";

$sql = "
SELECT id, nachname, vorname, verein, timestamp FROM ppc_anmeldungen WHERE turnierklasse = 'Damen'";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}


echo "Bisher sind (X) Meldungen zum Turnier 2009 bei uns eingegangen!";
echo "<br>";
echo "<br>";

echo "<table width=\"80%\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">";
echo "<tr>";
echo "<td></td>";
echo "<td>Name</td>";
echo "<td>Vorname</td>";
echo "<td>Verein</td>";
echo "<td>Meldedatum</td>";
echo "</tr>";

while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $zeile['id'] . "</td>";
echo "<td>". $zeile['nachname'] . "</td>";
echo "<td>". $zeile['vorname'] . "</td>";
echo "<td>". $zeile['verein'] . "</td>";
echo "<td>" . date("d.m.Y G:i:s", strtotime($zeile['timestamp'])) . "</td>";
echo "</tr>";
}
echo "</table>";

mysql_free_result( $db_erg );

echo "<br>";
echo "<hr noshade size=\"2\">";
echo "<p><b>zu den gemeldeten Teilnehmern der anderen Turnierklassen:</b></p>";
echo  "<a href=\"ppc2009HerrenA.php\">Herren A-Klasse</a><br>";
echo  "<a href=\"ppc2009HerrenB.php\">Herren B-Klasse</a><br>";
echo  "<a href=\"ppc2009HerrenC.php\">Herren C-Klasse</a><br>";

echo "<br>";
include "aktualisierung.php";
echo "</center>\n";
echo "</div>\n";

mysql_close($link);

include "inc/ende.php.inc";
?>

24.02.2009 13:40

9 Jörg Kruse

Zitat von tobi
in meiner datenbank sind neben den Damen, auch Herrren A/B/C gespeichert.
wenn ich jetzt für die damen auslese, steht da z.b. die in der datenbank gespeichert ist, z.b. 7 und 12 ...
kann ich da irgendwie machen das es da 1, 2, 3, ... steht?

Meinst du diesen Abschnitt:

echo "<td>". $zeile['id'] . "</td>";

Da musst du stattdessen in der Schleife eine Zahl hochzählen lassen

$i = 1;
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $i . "</td>";
echo "<td>". $zeile['nachname'] . "</td>";
echo "<td>". $zeile['vorname'] . "</td>";
echo "<td>". $zeile['verein'] . "</td>";
echo "<td>" . date("d.m.Y G:i:s", strtotime($zeile['timestamp'])) . "</td>";
echo "</tr>";
$i++;
}

außerdem problem 2: würde ich geren oberhalb der Tabelle folgendes angeben:
echo "Bisher sind (X) Meldungen zum Turnier 2009 bei uns eingegangen!";
für X soll die Anzahl der Teilnehmer der klasse erscheinen.
müßte ja irgendwie mit:
SELECT COUNT(*) FROM ppc_anmeldungen WHERE turnierklasse = 'Damen'"; gehen oder? bekomme es nur nicht hin

Der Ansatz ist schon ok. Wo kommst du denn nicht weiter, bzw. wo gibt es da ein Problem?

24.02.2009 14:18 | geändert: 24.02.2009 14:19

10 tobi

so teil 1 klappt, danke.

teil 2 hab ich ne fehler meldung
Ungültige Abfrage: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT(*) FROM ppc_anmeldungen WHERE turnierklasse = 'Damen'' at line 2

<?php
include "inc/kopf.php.inc";
include "inc/menu.php.inc";

//Datenbank verbinden
include "../zugang_2.php.inc";

echo "<div id=\"box1\">\n";
echo "<p><b><font size=\"+2\">Teilnehmer Damen</font></b></p>\n";
echo "<center>\n";

$sql = "
SELECT id, nachname, vorname, verein, timestamp FROM ppc_anmeldungen WHERE turnierklasse = 'Damen'
SELECT COUNT(*) FROM ppc_anmeldungen WHERE turnierklasse =  'Damen'
";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

echo "Bisher sind (*) Meldungen zum Turnier 2009 bei uns eingegangen!";
echo "<br>";
echo "<br>";

echo "<table width=\"80%\" border=\"1\" cellpadding=\"3\" cellspacing=\"0\">";
echo "<tr>";
echo "<td></td>";
echo "<td>Name</td>";
echo "<td>Vorname</td>";
echo "<td>Verein</td>";
echo "<td>Meldedatum</td>";
echo "</tr>";

$anzahl = 1;
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $anzahl . "</td>";
echo "<td>". $zeile['nachname'] . "</td>";
echo "<td>". $zeile['vorname'] . "</td>";
echo "<td>". $zeile['verein'] . "</td>";
echo "<td>" . date("d.m.Y G:i:s", strtotime($zeile['timestamp'])) . "</td>";
echo "</tr>";
$anzahl++;
}
echo "</table>";

mysql_free_result( $db_erg );

echo "<br>";
echo "<hr noshade size=\"2\">";
echo "<p><b>zu den gemeldeten Teilnehmern der anderen Turnierklassen:</b></p>";
echo  "<a href=\"ppc2009HerrenA.php\">Herren A-Klasse</a><br>";
echo  "<a href=\"ppc2009HerrenB.php\">Herren B-Klasse</a><br>";
echo  "<a href=\"ppc2009HerrenC.php\">Herren C-Klasse</a><br>";

echo "<br>";
include "aktualisierung.php";
echo "</center>\n";
echo "</div>\n";

mysql_close($link);

include "inc/ende.php.inc";
?>

24.02.2009 14:27