Zur Navigation

Formular automatisch stoppen?

1 tobi

kann ich ein formular quasi am absenden hindern wenn eine bestimmte anzahl erreicht ist ?? (wenn in der datenbank 192 teilnehmer vorhanden sind)
und zusätzlich eine meldung bringen: "teilnehmer grenze errreicht - anmelden nicht mehr möglich"

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

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

error_reporting(E_ALL);

                        $today = date("l; d.m.Y H:i:s");
                        $nachname="";
                        $vorname="";
                        $email="";
                        $verein="";
                        $spielklasse="";
                        $position="";
                        $turnierklasse="";
                        $eintrag="";
                        $timestamp="";
                        $meldung="";
                        $meldungok="";

                        $nachnamex = array('');
                        $vornamex = array('');
                        $emailx = array('');
                        $vereinx = array('');
                        $spielklassex = array('');
                        $positionx = array('');
                        $turnierklassex = array('');
                        $eintragx = array('');

$meldung = "";
$meldungok = "";

// Werte für Listenfeld
$turnierklasse1 = array(
"1"=>"Damen",
"2"=>"Herren A",
"3"=>"Herren B",
"4"=>"Herren C"
       );

         $listeTK[0] = '';
         $listeTK[0] .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";
         if (empty($_POST['turnierklasse'])) {
            foreach ($turnierklasse1 as $keyTK => $valuTK) {
               $listeTK[0] .= "\t<option value=\"".$keyTK."\">".$valuTK."</option>\n";
            }
         }
         $listeTK[1] = $listeTK[0];



if(isset($_POST['sicherheitscode']))
{
    $code=$_POST['sicherheitscode'];
    $anzahl = 1;
    $nachnamex =($_POST['nachname']);
    $vornamex = ($_POST['vorname']);
    $emailx = ($_POST['email']);
    $vereinx = ($_POST['verein']);
    $spielklassex = ($_POST['spielklasse']);
    $positionx = ($_POST['position']);
    $turnierklassex = ($_POST['turnierklasse']);
    $eintragx = ($_POST["eintrag"]);

if(empty($_SESSION['captcha_spam'] ) || $code != $_SESSION['captcha_spam'])
   $meldung .= "<rot><b>Sicherheitscode falsch eingegeben!</b></rot><br>";

    $i = 0;
    while ($i < $anzahl) {
        $nachname = mysql_real_escape_string($nachnamex[$i]);
        $vorname = mysql_real_escape_string($vornamex[$i]);
        $email = mysql_real_escape_string($emailx[$i]);
        $verein = mysql_real_escape_string($vereinx[$i]);
        $spielklasse = mysql_real_escape_string($spielklassex[$i]);
        $position = mysql_real_escape_string($positionx[$i]);
        $turnierklasse5 = mysql_real_escape_string($turnierklassex[$i]);
        $eintrag = mysql_real_escape_string($eintragx);

               if (!empty($_POST['turnierklasse'])) {
               foreach ($turnierklasse1 as $keyTK => $valuTK) {
               if ($keyTK != '-' && ($keyTK == $turnierklassex[$i])){
                  $listeTK[$i] .= "\t<option value=\"".$keyTK."\" selected='selected'>".$valuTK."</option>\n";
               } else {
                  $listeTK[$i] .= "\t<option value=\"".$keyTK."\">".$valuTK."</option>\n";
               }// ende for
            }
            }

if(empty($nachnamex[$i]))
   $meldung .= "<rot><b>Bitte Nachnamen  bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($vornamex[$i]))
   $meldung .= "<rot><b>Bitte Vornamen bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($emailx[$i]) || !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 bei Spieler " . ($i + 1) . " angeben!</b></rot><br>";
if(empty($vereinx[$i]))
   $meldung .= "<rot><b>Bitte Verein bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($spielklassex[$i]))
   $meldung .= "<rot><b>Bitte Spielklasse bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($positionx[$i]))
   $meldung .= "<rot><b>Bitte Position bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($turnierklassex[$i]))
   $meldung .= "<rot><b>Bitte richtige Turnierklasse bei Spieler " . ($i + 1) . " auswählen (Damen, Herren A, Herren B oder Herren C)!</b></rot><br>";

if(empty($meldung))

{

                   $meldungok="<p><rot><b>Die Anmeldung zum PPC 2009 ist bei uns eingegangen!<br>In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung.</b></rot><br><a href=\"ppc2009Anmeldung.php\">Zurück zur Übersicht</a></p>\n";

//Anmeldemail Turnierleitung
                                $subject="Neue Anmeldung zum PPC 2009";
                                $mailcontent="Es gibt eine neue Anmeldung zum PPC 12 2009.\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:             ".$turnierklasse1[$turnierklasse5]."\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("email@123.de",$subject,$mailcontent,$from_address);
                                mail("123@123.de",$subject,$mailcontent,$from_address);

//Bestätigungsmail Anmeldender
                                $subject="Bestätigung der Anmeldung zum PPC 2009";
                                $mailcontent="Hallo ".$vorname." ".$nachname.",<br><br>Soeben (".$today.") ist Ihre Anmeldung zum Ping-Pong-Café Am Schelmenbusch 12 2009 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:             ".$turnierklasse1[$turnierklasse5]."\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<br>oder via E-mail: 123@123.de\n\n";
                                $mailcontent.="Vielen Dank!\n\n";
                                $mailcontent.="Mit freundlichen Grüßen<br>123\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: \"PPC - 123\" <123@123.de>\n";
                                mail("email@123.de",$subject,$mailcontent,$from_address);
                                mail("\"".$nachname."\" <".$email.">",$subject,$mailcontent,$from_address);

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





mysql_close($link);


                echo "<div id=\"box1\">\n";
                echo "<p><b><font size=\"+2\">Anmeldung zum Ping-Pong-Café am Schelmenbusch 2009</font></b></p>\n";
                if ($meldung != "") {echo $meldung;}
                if ($meldungok != "") {echo $meldungok;}
                echo "<br>\n";
                echo "<hr noshade size=\"2\">\n";
                echo "<center>\n";
                echo "<form name=\"anmeldungform\" action=\"ppc2009Anmeldung_spieler1.php\" method=\"POST\">\n";
                echo "<table width=\"10\">\n";
                echo "<tr>\n";
                echo "<td align=\"center\" colspan=\"2\"><font size=\"+1\">Spieler 1:</font></td>\n";
                echo "</tr>\n";
                echo "<tr><td colspan=\"2\">&nbsp;</td></tr>";
                echo "<td align=\"left\">Nachname:</td><td align=\"left\"><input name=\"nachname[]\" type=\"text\" id=\"name\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$nachnamex[0]."\"";
                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=\"".$vornamex[0]."\"";
                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=\"".$emailx[0]."\"";
                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=\"".$vereinx[0]."\"";
                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=\"".$spielklassex[0]."\"";
                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=\"".$positionx[0]."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Turnierklasse:</td><td align=\"left\"><select name=\"turnierklasse[]\" id =\"turnierklasse\"> ".$listeTK[0]."</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 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";
?>

09.09.2009 00:44 | geändert: 09.09.2009 00:44

2 Jörg Kruse

Ich würde das Formular gar nicht erst einblenden, wenn die maximale Anzahl der Teilnehmer erreicht ist, also so wie in diesem Beispiel.

09.09.2009 08:53

3 tobi

so habe ich dass jetzt gemacht, ist dass sinnvoll so?
die sql und der fettmarkierte bereich sind wahrscheins überflüssig, die brauch ich ja eigentlich nicht doer?

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

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

error_reporting(E_ALL);

$sql = "
SELECT turnierklassen.name, turnierklassen.url, COUNT(ppc_anmeldungen.id) AS anzahl FROM turnierklassen
LEFT JOIN ppc_anmeldungen ON turnierklassen.id = ppc_anmeldungen.turnierklasse
GROUP BY turnierklassen.id
ORDER BY turnierklassen.name";

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

$result = mysql_query ( $sql );

$teilnehmerliste="";
$anzahl="";

while (list($turnierklasse, $url ,$teilnehmeranzahl) = mysql_fetch_row ($result))
{
  if ($teilnehmeranzahl >= 0)  {
        $teilnehmerliste.='Teilnehmer ' . $turnierklasse . ': <b>'  . $teilnehmeranzahl .  '</b> zu den gemeldeten Teilnehmer ' . $url . '<br>';
        $anzahl= $anzahl + $teilnehmeranzahl;
  }
}

if ($anzahl < 192) {

/* Text1 */

                        $today = date("l; d.m.Y H:i:s");
                        $nachname="";
                        $vorname="";
                        $email="";
                        $verein="";
                        $spielklasse="";
                        $position="";
                        $turnierklasse="";
                        $eintrag="";
                        $timestamp="";
                        $meldung="";
                        $meldungok="";

                        $nachnamex = array('');
                        $vornamex = array('');
                        $emailx = array('');
                        $vereinx = array('');
                        $spielklassex = array('');
                        $positionx = array('');
                        $turnierklassex = array('');
                        $eintragx = array('');

$meldung = "";
$meldungok = "";

// Werte für Listenfeld
$turnierklasse1 = array(
"1"=>"Damen",
"2"=>"Herren A",
"3"=>"Herren B",
"4"=>"Herren C"
       );

         $listeTK[0] = '';
         $listeTK[0] .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";
         if (empty($_POST['turnierklasse'])) {
            foreach ($turnierklasse1 as $keyTK => $valuTK) {
               $listeTK[0] .= "\t<option value=\"".$keyTK."\">".$valuTK."</option>\n";
            }
         }
         $listeTK[1] = $listeTK[0];



if(isset($_POST['sicherheitscode']))
{
    $code=$_POST['sicherheitscode'];
    $anzahl = 1;
    $nachnamex =($_POST['nachname']);
    $vornamex = ($_POST['vorname']);
    $emailx = ($_POST['email']);
    $vereinx = ($_POST['verein']);
    $spielklassex = ($_POST['spielklasse']);
    $positionx = ($_POST['position']);
    $turnierklassex = ($_POST['turnierklasse']);
    $eintragx = ($_POST["eintrag"]);

if(empty($_SESSION['captcha_spam'] ) || $code != $_SESSION['captcha_spam'])
   $meldung .= "<rot><b>Sicherheitscode falsch eingegeben!</b></rot><br>";

    $i = 0;
    while ($i < $anzahl) {
        $nachname = mysql_real_escape_string($nachnamex[$i]);
        $vorname = mysql_real_escape_string($vornamex[$i]);
        $email = mysql_real_escape_string($emailx[$i]);
        $verein = mysql_real_escape_string($vereinx[$i]);
        $spielklasse = mysql_real_escape_string($spielklassex[$i]);
        $position = mysql_real_escape_string($positionx[$i]);
        $turnierklasse5 = mysql_real_escape_string($turnierklassex[$i]);
        $eintrag = mysql_real_escape_string($eintragx);

               if (!empty($_POST['turnierklasse'])) {
               foreach ($turnierklasse1 as $keyTK => $valuTK) {
               if ($keyTK != '-' && ($keyTK == $turnierklassex[$i])){
                  $listeTK[$i] .= "\t<option value=\"".$keyTK."\" selected='selected'>".$valuTK."</option>\n";
               } else {
                  $listeTK[$i] .= "\t<option value=\"".$keyTK."\">".$valuTK."</option>\n";
               }// ende for
            }
            }

if(empty($nachnamex[$i]))
   $meldung .= "<rot><b>Bitte Nachnamen  bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($vornamex[$i]))
   $meldung .= "<rot><b>Bitte Vornamen bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($emailx[$i]) || !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 bei Spieler " . ($i + 1) . " angeben!</b></rot><br>";
if(empty($vereinx[$i]))
   $meldung .= "<rot><b>Bitte Verein bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($spielklassex[$i]))
   $meldung .= "<rot><b>Bitte Spielklasse bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($positionx[$i]))
   $meldung .= "<rot><b>Bitte Position bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($turnierklassex[$i]))
   $meldung .= "<rot><b>Bitte richtige Turnierklasse bei Spieler " . ($i + 1) . " auswählen (Damen, Herren A, Herren B oder Herren C)!</b></rot><br>";

if(empty($meldung))

{

                   $meldungok="<p><rot><b>Die Anmeldung zum PPC 2009 ist bei uns eingegangen!<br>In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung.</b></rot><br><a href=\"ppc2009Anmeldung.php\">Zurück zur Übersicht</a></p>\n";

//Anmeldemail Turnierleitung
                                $subject="Neue Anmeldung zum PPC 2009";
                                $mailcontent="Es gibt eine neue Anmeldung zum PPC 12 2009.\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:             ".$turnierklasse1[$turnierklasse5]."\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("email@123.de",$subject,$mailcontent,$from_address);
                                mail("123.de",$subject,$mailcontent,$from_address);

//Bestätigungsmail Anmeldender
                                $subject="Bestätigung der Anmeldung zum PPC 2009";
                                $mailcontent="Hallo ".$vorname." ".$nachname.",<br><br>Soeben (".$today.") ist Ihre Anmeldung zum Ping-Pong-Café Am Schelmenbusch 12 2009 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:             ".$turnierklasse1[$turnierklasse5]."\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://ttc-langensteinbach.de/ppc2009Abmeldung.php<br>oder via E-mail: 123@123.de\n\n";
                                $mailcontent.="Vielen Dank!\n\n";
                                $mailcontent.="Mit freundlichen Grüßen<br>123\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: \"123 123\" <ppc@ttc-langensteinbach.de>\n";
                                mail("email@123.de",$subject,$mailcontent,$from_address);
                                mail("\"".$nachname."\" <".$email.">",$subject,$mailcontent,$from_address);

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





mysql_close($link);


                echo "<div id=\"box1\">\n";
                echo "<p><b><font size=\"+2\">Anmeldung zum Ping-Pong-Café am Schelmenbusch 2009</font></b></p>\n";
                if ($meldung != "") {echo $meldung;}
                if ($meldungok != "") {echo $meldungok;}
                echo "<br>\n";
                echo "<hr noshade size=\"2\">\n";
                echo "<center>\n";
                echo "<form name=\"anmeldungform\" action=\"ppc2009Anmeldung_spieler1_test.php\" method=\"POST\">\n";
                echo "<table width=\"10\">\n";
                echo "<tr>\n";
                echo "<td align=\"center\" colspan=\"2\"><font size=\"+1\">Spieler 1:</font></td>\n";
                echo "</tr>\n";
                echo "<tr><td colspan=\"2\">&nbsp;</td></tr>";
                echo "<td align=\"left\">Nachname:</td><td align=\"left\"><input name=\"nachname[]\" type=\"text\" id=\"name\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$nachnamex[0]."\"";
                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=\"".$vornamex[0]."\"";
                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=\"".$emailx[0]."\"";
                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=\"".$vereinx[0]."\"";
                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=\"".$spielklassex[0]."\"";
                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=\"".$positionx[0]."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Turnierklasse:</td><td align=\"left\"><select name=\"turnierklasse[]\" id =\"turnierklasse\"> ".$listeTK[0]."</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 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";

} else {
/* Text2 */
echo "<div id=\"box1\">\n";
echo "<p><b><font size=\"+2\">Anmeldung zum Ping-Pong-Café am Schelmenbusch 2009</font></b></p>\n";
echo "Liebe Teilnehmerinteressenten,<br>unsere maximale Teilnehmerkapazität ist erreicht (evtl. auch die Meldefrist).<br>Wir danken für die riesige Resonanz.<br>Evtl. werden kurzfristig noch einige Plätze frei. Anfragen diesbezüglich werden bis Freitag 18 Uhr unter dieser Mailadresse: <img src=\"bilder/mailadressen/grafik_mail_ppc.gif\"> entgegengenommen.<br>Freitag nach 18 Uhr werden wir nur telefonisch Auskunft unter folgender Nummer  geben können.<br><br>\n";
}
                include "aktualisierung.php";
                echo "</div>\n";

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

außerdem, was passiert, wenn jetzt 2 personen zur gleichen zeit dass formlar aufmachen. die zahl ist bei 191. dann haben beide die möglich keit die 192. person zu seien. wer zuerst auf senden drückt hat den platz dann. was passiert dann wenn dann der 193 auf senden drückt, dann müßteer ja text 2 erhalten oder???

09.09.2009 11:58 | geändert: 09.09.2009 12:00

4 Jörg Kruse

die sql und der fettmarkierte bereich sind wahrscheins überflüssig, die brauch ich ja eigentlich nicht doer?

Überflüssig wohl nicht, du benötigst doch für die Fallunterscheidung $anzahl, welches du aus der Abfrage errechnest? Ich nehme aber an, dass du die Abfrage vereinfachen kannst - du musst die Teilnehmer ja nicht erst gruppieren, um sie am Ende wieder zusammenzuzählen? Da würde solch eine Abfrage vielleicht ausreichen:

SELECT COUNT(id) FROM ppc_anmeldungen

außerdem, was passiert, wenn jetzt 2 personen zur gleichen zeit dass formlar aufmachen. die zahl ist bei 191. dann haben beide die möglich keit die 192. person zu seien. wer zuerst auf senden drückt hat den platz dann. was passiert dann wenn dann der 193 auf senden drückt, dann müßteer ja text 2 erhalten oder???

Du kannst die Anzahl vor dem INSERT ja nochmal überprüfen.

09.09.2009 15:43

... 8 Monate später ...

5 tobi

ein dreiviertel Jahr ist um und nun muß ich wieder an meinem Formluar weiter entwickeln.

3 Dinge bereiten mir noch Problemchen:

1) nach Absenden des Formulars bleiben alle felder gefüllt, was machmal zu irritationen beim Betrachter führt, ob die Anmeldung überhaupt gesendet worden ist (trotz meldung: Die Anmeldung zum PPC 2010 ist bei uns eingegangen! In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung. Zurück zur Übersicht)
Kann ich die Felder nach erfolgreichem Ansenden leeren lassen?

2) wenn jemand bei der freiligen Angabe beim Feld "Eintrag" einen oder mehrere Absätze macht, oder das Formular versucht zu senden und es nicht Ordnungsgemäß gesendet wird, tauchen danach im "Feld Eintrag" zusätzlich diese Zeichen auf:
\r\n\r\n
Kann ich irgendwie auschließen, dass oben gennante Zeichen eingefügt werden?

3) nehmen wir an, ich baue einen Puffer bzw. einen Anmeldestopp ein, der bei der Zahl 24 liegt.
wenn jemand das Formlar aufruft, und die Zahl bereits überschritten ist, dann wird folgendes ausgegeben: Liebe Teilnehmerinteressenten, unsere maximale Teilnehmerkapazität ist erreicht (evtl. auch die Meldefrist). Wir danken für die riesige Resonanz. Evtl. werden kurzfristig noch einige Plätze frei. Anfragen diesbezüglich werden bis Freitag 18 Uhr unter dieser Mailadresse: ...
Dieser Teil funktioniert bisher.
Nun aber die Frage, die Zahl liegt aktuell bei 23, 2 Personen greifen zur gleichen Zeit auf das Formlar zu und können beide ihre Anmeldung erfolgreich tätigen. Was zur Folge hat, dass die Zahl bei 25 liegt und nicht bei gewünschten und eigentlich erlaubter 24.
Wie kann ich eine zusätzliche Prüfung der Anzahl bevor die Anmeldung abgesendet wird einbauen und zusätzlich mit einem Hinweistext versehen?

hier mein kompletter Code:
<?php
session_start();

//Datenbank verbinden
include "";

// include Kopfbereich
include "";

// Darstellung des Inhaltes linksbeundig oder zentriert (gebe $links oder $zen ein)
echo "$zen\n";

// Beginn des Inhaltes der einzelnen Seite
error_reporting(E_ALL);

$sql = "
SELECT turnierklassen_samstag.name, turnierklassen_samstag.url, COUNT(ppc_anmeldungen_samstag.id) AS anzahl FROM turnierklassen_samstag
LEFT JOIN ppc_anmeldungen_samstag ON turnierklassen_samstag.id = ppc_anmeldungen_samstag.turnierklasse
GROUP BY turnierklassen_samstag.id
ORDER BY turnierklassen_samstag.name";

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

$result = mysql_query ( $sql );

$teilnehmerliste="";
$anzahl="";

while (list($turnierklasse, $url ,$teilnehmeranzahl) = mysql_fetch_row ($result))
{
  if ($teilnehmeranzahl >= 0)  {
        $teilnehmerliste.='Teilnehmer ' . $turnierklasse . ': <b>'  . $teilnehmeranzahl .  '</b> zu den gemeldeten Teilnehmer ' . $url . '<br>';
        $anzahl= $anzahl + $teilnehmeranzahl;
  }
}

if ($anzahl < 193) {

/* Text1 */

                        $today = date("l; d.m.Y H:i:s");
                        $nachname="";
                        $vorname="";
						$geschlecht="";
						$geburtsdatum_tag="";
						$geburtsdatum_monat="";
						$geburtsdatum_jahr="";
                        $email="";
                        $verein="";
						$verband="";
						$altersklasse="";
                        $spielklasse="";
                        $position="";
                        $turnierklasse="";
                        $eintrag="";
                        $timestamp="";
                        $meldung="";
                        $meldungok="";

                        $nachnamex = array('');
                        $vornamex = array('');
                        $geschlechtx = array('');
                        $geburtsdatum_tagx = array('');
						$geburtsdatum_monatx = array('');
						$geburtsdatum_jahrx = array('');
                        $emailx = array('');
                        $vereinx = array('');
						$verbandx = array('');
						$altersklassex = array('');
                        $spielklassex = array('');
                        $positionx = array('');
                        $turnierklassex = array('');
                        $eintragx = array('');

$meldung = "";
$meldungok = "";

// Werte für Listenfeld Geschlecht
$geschlecht1 = array(
"männlich"=>"männlich",
"weiblich"=>"weiblich",
       );

         $listeGS[0] = '';
         $listeGS[0] .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";
         if (empty($_POST['geschlecht'])) {
            foreach ($geschlecht1 as $keyGS => $valuGS) {
               $listeGS[0] .= "\t<option value=\"".$keyGS."\">".$valuGS."</option>\n";
            }
         }
         $listeGS[1] = $listeGS[0];	

// Werte für Listenfeld Geburtsdatum Tag
$geburtsdatum_tag1 = array(
"1"=>"1",
"2"=>"2",
"3"=>"3",
"4"=>"4",
"5"=>"5",
"6"=>"6",
"7"=>"7",
"8"=>"8",
"9"=>"9",
"10"=>"10",
"11"=>"11",
"12"=>"12",
"13"=>"13",
"14"=>"14",
"15"=>"15",
"16"=>"16",
"17"=>"17",
"18"=>"18",
"19"=>"19",
"20"=>"20",
"21"=>"21",
"22"=>"22",
"23"=>"23",
"24"=>"24",
"25"=>"25",
"26"=>"26",
"27"=>"27",
"28"=>"28",
"29"=>"29",
"30"=>"30",
"31"=>"31",
       );

         $listeGDT[0] = '';
         $listeGDT[0] .= "\t<option value='' selected='selected'>Tag auswählen</option>\n";
         if (empty($_POST['geburtsdatum_tag'])) {
            foreach ($geburtsdatum_tag1 as $keyGDT => $valuGDT) {
               $listeGDT[0] .= "\t<option value=\"".$keyGDT."\">".$valuGDT."</option>\n";
            }
         }
         $listeGDT[1] = $listeGDT[0];		

	// Werte für Listenfeld Geburtsdatum Monat
$geburtsdatum_monat1 = array(
"1"=>"1",
"2"=>"2",
"3"=>"3",
"4"=>"4",
"5"=>"5",
"6"=>"6",
"7"=>"7",
"8"=>"8",
"9"=>"9",
"10"=>"10",
"11"=>"11",
"12"=>"12",
       );

         $listeGDM[0] = '';
         $listeGDM[0] .= "\t<option value='' selected='selected'>Monat auswählen</option>\n";
         if (empty($_POST['geburtsdatum_monat'])) {
            foreach ($geburtsdatum_monat1 as $keyGDM => $valuGDM) {
               $listeGDM[0] .= "\t<option value=\"".$keyGDM."\">".$valuGDM."</option>\n";
            }
         }
         $listeGDM[1] = $listeGDM[0];	

// Werte für Listenfeld Geburtsdatum Jahr
$geburtsdatum_jahr1 = array(
"2004"=>"2004",
"2003"=>"2003",
"2002"=>"2002",
"2001"=>"2001",
"2000"=>"2000",
"1999"=>"1999",
"1998"=>"1998",
"1997"=>"1997",
"1996"=>"1996",
"1995"=>"1995",
"1994"=>"1994",
"1993"=>"1993",
"1992"=>"1992",
"1991"=>"1991",
"1990"=>"1990",
"1989"=>"1989",
"1988"=>"1988",
"1987"=>"1987",
"1986"=>"1986",
"1985"=>"1985",
"1984"=>"1984",
"1983"=>"1983",
"1982"=>"1982",
"1981"=>"1981",
"1980"=>"1980",
"1979"=>"1979",
"1978"=>"1978",
"1977"=>"1977",
"1976"=>"1976",
"1975"=>"1975",
"1974"=>"1974",
"1973"=>"1973",
"1972"=>"1972",
"1971"=>"1971",
"1970"=>"1970",
"1969"=>"1969",
"1968"=>"1968",
"1967"=>"1967",
"1966"=>"1966",
"1965"=>"1965",
"1964"=>"1964",
"1963"=>"1963",
"1962"=>"1962",
"1961"=>"1961",
"1960"=>"1960",
"1959"=>"1959",
"1958"=>"1958",
"1957"=>"1957",
"1956"=>"1956",
"1955"=>"1955",
"1954"=>"1954",
"1953"=>"1953",
"1952"=>"1952",
"1951"=>"1951",
"1950"=>"1950",
"1949"=>"1949",
"1948"=>"1948",
"1947"=>"1947",
"1946"=>"1946",
"1945"=>"1945",
"1944"=>"1944",
"1943"=>"1943",
"1942"=>"1942",
"1941"=>"1941",
"1940"=>"1940",
"1939"=>"1939",
"1938"=>"1938",
"1937"=>"1937",
"1936"=>"1936",
"1935"=>"1935",
"1934"=>"1934",
"1933"=>"1933",
"1932"=>"1932",
"1931"=>"1931",
"1930"=>"1930",
       );

         $listeGDJ[0] = '';
         $listeGDJ[0] .= "\t<option value='' selected='selected'>Jahr auswählen</option>\n";
         if (empty($_POST['geburtsdatum_jahr'])) {
            foreach ($geburtsdatum_jahr1 as $keyGDJ => $valuGDJ) {
               $listeGDJ[0] .= "\t<option value=\"".$keyGDJ."\">".$valuGDJ."</option>\n";
            }
         }
         $listeGDJ[1] = $listeGDJ[0];		 

// Werte für Listenfeld Verband
$verband1 = array(
"BaTTV"=>"BaTTV",
"TTVWH"=>"TTVWH",
"SbTTV"=>"SbTTV",
"PTTV"=>"PTTV",
"STTB"=>"STTB",
"HeTTV"=>"HeTTV",
"ByTTV"=>"ByTTV",
       );

         $listeVE[0] = '';
         $listeVE[0] .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";
         if (empty($_POST['verband'])) {
            foreach ($verband1 as $keyVE => $valuVE) {
               $listeVE[0] .= "\t<option value=\"".$keyVE."\">".$valuVE."</option>\n";
            }
         }
         $listeVE[1] = $listeVE[0];	

// Werte für Listenfeld Altersklasse
$altersklasse1 = array(
"Herren"=>"Herren",
"Damen"=>"Damen",
"Jugend"=>"Jugend",
"Mädchen"=>"Mädchen",
"Schüler A"=>"Schüler A",
"Schülerinnen A"=>"Schülerinnen A",
"Schüler B"=>"Schüler B",
"Schülerinnen B"=>"Schülerinnen B",
       );

         $listeAK[0] = '';
         $listeAK[0] .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";
         if (empty($_POST['altersklasse'])) {
            foreach ($altersklasse1 as $keyAK => $valuAK) {
               $listeAK[0] .= "\t<option value=\"".$keyAK."\">".$valuAK."</option>\n";
            }
         }
         $listeAK[1] = $listeAK[0];	

// Werte für Listenfeld Spielklasse
$spielklasse1 = array(
"DTTL"=>"DTTL",
"1. Bundesliga"=>"1. Bundesliga",
"2. Bundesliga"=>"2. Bundesliga",
"Regionalliga Süd"=>"Regionalliga Süd",
"Regionalliga SW"=>"Regionalliga SW",
"Oberliga BW"=>"Oberliga BW",
"Oberliga SW"=>"Oberliga SW",
"Oberliga By"=>"Oberliga By",
"Badenliga"=>"Badenliga",
"Hessenliga"=>"Hessenliga",
"Bayernliga"=>"Bayernliga",
"1. Pfalzliga"=>"1. Pfalzliga",
"2. Pfalzliga"=>"2. Pfalzliga",
"Saarlandliga"=>"Saarlandliga",
"Verbandsliga"=>"Verbandsliga",
"Landesliga"=>"Landesliga",
"Verbandsklasse"=>"Verbandsklasse",
"1. Bezirksliga"=>"1. Bezirksliga",
"2. Bezirksliga"=>"2. Bezirksliga",
"3. Bezirksliga"=>"3. Bezirksliga",
"Bezirksoberliga"=>"Bezirksoberliga",
"Bezirksliga"=>"Bezirksliga",
"Bezirksklasse"=>"Bezirksklasse",
"Kreisliga"=>"Kreisliga",
"1. Kreisliga"=>"1. Kreisliga",
"2. Kreisliga"=>"2. Kreisliga",
"3. Kreisliga"=>"3. Kreisliga",
"4. Kreisliga"=>"4. Kreisliga",
"Kreisklasse"=>"Kreisklasse",
"Kreisklasse A"=>"Kreisklasse A",
"Kreisklasse B"=>"Kreisklasse B",
"Kreisklasse C"=>"Kreisklasse C",
"Kreisklasse D"=>"Kreisklasse D",
"1. Kreisklasse"=>"1. Kreisklasse",
"2. Kreisklasse"=>"2. Kreisklasse",
"3. Kreisklasse"=>"3. Kreisklasse",
"4. Kreisklasse"=>"4. Kreisklasse",
"Kreisliga A Br"=>"Kreisliga A Br",
"Kreisliga B Br"=>"Kreisliga B Br",
"Kreisklasse A Br"=>"Kreisklasse A Br",
"Kreisklasse B Br"=>"Kreisklasse B Br",
"Kreisklasse C Br"=>"Kreisklasse C Br",
"Sonstige"=>"Sonstige",
       );

         $listeSK[0] = '';
         $listeSK[0] .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";
         if (empty($_POST['spielklasse'])) {
            foreach ($spielklasse1 as $keySK => $valuSK) {
               $listeSK[0] .= "\t<option value=\"".$keySK."\">".$valuSK."</option>\n";
            }
         }
         $listeSK[1] = $listeSK[0];			 
		 
// Werte für Listenfeld Position
$position1 = array(
"1"=>"1",
"2"=>"2",
"3"=>"3",
"4"=>"4",
"5"=>"5",
"6"=>"6",
       );

         $listePO[0] = '';
         $listePO[0] .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";
         if (empty($_POST['position'])) {
            foreach ($position1 as $keyPO => $valuPO) {
               $listePO[0] .= "\t<option value=\"".$keyPO."\">".$valuPO."</option>\n";
            }
         }
         $listePO[1] = $listePO[0];		
		 
// Werte für Listenfeld Turnierklasse
$turnierklasse1 = array(
"1"=>"D-Klasse",
"2"=>"Damen B",
"3"=>"Jugend",
       );

         $listeTK[0] = '';
         $listeTK[0] .= "\t<option value='' selected='selected'>Bitte auswählen</option>\n";
         if (empty($_POST['turnierklasse'])) {
            foreach ($turnierklasse1 as $keyTK => $valuTK) {
               $listeTK[0] .= "\t<option value=\"".$keyTK."\">".$valuTK."</option>\n";
            }
         }
         $listeTK[1] = $listeTK[0];
		 

if(isset($_POST['sicherheitscode']))
{
    $code=$_POST['sicherheitscode'];
    $anzahl = 1;
    $nachnamex =($_POST['nachname']);
    $vornamex = ($_POST['vorname']);
	$geschlechtx = ($_POST['geschlecht']);
	$geburtsdatum_tagx = ($_POST['geburtsdatum_tag']);
	$geburtsdatum_monatx = ($_POST['geburtsdatum_monat']);
	$geburtsdatum_jahrx = ($_POST['geburtsdatum_jahr']);	
    $emailx = ($_POST['email']);
    $vereinx = ($_POST['verein']);
	$verbandx = ($_POST['verband']);
    $altersklassex = ($_POST['altersklasse']);		
    $spielklassex = ($_POST['spielklasse']);
    $positionx = ($_POST['position']);
    $turnierklassex = ($_POST['turnierklasse']);
    $eintragx = ($_POST["eintrag"]);

if(empty($_SESSION['captcha_spam'] ) || $code != $_SESSION['captcha_spam'])
   $meldung .= "<rot><b>Sicherheitscode falsch eingegeben!</b></rot><br>";

    $i = 0;
    while ($i < $anzahl) {
        $nachname = mysql_real_escape_string($nachnamex[$i]);
        $vorname = mysql_real_escape_string($vornamex[$i]);
		$geschlecht5 = mysql_real_escape_string($geschlechtx[$i]);
		$geburtsdatum_tag5 = mysql_real_escape_string($geburtsdatum_tagx[$i]);
		$geburtsdatum_monat5 = mysql_real_escape_string($geburtsdatum_monatx[$i]);
		$geburtsdatum_jahr5 = mysql_real_escape_string($geburtsdatum_jahrx[$i]);
        $email = mysql_real_escape_string($emailx[$i]);
        $verein = mysql_real_escape_string($vereinx[$i]);
 		$verband5 = mysql_real_escape_string($verbandx[$i]);
		$altersklasse5 = mysql_real_escape_string($altersklassex[$i]);		
		$spielklasse5 = mysql_real_escape_string($spielklassex[$i]);
        $position5 = mysql_real_escape_string($positionx[$i]);
        $turnierklasse5 = mysql_real_escape_string($turnierklassex[$i]);
        $eintrag = mysql_real_escape_string($eintragx);

               if (!empty($_POST['geschlecht'])) {
               foreach ($geschlecht1 as $keyGS => $valuGS) {
               if ($keyGS != '-' && ($keyGS == $geschlechtx[$i])){
                  $listeGS[$i] .= "\t<option value=\"".$keyGS."\" selected='selected'>".$valuGS."</option>\n";
               } else {
                  $listeGS[$i] .= "\t<option value=\"".$keyGS."\">".$valuGS."</option>\n";
               }// ende for

			}
			}	

			   if (!empty($_POST['geburtsdatum_tag'])) {
               foreach ($geburtsdatum_tag1 as $keyGDT => $valuGDT) {
               if ($keyGDT != '-' && ($keyGDT == $geburtsdatum_tagx[$i])){
                  $listeGDT[$i] .= "\t<option value=\"".$keyGDT."\" selected='selected'>".$valuGDT."</option>\n";
               } else {
                  $listeGDT[$i] .= "\t<option value=\"".$keyGDT."\">".$valuGDT."</option>\n";
               }// ende for
			   
			}
			}
			
			   if (!empty($_POST['geburtsdatum_monat'])) {
               foreach ($geburtsdatum_monat1 as $keyGDM => $valuGDM) {
               if ($keyGDM != '-' && ($keyGDM == $geburtsdatum_monatx[$i])){
                  $listeGDM[$i] .= "\t<option value=\"".$keyGDM."\" selected='selected'>".$valuGDM."</option>\n";
               } else {
                  $listeGDM[$i] .= "\t<option value=\"".$keyGDM."\">".$valuGDM."</option>\n";
               }// ende for
			   
			}
			}
			
			   if (!empty($_POST['geburtsdatum_jahr'])) {
               foreach ($geburtsdatum_jahr1 as $keyGDJ => $valuGDJ) {
               if ($keyGDJ != '-' && ($keyGDJ == $geburtsdatum_jahrx[$i])){
                  $listeGDJ[$i] .= "\t<option value=\"".$keyGDJ."\" selected='selected'>".$valuGDJ."</option>\n";
               } else {
                  $listeGDJ[$i] .= "\t<option value=\"".$keyGDJ."\">".$valuGDJ."</option>\n";
               }// ende for
			   
			}
			}
			  
			   if (!empty($_POST['verband'])) {
               foreach ($verband1 as $keyVE => $valuVE) {
               if ($keyVE != '-' && ($keyVE == $verbandx[$i])){
                  $listeVE[$i] .= "\t<option value=\"".$keyVE."\" selected='selected'>".$valuVE."</option>\n";
               } else {
                  $listeVE[$i] .= "\t<option value=\"".$keyVE."\">".$valuVE."</option>\n";
               }// ende for
			   
			}
			}
			
			   if (!empty($_POST['altersklasse'])) {
               foreach ($altersklasse1 as $keyAK => $valuAK) {
               if ($keyAK != '-' && ($keyAK == $altersklassex[$i])){
                  $listeAK[$i] .= "\t<option value=\"".$keyAK."\" selected='selected'>".$valuAK."</option>\n";
               } else {
                  $listeAK[$i] .= "\t<option value=\"".$keyAK."\">".$valuAK."</option>\n";
               }// ende for
			   
			}
			}
			
			   if (!empty($_POST['spielklasse'])) {
               foreach ($spielklasse1 as $keySK => $valuSK) {
               if ($keySK != '-' && ($keySK == $spielklassex[$i])){
                  $listeSK[$i] .= "\t<option value=\"".$keySK."\" selected='selected'>".$valuSK."</option>\n";
               } else {
                  $listeSK[$i] .= "\t<option value=\"".$keySK."\">".$valuSK."</option>\n";
               }// ende for
			   
			}
			}
			
			   if (!empty($_POST['position'])) {
               foreach ($position1 as $keyPO => $valuPO) {
               if ($keyPO != '-' && ($keyPO == $positionx[$i])){
                  $listePO[$i] .= "\t<option value=\"".$keyPO."\" selected='selected'>".$valuPO."</option>\n";
               } else {
                  $listePO[$i] .= "\t<option value=\"".$keyPO."\">".$valuPO."</option>\n";
               }// ende for
			   
			}
			}			   
			   
			   if (!empty($_POST['turnierklasse'])) {
               foreach ($turnierklasse1 as $keyTK => $valuTK) {
               if ($keyTK != '-' && ($keyTK == $turnierklassex[$i])){
                  $listeTK[$i] .= "\t<option value=\"".$keyTK."\" selected='selected'>".$valuTK."</option>\n";
               } else {
                  $listeTK[$i] .= "\t<option value=\"".$keyTK."\">".$valuTK."</option>\n";
               }// ende for
	   
			}
			}

if(empty($nachnamex[$i]))
   $meldung .= "<rot><b>Bitte Nachnamen  bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($vornamex[$i]))
   $meldung .= "<rot><b>Bitte Vornamen bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($geschlechtx[$i]))
   $meldung .= "<rot><b>Bitte das richtige Geschlecht bei Spieler " . ($i + 1) . " auswählen (männlich, weiblich etc)!</b></rot><br>";
if(empty($geburtsdatum_tagx[$i]))
   $meldung .= "<rot><b>Bitte den Tag bei Geburtsdatum bei Spieler " . ($i + 1) . " auswählen!</b></rot><br>";
if(empty($geburtsdatum_monatx[$i]))
   $meldung .= "<rot><b>Bitte den Monat bei Geburtsdatum bei Spieler " . ($i + 1) . " auswählen!</b></rot><br>";
if(empty($geburtsdatum_jahrx[$i]))
   $meldung .= "<rot><b>Bitte den Jahr bei Geburtsdatum bei Spieler " . ($i + 1) . " auswählen!</b></rot><br>";
if(empty($emailx[$i]) || !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 bei Spieler " . ($i + 1) . " angeben!</b></rot><br>";
if(empty($vereinx[$i]))
   $meldung .= "<rot><b>Bitte Verein bei Spieler " . ($i + 1) . " eingeben!</b></rot><br>";
if(empty($verbandx[$i]))
   $meldung .= "<rot><b>Bitte Verband bei Spieler " . ($i + 1) . " auswählen!</b></rot><br>";
if(empty($altersklassex[$i]))
   $meldung .= "<rot><b>Bitte Altersklasse bei Spieler " . ($i + 1) . " auswählen!</b></rot><br>";   
if(empty($spielklassex[$i]))
   $meldung .= "<rot><b>Bitte Spielklasse bei Spieler " . ($i + 1) . " auswählen!</b></rot><br>";
if(empty($positionx[$i]))
   $meldung .= "<rot><b>Bitte Position bei Spieler " . ($i + 1) . " auswählen!</b></rot><br>";
if(empty($turnierklassex[$i]))
   $meldung .= "<rot><b>Bitte Turnierklasse bei Spieler " . ($i + 1) . " auswählen!</b></rot><br>";

if(empty($meldung))

{

                   $meldungok="<p><rot><b>Die Anmeldung zum PPC 2010 ist bei uns eingegangen!<br />In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung.</b></rot><br /><br /><a class=\"links\" href=\"ppc2010Anmeldung.php\" title=\"PPC-Übersicht\">Zurück zur Übersicht</a></p>\n";

//Anmeldemail Turnierleitung
                                $subject="Neue Anmeldung zum Turnier 2010";
                                $mailcontent="Es gibt eine neue Anmeldung zum PPC 13 2010.\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.="Geschlecht:            ".$geschlecht1[$geschlecht5]."\n\n";
                                $mailcontent.="Geburtsdatum:             ".$geburtsdatum_tag1[$geburtsdatum_tag5].".".$geburtsdatum_monat1[$geburtsdatum_monat5].".".$geburtsdatum_jahr1[$geburtsdatum_jahr5]."\n\n";
                                $mailcontent.="eMail:            ".$email."\n\n";
                                $mailcontent.="Verein:             ".$verein."\n\n";
                                $mailcontent.="Verband:             ".$verband1[$verband5]."\n\n";	
                                $mailcontent.="Altersklasse:             ".$altersklasse1[$altersklasse5]."\n\n";								
                                $mailcontent.="Spielklasse 10/11:    ".$spielklasse1[$spielklasse5]."\n\n";
                                $mailcontent.="Position:             ".$position1[$position5]."\n\n";
                                $mailcontent.="Turnierklasse:             ".$turnierklasse1[$turnierklasse5]."\n\n";
                                $mailcontent.="Bemerkung:       ".$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@123.de",$subject,$mailcontent,$from_address);
//                                mail("123@123.de",$subject,$mailcontent,$from_address);

//Bestätigungsmail Anmeldender
                                $subject="Bestätigung der Anmeldung zum Turnier 2010";
                                $mailcontent="Hallo ".$vorname." ".$nachname.",<br><br>Soeben (".$today.") ist Ihre Anmeldung zum Ping-Pong-Café Am Schelmenbusch 13 2010 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.="Geschlecht:            ".$geschlecht1[$geschlecht5]."\n\n";
                                $mailcontent.="Geburtsdatum:             ".$geburtsdatum_tag1[$geburtsdatum_tag5].".".$geburtsdatum_monat1[$geburtsdatum_monat5].".".$geburtsdatum_jahr1[$geburtsdatum_jahr5]."\n\n";
                                $mailcontent.="eMail:            ".$email."\n\n";
                                $mailcontent.="Verein:             ".$verein."\n\n";
                                $mailcontent.="Verband:             ".$verband1[$verband5]."\n\n";	
                                $mailcontent.="Altersklasse:             ".$altersklasse1[$altersklasse5]."\n\n";								
                                $mailcontent.="Spielklasse 10/11:    ".$spielklasse1[$spielklasse5]."\n\n";
                                $mailcontent.="Position:             ".$position1[$position5]."\n\n";
                                $mailcontent.="Turnierklasse:             ".$turnierklasse1[$turnierklasse5]."\n\n";
                                $mailcontent.="Bemerkung:         ".$eintrag."\n\n";
                                $mailcontent.="Kleiner Hinweis: Die Teilnehmer des Turniers werden zeitnah auf der Homepage veröffentlicht\n\n";
                                $mailcontent.="Die Teilnehmer der A-Klasse: http://123.de/ppc2010aKlasse.php\n\n";
                                $mailcontent.="Die Teilnehmer der B-Klasse: http:/123.de/ppc2010bKlasse.php\n\n";
								$mailcontent.="Die Teilnehmer der C-Klasse: http://123.de/ppc2010cKlasse.php\n\n";
								$mailcontent.="Die Teilnehmer der D-Klasse (inkl. Damen B): http://123.de/ppc2010dKlasse.php\n\n";
								$mailcontent.="Die Teilnehmer der Jugend: http://123.de/ppc2010Jugend.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/ppc2010Abmeldung.php<br>oder via E-mail:123@123.de\n\n";
                                $mailcontent.="Vielen Dank!\n\n";
                                $mailcontent.="Mit freundlichen Grüßen<br>123\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: \"123\" <123@123.de>\n";
                                mail("123@123.de",$subject,$mailcontent,$from_address);
                                mail("\"".$nachname."\" <".$email.">",$subject,$mailcontent,$from_address);

mysql_query("INSERT INTO ppc_anmeldungen_samstag
(nachname, vorname, geschlecht, geburtsdatum_tag, geburtsdatum_monat, geburtsdatum_jahr, email, verein, verband, altersklasse, spielklasse, position, turnierklasse, eintrag, timestamp)
VALUES
('$nachname', '$vorname', '$geschlecht5', '$geburtsdatum_tag5', '$geburtsdatum_monat5', '$geburtsdatum_jahr5', '$email', '$verein', '$verband5','$altersklasse5', '$spielklasse5', '$position5', '$turnierklasse5', '$eintrag', NOW())")
or die(mysql_error());
               }
        $i++;
    }
}





mysql_close($link);


                echo "<h1>Anmeldung zumTurnier 2010</h1>\n";
				echo "<h2>für Turniertag 1 - nur Jugend und D-Klasse (mit Damen B) - Samstag 11. September 2010</h2>\n";
                if ($meldung != "") {echo $meldung;}
                if ($meldungok != "") {echo $meldungok;}
                echo "<br />\n";
				echo "<hr></hr>\n";
				echo "<center>\n";
				echo "<form name=\"anmeldungform\" action=\"ppc2010Anmeldung_tag1_spieler1.php\" method=\"POST\">\n";
                echo "<table width=\"10\">\n";
                echo "<tr>\n";
                echo "<td align=\"center\" colspan=\"2\"><h2>Spieler 1:</h2></td>\n";
                echo "</tr>\n";
                echo "<tr><td colspan=\"2\">&nbsp;</td></tr>";
                echo "<td align=\"left\">Nachname:</td><td align=\"left\"><input name=\"nachname[]\" type=\"text\" id=\"name\" size=\"70\" maxlength=\"50\" class=\"eingabe\"";
                echo " value=\"".$nachnamex[0]."\"";
                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=\"".$vornamex[0]."\"";
                echo "></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Geschlecht:</td><td align=\"left\"><select name=\"geschlecht[]\" id =\"geschlecht\"> ".$listeGS[0]."</select>\n";
                echo "</td>\n";
                echo "</tr>\n";
				echo "<tr>\n";
                echo "<td align=\"left\">Geburtsdatum:</td><td align=\"left\">\n";
				echo "<select name=\"geburtsdatum_tag[]\" id =\"geburtsdatum_tag\"> ".$listeGDT[0]."</select>\n";
				echo "<select name=\"geburtsdatum_monat[]\" id =\"geburtsdatum_monat\"> ".$listeGDM[0]."</select>\n";
				echo "<select name=\"geburtsdatum_jahr[]\" id =\"geburtsdatum_jahr\"> ".$listeGDJ[0]."</select>\n";
                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=\"".$emailx[0]."\"";
                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=\"".$vereinx[0]."\"";
                echo "></td>\n";
                echo "</tr>\n";
				echo "<tr>\n";
                echo "<td align=\"left\">PPC-Turnierklasse:</td><td align=\"left\"><select name=\"turnierklasse[]\" id =\"turnierklasse\"> ".$listeTK[0]."</select>\n";
                echo "</td>\n";
                echo "</tr>\n";
				echo "<tr>\n";
                echo "<td align=\"center\" colspan=\"2\"><br /><b>Angaben zum Einsatz in der Spielsaison 2010/11!</b><br /><br /></td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Verband:</td><td align=\"left\"><select name=\"verband[]\" id =\"verband\"> ".$listeVE[0]."</select>\n";
                echo "</td>\n";
				echo "</tr>\n";
				echo "<tr>\n";
                echo "<td align=\"left\">Altersklasse:</td><td align=\"left\"><select name=\"altersklasse[]\" id =\"altersklasse\"> ".$listeAK[0]."</select>\n";
                echo "</td>\n";
                echo "</tr>\n";
				echo "<tr>\n";
                echo "<td align=\"left\">Spielklasse:</td><td align=\"left\"><select name=\"spielklasse[]\" id =\"Spielklasse\"> ".$listeSK[0]."</select>\n";
                echo "</td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\">Position:</td><td align=\"left\"><select name=\"position[]\" id =\"position\"> ".$listePO[0]."</select>\n";
                echo "</td>\n";
                echo "</tr>\n";
                echo "<tr>\n";
                echo "<td align=\"left\"></td><td align=\"left\"><br /><br /></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 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;\"><br />\n";
                echo "</form>\n";
				echo "</center>\n";

} else {
/* Text2 */
echo "<h1>Anmeldung zum Turnier 2010</h1>\n";
echo "Liebe Teilnehmerinteressenten,<br>unsere maximale Teilnehmerkapazität ist erreicht (evtl. auch die Meldefrist).<br>Wir danken für die riesige Resonanz.<br />Evtl. werden kurzfristig noch einige Plätze frei. Anfragen diesbezüglich werden bis Freitag 18 Uhr unter dieser Mailadresse: <a class=\"mailto\" href=\"mailto:...</a> entgegengenommen.<br />Freitag nach 18 Uhr werden wir nur telefonisch Auskunft unter folgender Nummer ... geben können.<br /><br />\n";
}


// include Footer 1
include "";
// include Footer 2
include "";
// include Ende
include "i";
?>
 

Vielen Dank


19.05.2010 19:36 | geändert: 19.05.2010 19:39

6 Jörg Kruse

1) nach Absenden des Formulars bleiben alle felder gefüllt, was machmal zu irritationen beim Betrachter führt, ob die Anmeldung überhaupt gesendet worden ist (trotz meldung: Die Anmeldung zum PPC 2010 ist bei uns eingegangen! In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung. Zurück zur Übersicht)
Kann ich die Felder nach erfolgreichem Ansenden leeren lassen?

Ich würde das Formular dann einfach ganz weglassen.

2) wenn jemand bei der freiligen Angabe beim Feld "Eintrag" einen oder mehrere Absätze macht, oder das Formular versucht zu senden und es nicht Ordnungsgemäß gesendet wird, tauchen danach im "Feld Eintrag" zusätzlich diese Zeichen auf:
\r\n\r\n
Kann ich irgendwie auschließen, dass oben gennante Zeichen eingefügt werden?

Du verwendest $eintrag für die Formularvorbelegung, welches für die Datenbankabfrage maskiert wurde:

$eintrag = mysql_real_escape_string($eintragx);

Dadurch werden wohl auch die Umbrüche maskiert. $eintragx wäre hier wohl passender für die Formularvorbelegung?

3) nehmen wir an, ich baue einen Puffer bzw. einen Anmeldestopp ein, der bei der Zahl 24 liegt.
wenn jemand das Formlar aufruft, und die Zahl bereits überschritten ist, dann wird folgendes ausgegeben: Liebe Teilnehmerinteressenten, unsere maximale Teilnehmerkapazität ist erreicht (evtl. auch die Meldefrist). Wir danken für die riesige Resonanz. Evtl. werden kurzfristig noch einige Plätze frei. Anfragen diesbezüglich werden bis Freitag 18 Uhr unter dieser Mailadresse: ...
Dieser Teil funktioniert bisher.
Nun aber die Frage, die Zahl liegt aktuell bei 23, 2 Personen greifen zur gleichen Zeit auf das Formlar zu und können beide ihre Anmeldung erfolgreich tätigen. Was zur Folge hat, dass die Zahl bei 25 liegt und nicht bei gewünschten und eigentlich erlaubter 24.
Wie kann ich eine zusätzliche Prüfung der Anzahl bevor die Anmeldung abgesendet wird einbauen und zusätzlich mit einem Hinweistext versehen?

Du willst also eine Race Condition vermeiden - da machst du die Abfrage nach der Anzahl der Teilnehmer direkt vor dem INSERT oder noch besser (falls möglich) ein INSERT mit einer entsprechenden Subquery

20.05.2010 11:32 | geändert: 20.05.2010 11:33

7 tobi

Zitat von Jörg
1) nach Absenden des Formulars bleiben alle felder gefüllt, was machmal zu irritationen beim Betrachter führt, ob die Anmeldung überhaupt gesendet worden ist (trotz meldung: Die Anmeldung zum PPC 2010 ist bei uns eingegangen! In Ihrem Postfach befindet sich eine Bestätigung der Anmeldung. Zurück zur Übersicht)
Kann ich die Felder nach erfolgreichem Ansenden leeren lassen?

Ich würde das Formular dann einfach ganz weglassen.

und wie kann ich dies am besten anstellen?

Zitat von Jörg
2) wenn jemand bei der freiligen Angabe beim Feld "Eintrag" einen oder mehrere Absätze macht, oder das Formular versucht zu senden und es nicht Ordnungsgemäß gesendet wird, tauchen danach im "Feld Eintrag" zusätzlich diese Zeichen auf:
\r\n\r\n
Kann ich irgendwie auschließen, dass oben gennante Zeichen eingefügt werden?

Du verwendest $eintrag für die Formularvorbelegung, welches für die Datenbankabfrage maskiert wurde:

$eintrag = mysql_real_escape_string($eintragx);

Dadurch werden wohl auch die Umbrüche maskiert. $eintragx wäre hier wohl passender für die Formularvorbelegung?

Punkt 2 hat sich erledigt, ich habe es hingebogen bekommen

Zitat von Jörg
3) nehmen wir an, ich baue einen Puffer bzw. einen Anmeldestopp ein, der bei der Zahl 24 liegt.
wenn jemand das Formlar aufruft, und die Zahl bereits überschritten ist, dann wird folgendes ausgegeben: Liebe Teilnehmerinteressenten, unsere maximale Teilnehmerkapazität ist erreicht (evtl. auch die Meldefrist). Wir danken für die riesige Resonanz. Evtl. werden kurzfristig noch einige Plätze frei. Anfragen diesbezüglich werden bis Freitag 18 Uhr unter dieser Mailadresse: ...
Dieser Teil funktioniert bisher.
Nun aber die Frage, die Zahl liegt aktuell bei 23, 2 Personen greifen zur gleichen Zeit auf das Formlar zu und können beide ihre Anmeldung erfolgreich tätigen. Was zur Folge hat, dass die Zahl bei 25 liegt und nicht bei gewünschten und eigentlich erlaubter 24.
Wie kann ich eine zusätzliche Prüfung der Anzahl bevor die Anmeldung abgesendet wird einbauen und zusätzlich mit einem Hinweistext versehen?

Du willst also eine Race Condition vermeiden - da machst du die Abfrage nach der Anzahl der Teilnehmer direkt vor dem INSERT oder noch besser (falls möglich) ein INSERT mit einer entsprechenden Subquery

wenn das so heißt, dann ja. und wie wird das ganze genau realisiert?
versteh ich nicht so ganz, vor der insert noch ne insert, irgendwie bahnhof für mich

20.05.2010 16:57 | geändert: 20.05.2010 17:18

8 Jörg Kruse

Zitat von tobi
Zitat von Jörg
Ich würde das Formular dann einfach ganz weglassen.

und wie kann ich dies am besten anstellen?

Du baust die Schleifen so um, dass das Formular nur angezeigt wird, wenn es erfolgreich eingetragen wurde. Du kannst bei einem erfolgreichen Eintrag auch ein "success = true;" definieren und das Formular dann nur bei "if (! $success)" ausgeben

Zitat von Jörg
Du willst also eine Race Condition vermeiden - da machst du die Abfrage nach der Anzahl der Teilnehmer direkt vor dem INSERT oder noch besser (falls möglich) ein INSERT mit einer entsprechenden Subquery

wenn das so heißt, dann ja. und wie wird das ganze genau realisiert?
versteh ich nicht so ganz, vor der insert noch ne insert, irgendwie bahnhof für mich

Nein, eine SELECT Abfrage, wieviele Teilnehmer schon eingetragen sind. Wenn du diese SELECT nicht nur beim Aufruf des Formulars, sondern als Kontrolle auch nochmal direkt vor der INSERT Abfrage machst, ist die Chance gering, dass sich zwei zur selben Zeit eintragen.

(mit einem Subquery könnte man die Race Condition vielleicht ganz ausschalten - aber da bin ich grad auch überfragt, ob und wie das bei einem INSERT zu realisieren ist)

20.05.2010 20:47

9 Käptn Blaubär

Kann ich die Felder nach erfolgreichem Ansenden leeren lassen?

Ich hab' da auch ewig mit PHP rumprobiert, ohne Erfolg. Dann habe ich's mit Javascript gemacht:

document.formular.text.value = "";
document.formular.name.value = "";
document.formular.email.value = "";
document.formular.url.value = "";
document.formular.text.setAttribute("readonly", true);
document.formular.name.setAttribute("readonly", true);
document.formular.email.setAttribute("readonly", true);
document.formular.url.setAttribute("readonly", true);

21.05.2010 23:05

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]