Zur Navigation

Checkbox prüfen [2]

11 tobi

ich glaube anstatt besser wird es schlimmer :(
Parse error: syntax error, unexpected 'else' (T_ELSE)

http://beautifytools.com/php-beautifier.php

gibt:
<?php
//Fehlermeldungen ausgeben falls vorhanden
ini_set('display_errors', 1);
error_reporting(E_ALL);

//include des Kopfbereiches
include ("include/kopf.php");
//include der Navigation
include ("include/navigation.php");
//include Anfang des ganzen Inhaltes
include ("include/anfang-ganzer-inhalt.php");
?>

<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
//use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/PHPMailer.php';
//require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/SMTP.php';

?>
   
            <!-- Anfang Linker Inhalt -->
            <div id="linkerinhalt">
    <title>Anmeldung</title>

<?php
include_once ('zugang_ppc.php.inc');

$max_jugenda = 40;
$max_jugendb = 40;
$max_dklasse = 64;

// sql-Abfrage 1 - Ermitteln Anzahl Jugend B (Turnierklasse = 1)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'1\'');
list($num_jugendb) = mysqli_fetch_row($query);
// sql-Abfrage 2 - Ermitteln Anzahl Jugend A (Turnierklasse = 2)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'2\'');
list($num_jugenda) = mysqli_fetch_row($query);
// sql-Abfrage 3 - Ermitteln Anzahl D-Klasse + Teilweise Damen B (Turnierklasse = 3)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'3\'');
list($num_dklasse) = mysqli_fetch_row($query);
unset($query);
?>
<?php
//begin POST form check
$show_form = false;
//entweder einfacher Check (nur namen angeben), oder erweiterter via Regularexpression ([name,regex,errormsg])
$frm_field = array(
    array(
        'email',
        '/^[\w\-\.\+]+@([\w\-]+\.?)+$/',
        'Bitte gültige E-Mail eintragen!'
    ) ,
    'vorname',
    'nachname',
    array(
        'geschlecht',
        '/^(M|W)$/',
        'Bitte Geschlecht auswählen!'
    ) ,
    array(
        'geburtsjahr',
        '/^(19|20)\d\d$/',
        'Bitte gültiges Geburtsjahr eintragen (z.B. 1967)!'
    ) ,
    'ttr',
    'verein',
    array(
        'turnierklasse',
        '/^[1-5]$/',
        'Bitte gültige Turnierklasse auswählen!'
    ) ,
    array(
        'email_alt',
        '/(^[\w\-\.\+]+@([\w\-]+\.?)+$|^$)/',
        'Optionales Feld, darf leer gelassen werden oder weitere gültige E-Mail eintragen!'
    )
);
$frm_error = array();
if (isset($_POST['email']))
{
    $checkbox_counter = 0; //Dieser Counter zählt die gesetzten Häkchen. 3 müssen es sein - sind es weniger wird unten die checkbox_nachricht ausgegeben
    if (!empty($_POST['Verarbeitung_Bestaetigung']))
    {
        $checkbox_nachricht = 'Du musst der Speicherung und Verarbeitung deiner Daten zustimmen.';
    }
    else
    {
        $checkbox_counter++;
    }
    if (!empty($_POST['Turnierinfos_Bestaetigung']))
    {
        $checkbox_nachricht = $checkbox_nachricht . ' Du musst uns erlauben, dich zuzuspammen.';
    }
    else
    {
        $checkbox_counter++;
    }
    if (!empty($_POST['Datenschutz_Bestaetigung']))
    {
        $checkbox_nachricht = $checkbox_nachricht . ' Du musst die Datenschutz-Foo akzeptieren.';
    }
    else
    {
        $checkbox_counter++;
    }
}

{
    foreach ($frm_field as $val)
    {
        if (!is_array($val))
        {
            if (empty($_POST[$val]))
            {
                $_POST[$val] = '';
                $frm_error[$val] = ' <span class="rot">Bitte ausfüllen!</span>';
                $show_form = true;
            }
            else $frm_error[$val] = '';
        }
        else
        {
            if (!isset($_POST[$val[0]]))
            {
                $_POST[$val[0]] = '';
                $frm_error[$val[0]] = ' <span class="rot">Bitte ausfüllen!</span>';
                $show_form = true;
            }
            elseif (!preg_match($val[1], $_POST[$val[0]]))
            {
                $frm_error[$val[0]] = ' <span class="rot">' . $val[2] . '</span>';
                $show_form = true;
            }
            else $frm_error[$val[0]] = '';
        }
    }
}
else
{
    foreach ($frm_field as $val)
    {
        if (is_array($val))
        {
            if (!isset($_POST[$val[0]])) $_POST[$val[0]] = '';
            $frm_error[$val[0]] = '';
        }
        elseif (!isset($_POST[$val]))
        {
            $_POST[$val] = '';
            $frm_error[$val] = '';
        }
    }

    if ($checkbox_counter == 3)
    {

        $show_form = true;
    }
    unset($frm_field);
    //vom check oben nicht betroffen (da optional)
    if (!isset($_POST['eintrag'])) $_POST['eintrag'] = '';
    if (!isset($_POST['turnierklasse_ex'])) $_POST['turnierklasse_ex'] = '';
    //end POST form check
    if (!$show_form)
    { //sende anfrage / eintragen
        $_POST['turnierklasse'] = intval($_POST['turnierklasse']);
        $turnierklassestr = '';
        //    $altSignUp              = ($num_sonntag >= $max_sonntag); //case 1&2 change it again
        $altSignUp = ($num_jugendb >= $max_jugendb || $num_jugenda >= $max_jugenda || $num_dklasse >= $max_dklasse);

        switch ($_POST['turnierklasse'])
        {
            case 1:
                $turnierklasse = 'Jugend U18 B';
                $turnierklassestr = 'Jugend U18 B mit QTTR von 0 bis 1150 - Turniertag 1 - Samstag 12. September 2020';
                $startgeld = '10€';
                $vorkasse = '9€';
                $altSignUp = ($num_jugendb >= $max_jugendb);
            break;
            case 2:
                $turnierklasse = 'Jugend U18 A';
                $turnierklassestr = 'Jugend U18 A mit QTTR von 1050 bis 3000 - Turniertag 1 - Samstag 12. September 2020';
                $startgeld = '10€';
                $vorkasse = '9€';
                $altSignUp = ($num_jugenda >= $max_jugenda);
            break;
            case 3:
                $turnierklasse = 'Aktive D';
                $turnierklassestr = 'Aktive D mit QTTR von 0 bis 1350 - Turniertag 1 - Samstag 12. September 2020';
                $startgeld = '12€';
                $vorkasse = '11€';
                $altSignUp = ($num_dklasse >= $max_dklasse);
            break;
        }
        if (mysqli_fetch_object(mysqli_query($mysqli, 'SELECT * FROM `anmeldungen_2019_samstag` WHERE `vorname` = \'' . mysqli_real_escape_string($mysqli, $_POST['vorname']) . '\' AND `nachname` = \'' . mysqli_real_escape_string($mysqli, $_POST['nachname']) . '\' LIMIT 1')))
        {
?><p><span class="rot"><b>Die Anmeldung ist Fehlgeschlagen!<br/>Die von dir angegebene Person <?php
            echo $_POST['vorname'] . ' ' . $_POST['nachname'];
?> ist bereits angemeldet.</b></span></p>
                <p>Falls dem nicht so seien sollte, kontaktiere uns bitte via E-Mail!</p>
                </p><?php
            $show_form = false;
        }
        else
        { //eintragen
            $mysqli_query = ' 
INSERT INTO `anmeldungen_2019_samstag`
(`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `email`, `verein`, `gemeldeteKlasse`, `anmerkung`, `timestamp`)
VALUES
(\'' . mysqli_real_escape_string($mysqli, $_POST['vorname']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['nachname']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['geschlecht']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['geburtsjahr']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['ttr']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['email']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['verein']) . '\', \'' . $_POST['turnierklasse'] . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['eintrag']) . '\', NOW())';
            if (mysqli_query($mysqli, $mysqli_query))

            { //Bestätigungsemail an den Anmeldenden
                

                $mail = new PHPMailer;
                include ("mail-zugang-smtp.php.inc");

                //Betreff in der E-Mail ermitteln, je nach Teilnehmeranzahl
                $subject = 'Bestätigung der Anmeldung zum PPC 23';
                if ($altSignUp) $subject = 'Warteliste - PPC 23';

                //Zeit ermittelt an dem das Formular ausgefüllt wurde
                $today_Wochentag = date('l');
                $today_Datum = date('d.m.Y');
                $today_Uhrzeit = date('H:i');
                $t = date('w');
                $wochentage = array(
                    'Sonntag',
                    'Montag',
                    'Dienstag',
                    'Mittwoch',
                    'Donnerstag',
                    'Freitag',
                    'Samstag'
                );
                $wochentag = $wochentage[$t];

                //Anmeldung oder Anfrage ausgegeben, je nach Teilnehmeranzahl
                $anmeldung_oder_warteliste = 'Anmeldung';
                if ($altSignUp) $anmeldung_oder_warteliste = 'Anfrage';

                $text = "
                Hallo {$_POST['vorname']} {$_POST['nachname']},<br />
                <br />
                am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine {$anmeldung_oder_warteliste} bei uns eingegangen.<br />
                <br />
                An die Turnierleitung wurden folgende Angaben übermittelt:<br />
                Vorname: {$_POST['vorname']}<br />
                Nachname: {$_POST['nachname']}<br />
                Geschlecht: {$_POST['geschlecht']}<br />
                Kontakt-E-Mail: {$_POST['email']}<br />
                (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                Angemeldete Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                <br />
                Verein: {$_POST['verein']}<br />            
                Startgebühr: {$startgeld}<br />
                Vorkasse: {$vorkasse}<br />
                <br />
                Mit sportlichen Grüßen<br />
                ";
                if ($altSignUp) $text = "    
                                            Hallo {$_POST['vorname']} {$_POST['nachname']},<br />
                                            <br />
                                            am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine {$anmeldung_oder_warteliste} bei uns eingegangen. Dies ist keine Turnierbestätigung!<br />
                                            <br />Aktuell ist die Teilnehmergrenze in deinem gemeldeten Wettbewerb überschritten und wir können deshalb deine Anfrage aktuell leider noch nicht bestätigen. Erfahrungsgemäß sagen aber kurz vor Turnierbeginn noch der eine oder andere Spieler/in ab. In einem solchen Fall würden wir dann umgehend mit dir Kontakt aufnehmen.<br />
                                            <br />
                                            An die Turnierleitung wurden vorab aber schon mal folgende Angaben übermittelt:<br />
                                            Vorname: {$_POST['vorname']}<br />
                                            Nachname: {$_POST['nachname']}<br />
                                            Geschlecht: {$_POST['geschlecht']}<br />
                                            Kontakt-E-Mail: {$_POST['email']}<br />
                                            (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                                            Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                                            Verein: {$_POST['verein']}<br />
                                            ";

                //UTF-8 Kodierung festlegen
                $mail->CharSet = "utf-8";

                //Absenderadresse der Email setzen
                $mail->setFrom("");
                $mail->addReplyTo("");

                //Name des Abenders setzen
                $mail->FromName = ("");

                //Empfängeradresse setzen
                $mail->AddAddress($_POST['email']);

                //möglicher Empfänger einer Kopie setzen
                $mail->AddCC($_POST['email_alt']);

                // html
                $mail->isHTML(true);

                //Betreff der Email setzen
                $mail->Subject = $subject;

                //Text der EMail setzen
                $mail->Body = $text;

                //EMail senden und überprüfen ob sie versandt wurde
                if (!$mail->Send())
                {
                    //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
                    echo "Es gab bei der übermittelung der Daten ein kleines Problem. Bitte wiederhole den Vorgang oder kontaktiere uns bitte via E-Mail";
                    echo "Fehler: " . $mail->ErrorInfo;
                }
                else
                {
                    //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
                    echo "<br />Eine Bestätigung deiner Anmeldung/Anfrage ist soeben an dich gesendet worden.";
                }
                { //Mail an die Turnierleitung
                    $mail = new PHPMailer;

                    include ("mail-zugang-smtp.php.inc");

                    //Betreff in der E-Mail ermitteln, je nach Teilnehmeranzahl
                    $subject = 'Neue Anmeldung zum PPC 23';
                    if ($altSignUp) $subject = 'Warteliste - Neue Anfrage';

                    //Zeit ermittelt an dem das Formular ausgefüllt wurde
                    $today_Wochentag = date('l');
                    $today_Datum = date('d.m.Y');
                    $today_Uhrzeit = date('H:i');
                    $t = date('w');
                    $wochentage = array(
                        'Sonntag',
                        'Montag',
                        'Dienstag',
                        'Mittwoch',
                        'Donnerstag',
                        'Freitag',
                        'Samstag'
                    );
                    $wochentag = $wochentage[$t];

                    //Anmeldung oder Anfrage ausgegeben, je nach Teilnehmeranzahl
                    $anmeldung_oder_warteliste = 'Anmeldung';
                    if ($altSignUp) $anmeldung_oder_warteliste = 'Anfrage';

                    $text = " ANMELDUNG!!!<br />
                <br />
                Hallo Turnierleitung,<br />
                <br />
                am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist eine neue Anmeldung eingegangen.<br />
                <br />
                Hier die Angaben des Spielers/der Spielerin:<br />
                Vorname: {$_POST['vorname']}<br />
                Nachname: {$_POST['nachname']}<br />
                Geschlecht: {$_POST['geschlecht']}<br />
                Kontakt-E-Mail: {$_POST['email']}<br />
                E-Mail 2: {$_POST['email_alt']}<br />
                (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                Geburtsjahr: {$_POST['geburtsjahr']}<br />
                Verein: {$_POST['verein']}<br />
                Anmerkung: {$_POST['eintrag']}<br />
                <br />
                Mit sportlichen Grüßen<br />
                {$_POST['vorname']} {$_POST['nachname']}
                ";
                    if ($altSignUp) $text = "    WARTELISTE!!!<br />
                                            <br />
                                            Hallo Turnierleitung,<br />
                                            <br />
                                            am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist eine neue Anfrage eingegangen.<br />
                                            <br />
                                            Hier die Angaben des Spielers/der Spielerin:<br />
                                            Vorname: {$_POST['vorname']}<br />
                                            Nachname: {$_POST['nachname']}<br />
                                            Geschlecht: {$_POST['geschlecht']}<br />
                                            Kontakt-E-Mail: {$_POST['email']}<br />
                                            E-Mail 2: {$_POST['email_alt']}<br />
                                            (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                                            Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                                            Geburtsjahr: {$_POST['geburtsjahr']}<br />
                                            Verein: {$_POST['verein']}<br />
                                            Anmerkung: {$_POST['eintrag']}<br />
                                            <br />
                                            Mit sportlichen Grüßen<br />
                                            {$_POST['vorname']} {$_POST['nachname']}
                                            ";

                    //UTF-8 Kodierung festlegen
                    $mail->CharSet = "utf-8";

                    //Absenderadresse der Email setzen
                    $mail->setFrom("");
                    //                $mail->addReplyTo("leer@leer.de");
                    $mail->addReplyTo($_POST['email']);

                    //Name des Abenders setzen
                    $mail->FromName = ($_POST['vorname'] . ' ' . $_POST['nachname']);
                    //                $mail->FromName = ("Turnierportal");
                    //Empfängeradresse setzen
                    $mail->AddAddress("");

                    // html
                    $mail->isHTML(true);

                    //Betreff der Email setzen
                    $mail->Subject = $subject;

                    //Text der EMail setzen
                    $mail->Body = $text;

                    //EMail senden und überprüfen ob sie versandt wurde
                    if (!$mail->Send())
                    {
                        //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
                        echo "Es gab bei der übermittelung der Daten ein kleines Problem. Bitte wiederhole den Vorgang oder kontaktiere uns bitte via E-Mail";
                        echo "Fehler: " . $mail->ErrorInfo;
                    }
                    else
                    {
                        //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
                        echo "<br />Die Anmeldung/Anfrage ist an die Turnierleitung übermittelt worden.";
                    }

                    //    $show_form=true;
                    
                }
            }
            else
            {
                die('<b>MySQL Error:</b><div class="rot">' . mysqli_error($mysqli) . '</div><br/>');
                $show_form = true;
            }
        }
    }
    if ($show_form) //zeige Formular
    
    { //führt das aus, wenn die mail adresse noch ned angegeben wurde oder sonst wie das Formular nicht stimmt.
        //ausgabe bzw. setzen von "turnierklasse" vereinfachen
        //Formular für Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.
        
?>
<h1>Anmeldung: Turniertag 1, Samstag 12.09.2020</h1>    
<p>Bitte alle mit einem * versehenen Felder ausfüllen.<br />
Die Teilnahme ist grundsätzlich nur in einem Wettbewerb möglich und auch nur in dem Wettbewerb, in welchem der Q-TTR passt.<br />
Die Angabe der E-Mail-Adresse ist von Nöten, da wir an diese Adresse die Bestätigungsemail verschicken.</p>
<form name="blub" method="post" action="test2-anmeldung.php">
<p><label for="vorname">Vorname*:</label> 
<input name="vorname" type="text" id="vorname" size="45" maxlength="50" placeholder=" Max" class="eingabe" value="<?php
        echo ($_POST['vorname'] . '"/>' . $frm_error['vorname']);
?></p>
<p><label for="nachname">Nachname*:</label>
<input name="nachname" type="text" id="nachanme" size="45" maxlength="50" placeholder=" Mustermann" class="eingabe" value="<?php
        echo ($_POST['nachname'] . '"/>' . $frm_error['nachname']);
?></p>              
<p>Geschlecht*:
<select name="geschlecht"><option value="1">Bitte auswählen</option><option value="M"<?php
        echo (($_POST['geschlecht'] == 'M' ? ' selected="selected"' : ''));
?>>männlich</option><option value="W"<?php
        echo (($_POST['geschlecht'] == 'W' ? ' selected="selected"' : ''));
?>>weiblich</option></select><?php
        echo $frm_error['geschlecht'];
?> </p>  
<p><label for="email">E-Mail*:</label>
 <input name="email" type="text" id="email" size="45" maxlength="50" placeholder=" test@example.com" class="eingabe" value="<?php
        echo ($_POST['email'] . '"/>' . $frm_error['email']);
?></p>
 <p><label for="geburtsjahr">Geburtsjahr*:</label>
<input name="geburtsjahr" type="text" id="geburtsjahr" size="7" maxlength="50" placeholder=" z.B. 1967" class="eingabe" value="<?php
        echo ($_POST['geburtsjahr'] . '"/>' . $frm_error['geburtsjahr']);
?></p>
  <p><label for="verein">Verein:*</label>
   <input name="verein" type="text" id="verein" size="45" maxlength="50" placeholder=" TTC Musterhausen" class="eingabe" value="<?php
        echo ($_POST['verein'] . '"/>' . $frm_error['verein']);
?></p>
 <p><label for="ttr">(Q-)TTR (11.08.2020)*:</label>
<input name="ttr" type="text" id="ttr" size="7" maxlength="50" placeholder=" z.B. 1000" class="eingabe" value="<?php
        echo ($_POST['ttr'] . '"/>' . $frm_error['ttr']);
?><p/>                                  
<p>Turnierklasse*:<br />
<select name="turnierklasse">
    <option>Bitte auswählen</option>
    <?php
        /*Samstag*/
        $sunfull_jugendb = ($num_jugendb >= $max_jugendb ? 'full' : 'gruen');
        $sunfull_jugenda = ($num_jugenda >= $max_jugenda ? 'full' : 'gruen');
        $sunfull_dklasse = ($num_dklasse >= $max_dklasse ? 'full' : 'gruen');
?>
  <option value="1" class="<?php
        echo $sunfull_jugendb;
?>"
   <?php
        echo ($_POST['turnierklasse'] == 1 ? ' selected="selected"' : '');
?>
  >Jugend U18 B mit QTTR von 0 bis 1150 - Turniertag 1 - Samstag 12. September 2020</option>
   <option value="2" class="<?php
        echo $sunfull_jugenda;
?>"
   <?php
        echo ($_POST['turnierklasse'] == 2 ? ' selected="selected"' : '');
?>
  >Jugend U18 A mit QTTR von 1050 bis 3000 - Turniertag 1 - Samstag 12. September 2020</option>
   <option value="3" class="<?php
        echo $sunfull_dklasse;
?>"
   <?php
        echo ($_POST['turnierklasse'] == 3 ? ' selected="selected"' : '');
?>
  >Aktive D mit QTTR von 0 bis 1350 - Turniertag 1 - Samstag 12. September 2020</option>
   </select><?php
        echo $frm_error['turnierklasse'];
?>
<br />
<?php
        if (in_array('full', array(
            $sunfull_jugendb,
            $sunfull_jugenda,
            $sunfull_dklasse
        )))
        {
?><colspan="2" class="rot" style="text-align:center;font-size:80%;">Hinweis:<br />eine oder mehrere Turnierklassen sind derzeit belegt.<br />Eine Anfrage für die gewünschte Turnierklasse ist dennoch möglich!<?php
        }
?> <p/>                              
    <p><label for="email">Anmerkung:</label><br />
  <textarea name="eintrag" cols="65" rows="7" id="eintrag" class="eingabe"><?php
        echo ($_POST['eintrag']);
?></textarea><p/>
 <p>Falls gewünscht, kann hier eine weitere E-Mail-Adresse angegeben werden, welche dann ebenfalls eine Kopie der Anmeldung/Anfrage erhält.<br />
  <label for="email_alt">E-Mail 2 (optional):</label><br />                        
<input name="email_alt" type="text" id="email_alt" size="45" maxlength="50" class="eingabe" value="<?php
        echo ($_POST['email_alt'] . '"/>' . $frm_error['email_alt']);
?></p>
                                                                          

<?php
    }
    else
    {
        echo $checkbox_nachricht;
    }

?>

                                                                          
<p><input type="checkbox" id="Verarbeitung_Bestaetigung" name="Verarbeitung_Bestaetigung" value="Ja">Mit der Nutzung dieses Formulars erklärst du dich mit der Speicherung und Verarbeitung deiner Daten durch diese Website einverstanden</p>
<p><input type="checkbox" id="Turnierinfos_Bestaetigung" name="Turnierinfos_Bestaetigung" value="Ja">Ebenso die Erlaubnis, dir Informationen rund um das Turnier via E-Mail zukommen zu lassen.</p>
<p><input type="checkbox" id="Datenschutz_Bestaetigung"name="Datenschutz_Bestaetigung" value="Ja"><a href="datenschutz.php" target="_blank">Datenschutz</a> gelesen und akzeptieren</p>
<p><input type="submit" value="Anmeldung abschließen"/></form></p><?php
}
?>
             
                
                <div class="clear"></div>
  
            </div>
            <!-- Ende Linker Inhalt -->
            
<?php
//include des rechten Bereiches
include ("include/rechter-inhalt.php");
//include Ende des ganzen Inhaltes
include ("include/ende-ganzer-inhalt.php");
//include Fuss
include ("include/fuss.php");
//include Ende
include ("include/ende.php");
?>

26.03.2020 07:14

12 Jörg Kruse

Durch die korrekte Einrückung kann man die Code-Struktur jetzt viel besser erkennen.

Die beiden Klammern in Zeile 110 und 112 sind fehl am Platz und sollten entsorgt werden. Danach verschwindet vermutlich auch die Fehlermeldung.

Wenn du dann den Code mit deinem Original-Code in Beitrag 1 vergleichst, solltest du erkennen, dass einige weitere Klammern nicht korrekt gesetzt sind. Spätestens vor dieser Zeile sollte der else Block doch geschlossen werden:

unset($frm_field);

Dafür ist dann wohl weiter unten eine schließende Klammer zuviel, vermutlich in diesem Abschnitt:

<?php
    }
    else
    {
        echo $checkbox_nachricht;
    }

?>

Das sollte eher so ausschauen:

<?php
    if ($checkbox_counter != 3)
    {
        echo $checkbox_nachricht;
    }
?>

Ich würde das mal korrigieren und neu formatieren (lassen) und probieren, ob du damit schon weiterkommst.

26.03.2020 11:41 | geändert: 26.03.2020 11:43

13 tobi

Jetzt kommt via direkt aufruf:
Notice: Undefined variable: checkbox_counter on line 156
Die Anmeldung ist Fehlgeschlagen!
Die von dir angegebene Person ist bereits angemeldet.

Falls dem nicht so seien sollte, kontaktiere uns bitte via E-Mail!

<?php
//Fehlermeldungen ausgeben falls vorhanden
ini_set('display_errors', 1);
error_reporting(E_ALL);

//include des Kopfbereiches
include ("include/kopf.php");
//include der Navigation
include ("include/navigation.php");
//include Anfang des ganzen Inhaltes
include ("include/anfang-ganzer-inhalt.php");
?>

<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
//use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/PHPMailer.php';
//require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/SMTP.php';

?>
   
            <!-- Anfang Linker Inhalt -->
            <div id="linkerinhalt">
    <title>Anmeldung</title>

<?php
include_once ('zugang_ppc.php.inc');

$max_jugenda = 40;
$max_jugendb = 40;
$max_dklasse = 64;

// sql-Abfrage 1 - Ermitteln Anzahl Jugend B (Turnierklasse = 1)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'1\'');
list($num_jugendb) = mysqli_fetch_row($query);
// sql-Abfrage 2 - Ermitteln Anzahl Jugend A (Turnierklasse = 2)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'2\'');
list($num_jugenda) = mysqli_fetch_row($query);
// sql-Abfrage 3 - Ermitteln Anzahl D-Klasse + Teilweise Damen B (Turnierklasse = 3)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'3\'');
list($num_dklasse) = mysqli_fetch_row($query);
unset($query);
?>
<?php
//begin POST form check
$show_form = false;
//entweder einfacher Check (nur namen angeben), oder erweiterter via Regularexpression ([name,regex,errormsg])
$frm_field = array(
    array(
        'email',
        '/^[\w\-\.\+]+@([\w\-]+\.?)+$/',
        'Bitte gültige E-Mail eintragen!'
    ) ,
    'vorname',
    'nachname',
    array(
        'geschlecht',
        '/^(M|W)$/',
        'Bitte Geschlecht auswählen!'
    ) ,
    array(
        'geburtsjahr',
        '/^(19|20)\d\d$/',
        'Bitte gültiges Geburtsjahr eintragen (z.B. 1967)!'
    ) ,
    'ttr',
    'verein',
    array(
        'turnierklasse',
        '/^[1-5]$/',
        'Bitte gültige Turnierklasse auswählen!'
    ) ,
    array(
        'email_alt',
        '/(^[\w\-\.\+]+@([\w\-]+\.?)+$|^$)/',
        'Optionales Feld, darf leer gelassen werden oder weitere gültige E-Mail eintragen!'
    )
);
$frm_error = array();
if (isset($_POST['email']))
{
    $checkbox_counter = 0; //Dieser Counter zählt die gesetzten Häkchen. 3 müssen es sein - sind es weniger wird unten die checkbox_nachricht ausgegeben
    if (!empty($_POST['Verarbeitung_Bestaetigung']))
    {
        $checkbox_nachricht = 'Du musst der Speicherung und Verarbeitung deiner Daten zustimmen.';
    }
    else
    {
        $checkbox_counter++;
    }
    if (!empty($_POST['Turnierinfos_Bestaetigung']))
    {
        $checkbox_nachricht = $checkbox_nachricht . ' Du musst uns erlauben, dich zuzuspammen.';
    }
    else
    {
        $checkbox_counter++;
    }
    if (!empty($_POST['Datenschutz_Bestaetigung']))
    {
        $checkbox_nachricht = $checkbox_nachricht . ' Du musst die Datenschutz-Foo akzeptieren.';
    }
    else
    {
        $checkbox_counter++;
    }

    foreach ($frm_field as $val)
    {
        if (!is_array($val))
        {
            if (empty($_POST[$val]))
            {
                $_POST[$val] = '';
                $frm_error[$val] = ' <span class="rot">Bitte ausfüllen!</span>';
                $show_form = true;
            }
            else $frm_error[$val] = '';
        }
        else
        {
            if (!isset($_POST[$val[0]]))
            {
                $_POST[$val[0]] = '';
                $frm_error[$val[0]] = ' <span class="rot">Bitte ausfüllen!</span>';
                $show_form = true;
            }
            elseif (!preg_match($val[1], $_POST[$val[0]]))
            {
                $frm_error[$val[0]] = ' <span class="rot">' . $val[2] . '</span>';
                $show_form = true;
            }
            else $frm_error[$val[0]] = '';
        }
    }
}
else
{
    foreach ($frm_field as $val)
    {
        if (is_array($val))
        {
            if (!isset($_POST[$val[0]])) $_POST[$val[0]] = '';
            $frm_error[$val[0]] = '';
        }
        elseif (!isset($_POST[$val]))
        {
            $_POST[$val] = '';
            $frm_error[$val] = '';
        }
    }

    if ($checkbox_counter == 3)
    {

        $show_form = true;
    }
}
unset($frm_field);
//vom check oben nicht betroffen (da optional)
if (!isset($_POST['eintrag'])) $_POST['eintrag'] = '';
if (!isset($_POST['turnierklasse_ex'])) $_POST['turnierklasse_ex'] = '';
//end POST form check
if (!$show_form)
{ //sende anfrage / eintragen
    $_POST['turnierklasse'] = intval($_POST['turnierklasse']);
    $turnierklassestr = '';
    //    $altSignUp              = ($num_sonntag >= $max_sonntag); //case 1&2 change it again
    $altSignUp = ($num_jugendb >= $max_jugendb || $num_jugenda >= $max_jugenda || $num_dklasse >= $max_dklasse);

    switch ($_POST['turnierklasse'])
    {
        case 1:
            $turnierklasse = 'Jugend U18 B';
            $turnierklassestr = 'Jugend U18 B mit QTTR von 0 bis 1150 - Turniertag 1 - Samstag 12. September 2020';
            $startgeld = '10€';
            $vorkasse = '9€';
            $altSignUp = ($num_jugendb >= $max_jugendb);
        break;
        case 2:
            $turnierklasse = 'Jugend U18 A';
            $turnierklassestr = 'Jugend U18 A mit QTTR von 1050 bis 3000 - Turniertag 1 - Samstag 12. September 2020';
            $startgeld = '10€';
            $vorkasse = '9€';
            $altSignUp = ($num_jugenda >= $max_jugenda);
        break;
        case 3:
            $turnierklasse = 'Aktive D';
            $turnierklassestr = 'Aktive D mit QTTR von 0 bis 1350 - Turniertag 1 - Samstag 12. September 2020';
            $startgeld = '12€';
            $vorkasse = '11€';
            $altSignUp = ($num_dklasse >= $max_dklasse);
        break;
    }
    if (mysqli_fetch_object(mysqli_query($mysqli, 'SELECT * FROM `anmeldungen_2019_samstag` WHERE `vorname` = \'' . mysqli_real_escape_string($mysqli, $_POST['vorname']) . '\' AND `nachname` = \'' . mysqli_real_escape_string($mysqli, $_POST['nachname']) . '\' LIMIT 1')))
    {
?><p><span class="rot"><b>Die Anmeldung ist Fehlgeschlagen!<br/>Die von dir angegebene Person <?php
        echo $_POST['vorname'] . ' ' . $_POST['nachname'];
?> ist bereits angemeldet.</b></span></p>
                <p>Falls dem nicht so seien sollte, kontaktiere uns bitte via E-Mail!</p>
                </p><?php
        $show_form = false;
    }
    else
    { //eintragen
        $mysqli_query = ' 
INSERT INTO `anmeldungen_2019_samstag`
(`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `email`, `verein`, `gemeldeteKlasse`, `anmerkung`, `timestamp`)
VALUES
(\'' . mysqli_real_escape_string($mysqli, $_POST['vorname']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['nachname']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['geschlecht']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['geburtsjahr']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['ttr']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['email']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['verein']) . '\', \'' . $_POST['turnierklasse'] . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['eintrag']) . '\', NOW())';
        if (mysqli_query($mysqli, $mysqli_query))

        { //Bestätigungsemail an den Anmeldenden
            

            $mail = new PHPMailer;
            include ("mail-zugang-smtp.php.inc");

            //Betreff in der E-Mail ermitteln, je nach Teilnehmeranzahl
            $subject = 'Bestätigung der Anmeldung zum PPC 23';
            if ($altSignUp) $subject = 'Warteliste - PPC 23';

            //Zeit ermittelt an dem das Formular ausgefüllt wurde
            $today_Wochentag = date('l');
            $today_Datum = date('d.m.Y');
            $today_Uhrzeit = date('H:i');
            $t = date('w');
            $wochentage = array(
                'Sonntag',
                'Montag',
                'Dienstag',
                'Mittwoch',
                'Donnerstag',
                'Freitag',
                'Samstag'
            );
            $wochentag = $wochentage[$t];

            //Anmeldung oder Anfrage ausgegeben, je nach Teilnehmeranzahl
            $anmeldung_oder_warteliste = 'Anmeldung';
            if ($altSignUp) $anmeldung_oder_warteliste = 'Anfrage';

            $text = "
                Hallo {$_POST['vorname']} {$_POST['nachname']},<br />
                <br />
                am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine {$anmeldung_oder_warteliste} bei uns eingegangen.<br />
                <br />
                An die Turnierleitung wurden folgende Angaben übermittelt:<br />
                Vorname: {$_POST['vorname']}<br />
                Nachname: {$_POST['nachname']}<br />
                Geschlecht: {$_POST['geschlecht']}<br />
                Kontakt-E-Mail: {$_POST['email']}<br />
                (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                Angemeldete Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                <br />
                Verein: {$_POST['verein']}<br />            
                Startgebühr: {$startgeld}<br />
                Vorkasse: {$vorkasse}<br />
                <br />
                Mit sportlichen Grüßen<br />
                ";
            if ($altSignUp) $text = "    
                                            Hallo {$_POST['vorname']} {$_POST['nachname']},<br />
                                            <br />
                                            am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine {$anmeldung_oder_warteliste} bei uns eingegangen. Dies ist keine Turnierbestätigung!<br />
                                            <br />Aktuell ist die Teilnehmergrenze in deinem gemeldeten Wettbewerb überschritten und wir können deshalb deine Anfrage aktuell leider noch nicht bestätigen. Erfahrungsgemäß sagen aber kurz vor Turnierbeginn noch der eine oder andere Spieler/in ab. In einem solchen Fall würden wir dann umgehend mit dir Kontakt aufnehmen.<br />
                                            <br />
                                            An die Turnierleitung wurden vorab aber schon mal folgende Angaben übermittelt:<br />
                                            Vorname: {$_POST['vorname']}<br />
                                            Nachname: {$_POST['nachname']}<br />
                                            Geschlecht: {$_POST['geschlecht']}<br />
                                            Kontakt-E-Mail: {$_POST['email']}<br />
                                            (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                                            Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                                            Verein: {$_POST['verein']}<br />
                                            ";

            //UTF-8 Kodierung festlegen
            $mail->CharSet = "utf-8";

            //Absenderadresse der Email setzen
            $mail->setFrom("");
            $mail->addReplyTo("");

            //Name des Abenders setzen
            $mail->FromName = ("");

            //Empfängeradresse setzen
            $mail->AddAddress($_POST['email']);

            //möglicher Empfänger einer Kopie setzen
            $mail->AddCC($_POST['email_alt']);

            // html
            $mail->isHTML(true);

            //Betreff der Email setzen
            $mail->Subject = $subject;

            //Text der EMail setzen
            $mail->Body = $text;

            //EMail senden und überprüfen ob sie versandt wurde
            if (!$mail->Send())
            {
                //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
                echo "Es gab bei der übermittelung der Daten ein kleines Problem. Bitte wiederhole den Vorgang oder kontaktiere uns bitte via E-Mail";
                echo "Fehler: " . $mail->ErrorInfo;
            }
            else
            {
                //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
                echo "<br />Eine Bestätigung deiner Anmeldung/Anfrage ist soeben an dich gesendet worden.";
            }
            { //Mail an die Turnierleitung
                $mail = new PHPMailer;

                include ("mail-zugang-smtp.php.inc");

                //Betreff in der E-Mail ermitteln, je nach Teilnehmeranzahl
                $subject = 'Neue Anmeldung zum PPC 23';
                if ($altSignUp) $subject = 'Warteliste - Neue Anfrage';

                //Zeit ermittelt an dem das Formular ausgefüllt wurde
                $today_Wochentag = date('l');
                $today_Datum = date('d.m.Y');
                $today_Uhrzeit = date('H:i');
                $t = date('w');
                $wochentage = array(
                    'Sonntag',
                    'Montag',
                    'Dienstag',
                    'Mittwoch',
                    'Donnerstag',
                    'Freitag',
                    'Samstag'
                );
                $wochentag = $wochentage[$t];

                //Anmeldung oder Anfrage ausgegeben, je nach Teilnehmeranzahl
                $anmeldung_oder_warteliste = 'Anmeldung';
                if ($altSignUp) $anmeldung_oder_warteliste = 'Anfrage';

                $text = " ANMELDUNG!!!<br />
                <br />
                Hallo Turnierleitung,<br />
                <br />
                am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist eine neue Anmeldung eingegangen.<br />
                <br />
                Hier die Angaben des Spielers/der Spielerin:<br />
                Vorname: {$_POST['vorname']}<br />
                Nachname: {$_POST['nachname']}<br />
                Geschlecht: {$_POST['geschlecht']}<br />
                Kontakt-E-Mail: {$_POST['email']}<br />
                E-Mail 2: {$_POST['email_alt']}<br />
                (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                Geburtsjahr: {$_POST['geburtsjahr']}<br />
                Verein: {$_POST['verein']}<br />
                Anmerkung: {$_POST['eintrag']}<br />
                <br />
                Mit sportlichen Grüßen<br />
                {$_POST['vorname']} {$_POST['nachname']}
                ";
                if ($altSignUp) $text = "    WARTELISTE!!!<br />
                                            <br />
                                            Hallo Turnierleitung,<br />
                                            <br />
                                            am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist eine neue Anfrage eingegangen.<br />
                                            <br />
                                            Hier die Angaben des Spielers/der Spielerin:<br />
                                            Vorname: {$_POST['vorname']}<br />
                                            Nachname: {$_POST['nachname']}<br />
                                            Geschlecht: {$_POST['geschlecht']}<br />
                                            Kontakt-E-Mail: {$_POST['email']}<br />
                                            E-Mail 2: {$_POST['email_alt']}<br />
                                            (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                                            Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                                            Geburtsjahr: {$_POST['geburtsjahr']}<br />
                                            Verein: {$_POST['verein']}<br />
                                            Anmerkung: {$_POST['eintrag']}<br />
                                            <br />
                                            Mit sportlichen Grüßen<br />
                                            {$_POST['vorname']} {$_POST['nachname']}
                                            ";

                //UTF-8 Kodierung festlegen
                $mail->CharSet = "utf-8";

                //Absenderadresse der Email setzen
                $mail->setFrom("");
                //                $mail->addReplyTo("leer@leer.de");
                $mail->addReplyTo($_POST['email']);

                //Name des Abenders setzen
                $mail->FromName = ($_POST['vorname'] . ' ' . $_POST['nachname']);
                //                $mail->FromName = ("Turnierportal");
                //Empfängeradresse setzen
                $mail->AddAddress("");

                // html
                $mail->isHTML(true);

                //Betreff der Email setzen
                $mail->Subject = $subject;

                //Text der EMail setzen
                $mail->Body = $text;

                //EMail senden und überprüfen ob sie versandt wurde
                if (!$mail->Send())
                {
                    //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
                    echo "Es gab bei der übermittelung der Daten ein kleines Problem. Bitte wiederhole den Vorgang oder kontaktiere uns bitte via E-Mail";
                    echo "Fehler: " . $mail->ErrorInfo;
                }
                else
                {
                    //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
                    echo "<br />Die Anmeldung/Anfrage ist an die Turnierleitung übermittelt worden.";
                }

                //    $show_form=true;
                
            }
        }
        else
        {
            die('<b>MySQL Error:</b><div class="rot">' . mysqli_error($mysqli) . '</div><br/>');
            $show_form = true;
        }
    }
}
if ($show_form) //zeige Formular

{ //führt das aus, wenn die mail adresse noch ned angegeben wurde oder sonst wie das Formular nicht stimmt.
    //ausgabe bzw. setzen von "turnierklasse" vereinfachen
    //Formular für Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.
    
?>
<h1>Anmeldung: Turniertag 1, Samstag 12.09.2020</h1>    
<p>Bitte alle mit einem * versehenen Felder ausfüllen.<br />
Die Teilnahme ist grundsätzlich nur in einem Wettbewerb möglich und auch nur in dem Wettbewerb, in welchem der Q-TTR passt.<br />
Die Angabe der E-Mail-Adresse ist von Nöten, da wir an diese Adresse die Bestätigungsemail verschicken.</p>
<form name="blub" method="post" action="test2-anmeldung.php">
<p><label for="vorname">Vorname*:</label> 
<input name="vorname" type="text" id="vorname" size="45" maxlength="50" placeholder=" Max" class="eingabe" value="<?php
    echo ($_POST['vorname'] . '"/>' . $frm_error['vorname']);
?></p>
<p><label for="nachname">Nachname*:</label>
<input name="nachname" type="text" id="nachanme" size="45" maxlength="50" placeholder=" Mustermann" class="eingabe" value="<?php
    echo ($_POST['nachname'] . '"/>' . $frm_error['nachname']);
?></p>              
<p>Geschlecht*:
<select name="geschlecht"><option value="1">Bitte auswählen</option><option value="M"<?php
    echo (($_POST['geschlecht'] == 'M' ? ' selected="selected"' : ''));
?>>männlich</option><option value="W"<?php
    echo (($_POST['geschlecht'] == 'W' ? ' selected="selected"' : ''));
?>>weiblich</option></select><?php
    echo $frm_error['geschlecht'];
?> </p>  
<p><label for="email">E-Mail*:</label>
 <input name="email" type="text" id="email" size="45" maxlength="50" placeholder=" test@example.com" class="eingabe" value="<?php
    echo ($_POST['email'] . '"/>' . $frm_error['email']);
?></p>
 <p><label for="geburtsjahr">Geburtsjahr*:</label>
<input name="geburtsjahr" type="text" id="geburtsjahr" size="7" maxlength="50" placeholder=" z.B. 1967" class="eingabe" value="<?php
    echo ($_POST['geburtsjahr'] . '"/>' . $frm_error['geburtsjahr']);
?></p>
  <p><label for="verein">Verein:*</label>
   <input name="verein" type="text" id="verein" size="45" maxlength="50" placeholder=" TTC Musterhausen" class="eingabe" value="<?php
    echo ($_POST['verein'] . '"/>' . $frm_error['verein']);
?></p>
 <p><label for="ttr">(Q-)TTR (11.08.2020)*:</label>
<input name="ttr" type="text" id="ttr" size="7" maxlength="50" placeholder=" z.B. 1000" class="eingabe" value="<?php
    echo ($_POST['ttr'] . '"/>' . $frm_error['ttr']);
?><p/>                                  
<p>Turnierklasse*:<br />
<select name="turnierklasse">
    <option>Bitte auswählen</option>
    <?php
    /*Samstag*/
    $sunfull_jugendb = ($num_jugendb >= $max_jugendb ? 'full' : 'gruen');
    $sunfull_jugenda = ($num_jugenda >= $max_jugenda ? 'full' : 'gruen');
    $sunfull_dklasse = ($num_dklasse >= $max_dklasse ? 'full' : 'gruen');
?>
  <option value="1" class="<?php
    echo $sunfull_jugendb;
?>"
   <?php
    echo ($_POST['turnierklasse'] == 1 ? ' selected="selected"' : '');
?>
  >Jugend U18 B mit QTTR von 0 bis 1150 - Turniertag 1 - Samstag 12. September 2020</option>
   <option value="2" class="<?php
    echo $sunfull_jugenda;
?>"
   <?php
    echo ($_POST['turnierklasse'] == 2 ? ' selected="selected"' : '');
?>
  >Jugend U18 A mit QTTR von 1050 bis 3000 - Turniertag 1 - Samstag 12. September 2020</option>
   <option value="3" class="<?php
    echo $sunfull_dklasse;
?>"
   <?php
    echo ($_POST['turnierklasse'] == 3 ? ' selected="selected"' : '');
?>
  >Aktive D mit QTTR von 0 bis 1350 - Turniertag 1 - Samstag 12. September 2020</option>
   </select><?php
    echo $frm_error['turnierklasse'];
?>
<br />
<?php
    if (in_array('full', array(
        $sunfull_jugendb,
        $sunfull_jugenda,
        $sunfull_dklasse
    )))
    {
?><colspan="2" class="rot" style="text-align:center;font-size:80%;">Hinweis:<br />eine oder mehrere Turnierklassen sind derzeit belegt.<br />Eine Anfrage für die gewünschte Turnierklasse ist dennoch möglich!<?php
    }
?> <p/>                              
    <p><label for="email">Anmerkung:</label><br />
  <textarea name="eintrag" cols="65" rows="7" id="eintrag" class="eingabe"><?php
    echo ($_POST['eintrag']);
?></textarea><p/>
 <p>Falls gewünscht, kann hier eine weitere E-Mail-Adresse angegeben werden, welche dann ebenfalls eine Kopie der Anmeldung/Anfrage erhält.<br />
  <label for="email_alt">E-Mail 2 (optional):</label><br />                        
<input name="email_alt" type="text" id="email_alt" size="45" maxlength="50" class="eingabe" value="<?php
    echo ($_POST['email_alt'] . '"/>' . $frm_error['email_alt']);
?></p>
                                                                          

<?php
    if ($checkbox_counter != 3)
    {
        echo $checkbox_nachricht;
    }
?>


                                                                          
<p><input type="checkbox" id="Verarbeitung_Bestaetigung" name="Verarbeitung_Bestaetigung" value="Ja">Mit der Nutzung dieses Formulars erklärst du dich mit der Speicherung und Verarbeitung deiner Daten durch diese Website einverstanden</p>
<p><input type="checkbox" id="Turnierinfos_Bestaetigung" name="Turnierinfos_Bestaetigung" value="Ja">Ebenso die Erlaubnis, dir Informationen rund um das Turnier via E-Mail zukommen zu lassen.</p>
<p><input type="checkbox" id="Datenschutz_Bestaetigung"name="Datenschutz_Bestaetigung" value="Ja"><a href="datenschutz.php" target="_blank">Datenschutz</a> gelesen und akzeptieren</p>
<p><input type="submit" value="Anmeldung abschließen"/></form></p><?php
}
?>
             
                
                <div class="clear"></div>
  
            </div>
            <!-- Ende Linker Inhalt -->
            
<?php
//include des rechten Bereiches
include ("include/rechter-inhalt.php");
//include Ende des ganzen Inhaltes
include ("include/ende-ganzer-inhalt.php");
//include Fuss
include ("include/fuss.php");
//include Ende
include ("include/ende.php");
?>

EDIT:
wenn aus
Zitat von Jörg

<?php
    }
    else
    {
        echo $checkbox_nachricht;
    }

?>

Das sollte eher so ausschauen:

<?php
    if ($checkbox_counter != 3)
    {
        echo $checkbox_nachricht;
    }
?>

Dann muß ja
//    if ($checkbox_counter == 3)
in Zeile 156 weg.

Ist dies weg, bekommt man das Formular wieder zu sehen und
Notice: Undefined variable: checkbox_counter line 537

Notice: Undefined variable: checkbox_nachricht line 539

26.03.2020 12:34 | geändert: 26.03.2020 12:55

14 Jörg Kruse

Dann muß ja
//    if ($checkbox_counter == 3)
in Zeile 156 weg.

Nein weg sollte es nicht, nur die Bedingung ist falsch rum, das Formular soll ja nochmal angezeigt werden, wenn nicht alle drei Checkboxen angeklickt wurden:

    if ($checkbox_counter != 3)
    {
        $show_form = true;
    }

Ist dies weg, bekommt man das Formular wieder zu sehen und
Notice: Undefined variable: checkbox_counter line 537

Notice: Undefined variable: checkbox_nachricht line 539

Du kannst mit isset() prüfen, ob die Variable überhaupt definiert ist (was beim Erstaufruf des Formulars nicht der Fall ist):

    if (isset($checkbox_counter) && $checkbox_counter != 3)
    {
        echo $checkbox_nachricht;
    }

26.03.2020 13:07 | geändert: 26.03.2020 13:08

15 tobi

Erstaufruf bringt hier direkt wieder
Notice: Undefined variable: checkbox_counter line 156

<?php
//Fehlermeldungen ausgeben falls vorhanden
ini_set('display_errors', 1);
error_reporting(E_ALL);

//include des Kopfbereiches
include ("include/kopf.php");
//include der Navigation
include ("include/navigation.php");
//include Anfang des ganzen Inhaltes
include ("include/anfang-ganzer-inhalt.php");
?>

<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
//use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/PHPMailer.php';
//require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/SMTP.php';

?>
   
            <!-- Anfang Linker Inhalt -->
            <div id="linkerinhalt">
    <title>Anmeldung</title>

<?php
include_once ('zugang_ppc.php.inc');

$max_jugenda = 40;
$max_jugendb = 40;
$max_dklasse = 64;

// sql-Abfrage 1 - Ermitteln Anzahl Jugend B (Turnierklasse = 1)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'1\'');
list($num_jugendb) = mysqli_fetch_row($query);
// sql-Abfrage 2 - Ermitteln Anzahl Jugend A (Turnierklasse = 2)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'2\'');
list($num_jugenda) = mysqli_fetch_row($query);
// sql-Abfrage 3 - Ermitteln Anzahl D-Klasse + Teilweise Damen B (Turnierklasse = 3)
$query = mysqli_query($mysqli, 'SELECT Count(*) FROM anmeldungen_2019_samstag WHERE gemeldeteKlasse = \'3\'');
list($num_dklasse) = mysqli_fetch_row($query);
unset($query);
?>
<?php
//begin POST form check
$show_form = false;
//entweder einfacher Check (nur namen angeben), oder erweiterter via Regularexpression ([name,regex,errormsg])
$frm_field = array(
    array(
        'email',
        '/^[\w\-\.\+]+@([\w\-]+\.?)+$/',
        'Bitte gültige E-Mail eintragen!'
    ) ,
    'vorname',
    'nachname',
    array(
        'geschlecht',
        '/^(M|W)$/',
        'Bitte Geschlecht auswählen!'
    ) ,
    array(
        'geburtsjahr',
        '/^(19|20)\d\d$/',
        'Bitte gültiges Geburtsjahr eintragen (z.B. 1967)!'
    ) ,
    'ttr',
    'verein',
    array(
        'turnierklasse',
        '/^[1-5]$/',
        'Bitte gültige Turnierklasse auswählen!'
    ) ,
    array(
        'email_alt',
        '/(^[\w\-\.\+]+@([\w\-]+\.?)+$|^$)/',
        'Optionales Feld, darf leer gelassen werden oder weitere gültige E-Mail eintragen!'
    )
);
$frm_error = array();
if (isset($_POST['email']))
{
    $checkbox_counter = 0; //Dieser Counter zählt die gesetzten Häkchen. 3 müssen es sein - sind es weniger wird unten die checkbox_nachricht ausgegeben
    if (!empty($_POST['Verarbeitung_Bestaetigung']))
    {
        $checkbox_nachricht = 'Du musst der Speicherung und Verarbeitung deiner Daten zustimmen.';
    }
    else
    {
        $checkbox_counter++;
    }
    if (!empty($_POST['Turnierinfos_Bestaetigung']))
    {
        $checkbox_nachricht = $checkbox_nachricht . ' Du musst uns erlauben, dich zuzuspammen.';
    }
    else
    {
        $checkbox_counter++;
    }
    if (!empty($_POST['Datenschutz_Bestaetigung']))
    {
        $checkbox_nachricht = $checkbox_nachricht . ' Du musst die Datenschutz-Foo akzeptieren.';
    }
    else
    {
        $checkbox_counter++;
    }

    foreach ($frm_field as $val)
    {
        if (!is_array($val))
        {
            if (empty($_POST[$val]))
            {
                $_POST[$val] = '';
                $frm_error[$val] = ' <span class="rot">Bitte ausfüllen!</span>';
                $show_form = true;
            }
            else $frm_error[$val] = '';
        }
        else
        {
            if (!isset($_POST[$val[0]]))
            {
                $_POST[$val[0]] = '';
                $frm_error[$val[0]] = ' <span class="rot">Bitte ausfüllen!</span>';
                $show_form = true;
            }
            elseif (!preg_match($val[1], $_POST[$val[0]]))
            {
                $frm_error[$val[0]] = ' <span class="rot">' . $val[2] . '</span>';
                $show_form = true;
            }
            else $frm_error[$val[0]] = '';
        }
    }
}
else
{
    foreach ($frm_field as $val)
    {
        if (is_array($val))
        {
            if (!isset($_POST[$val[0]])) $_POST[$val[0]] = '';
            $frm_error[$val[0]] = '';
        }
        elseif (!isset($_POST[$val]))
        {
            $_POST[$val] = '';
            $frm_error[$val] = '';
        }
    }

    if ($checkbox_counter != 3)

    {

        $show_form = true;
    }
}
unset($frm_field);
//vom check oben nicht betroffen (da optional)
if (!isset($_POST['eintrag'])) $_POST['eintrag'] = '';
if (!isset($_POST['turnierklasse_ex'])) $_POST['turnierklasse_ex'] = '';
//end POST form check
if (!$show_form)
{ //sende anfrage / eintragen
    $_POST['turnierklasse'] = intval($_POST['turnierklasse']);
    $turnierklassestr = '';
    //    $altSignUp              = ($num_sonntag >= $max_sonntag); //case 1&2 change it again
    $altSignUp = ($num_jugendb >= $max_jugendb || $num_jugenda >= $max_jugenda || $num_dklasse >= $max_dklasse);

    switch ($_POST['turnierklasse'])
    {
        case 1:
            $turnierklasse = 'Jugend U18 B';
            $turnierklassestr = 'Jugend U18 B mit QTTR von 0 bis 1150 - Turniertag 1 - Samstag 12. September 2020';
            $startgeld = '10€';
            $vorkasse = '9€';
            $altSignUp = ($num_jugendb >= $max_jugendb);
        break;
        case 2:
            $turnierklasse = 'Jugend U18 A';
            $turnierklassestr = 'Jugend U18 A mit QTTR von 1050 bis 3000 - Turniertag 1 - Samstag 12. September 2020';
            $startgeld = '10€';
            $vorkasse = '9€';
            $altSignUp = ($num_jugenda >= $max_jugenda);
        break;
        case 3:
            $turnierklasse = 'Aktive D';
            $turnierklassestr = 'Aktive D mit QTTR von 0 bis 1350 - Turniertag 1 - Samstag 12. September 2020';
            $startgeld = '12€';
            $vorkasse = '11€';
            $altSignUp = ($num_dklasse >= $max_dklasse);
        break;
    }
    if (mysqli_fetch_object(mysqli_query($mysqli, 'SELECT * FROM `anmeldungen_2019_samstag` WHERE `vorname` = \'' . mysqli_real_escape_string($mysqli, $_POST['vorname']) . '\' AND `nachname` = \'' . mysqli_real_escape_string($mysqli, $_POST['nachname']) . '\' LIMIT 1')))
    {
?><p><span class="rot"><b>Die Anmeldung ist Fehlgeschlagen!<br/>Die von dir angegebene Person <?php
        echo $_POST['vorname'] . ' ' . $_POST['nachname'];
?> ist bereits angemeldet.</b></span></p>
                <p>Falls dem nicht so seien sollte, kontaktiere uns bitte via E-Mail!</p>
                </p><?php
        $show_form = false;
    }
    else
    { //eintragen
        $mysqli_query = ' 
INSERT INTO `anmeldungen_2019_samstag`
(`vorname`, `nachname`, `geschlecht`, `geburtsjahr`, `ttr`, `email`, `verein`, `gemeldeteKlasse`, `anmerkung`, `timestamp`)
VALUES
(\'' . mysqli_real_escape_string($mysqli, $_POST['vorname']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['nachname']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['geschlecht']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['geburtsjahr']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['ttr']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['email']) . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['verein']) . '\', \'' . $_POST['turnierklasse'] . '\', \'' . mysqli_real_escape_string($mysqli, $_POST['eintrag']) . '\', NOW())';
        if (mysqli_query($mysqli, $mysqli_query))

        { //Bestätigungsemail an den Anmeldenden
            

            $mail = new PHPMailer;
            include ("mail-zugang-smtp.php.inc");

            //Betreff in der E-Mail ermitteln, je nach Teilnehmeranzahl
            $subject = 'Bestätigung der Anmeldung zum PPC 23';
            if ($altSignUp) $subject = 'Warteliste - PPC 23';

            //Zeit ermittelt an dem das Formular ausgefüllt wurde
            $today_Wochentag = date('l');
            $today_Datum = date('d.m.Y');
            $today_Uhrzeit = date('H:i');
            $t = date('w');
            $wochentage = array(
                'Sonntag',
                'Montag',
                'Dienstag',
                'Mittwoch',
                'Donnerstag',
                'Freitag',
                'Samstag'
            );
            $wochentag = $wochentage[$t];

            //Anmeldung oder Anfrage ausgegeben, je nach Teilnehmeranzahl
            $anmeldung_oder_warteliste = 'Anmeldung';
            if ($altSignUp) $anmeldung_oder_warteliste = 'Anfrage';

            $text = "
                Hallo {$_POST['vorname']} {$_POST['nachname']},<br />
                <br />
                am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine {$anmeldung_oder_warteliste} bei uns eingegangen.<br />
                <br />
                An die Turnierleitung wurden folgende Angaben übermittelt:<br />
                Vorname: {$_POST['vorname']}<br />
                Nachname: {$_POST['nachname']}<br />
                Geschlecht: {$_POST['geschlecht']}<br />
                Kontakt-E-Mail: {$_POST['email']}<br />
                (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                Angemeldete Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                <br />
                Verein: {$_POST['verein']}<br />            
                Startgebühr: {$startgeld}<br />
                Vorkasse: {$vorkasse}<br />
                <br />
                Mit sportlichen Grüßen<br />
                ";
            if ($altSignUp) $text = "    
                                            Hallo {$_POST['vorname']} {$_POST['nachname']},<br />
                                            <br />
                                            am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist deine {$anmeldung_oder_warteliste} bei uns eingegangen. Dies ist keine Turnierbestätigung!<br />
                                            <br />Aktuell ist die Teilnehmergrenze in deinem gemeldeten Wettbewerb überschritten und wir können deshalb deine Anfrage aktuell leider noch nicht bestätigen. Erfahrungsgemäß sagen aber kurz vor Turnierbeginn noch der eine oder andere Spieler/in ab. In einem solchen Fall würden wir dann umgehend mit dir Kontakt aufnehmen.<br />
                                            <br />
                                            An die Turnierleitung wurden vorab aber schon mal folgende Angaben übermittelt:<br />
                                            Vorname: {$_POST['vorname']}<br />
                                            Nachname: {$_POST['nachname']}<br />
                                            Geschlecht: {$_POST['geschlecht']}<br />
                                            Kontakt-E-Mail: {$_POST['email']}<br />
                                            (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                                            Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                                            Verein: {$_POST['verein']}<br />
                                            ";

            //UTF-8 Kodierung festlegen
            $mail->CharSet = "utf-8";

            //Absenderadresse der Email setzen
            $mail->setFrom("");
            $mail->addReplyTo("");

            //Name des Abenders setzen
            $mail->FromName = ("");

            //Empfängeradresse setzen
            $mail->AddAddress($_POST['email']);

            //möglicher Empfänger einer Kopie setzen
            $mail->AddCC($_POST['email_alt']);

            // html
            $mail->isHTML(true);

            //Betreff der Email setzen
            $mail->Subject = $subject;

            //Text der EMail setzen
            $mail->Body = $text;

            //EMail senden und überprüfen ob sie versandt wurde
            if (!$mail->Send())
            {
                //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
                echo "Es gab bei der übermittelung der Daten ein kleines Problem. Bitte wiederhole den Vorgang oder kontaktiere uns bitte via E-Mail";
                echo "Fehler: " . $mail->ErrorInfo;
            }
            else
            {
                //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
                echo "<br />Eine Bestätigung deiner Anmeldung/Anfrage ist soeben an dich gesendet worden.";
            }
            { //Mail an die Turnierleitung
                $mail = new PHPMailer;

                include ("mail-zugang-smtp.php.inc");

                //Betreff in der E-Mail ermitteln, je nach Teilnehmeranzahl
                $subject = 'Neue Anmeldung zum PPC 23';
                if ($altSignUp) $subject = 'Warteliste - Neue Anfrage';

                //Zeit ermittelt an dem das Formular ausgefüllt wurde
                $today_Wochentag = date('l');
                $today_Datum = date('d.m.Y');
                $today_Uhrzeit = date('H:i');
                $t = date('w');
                $wochentage = array(
                    'Sonntag',
                    'Montag',
                    'Dienstag',
                    'Mittwoch',
                    'Donnerstag',
                    'Freitag',
                    'Samstag'
                );
                $wochentag = $wochentage[$t];

                //Anmeldung oder Anfrage ausgegeben, je nach Teilnehmeranzahl
                $anmeldung_oder_warteliste = 'Anmeldung';
                if ($altSignUp) $anmeldung_oder_warteliste = 'Anfrage';

                $text = " ANMELDUNG!!!<br />
                <br />
                Hallo Turnierleitung,<br />
                <br />
                am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist eine neue Anmeldung eingegangen.<br />
                <br />
                Hier die Angaben des Spielers/der Spielerin:<br />
                Vorname: {$_POST['vorname']}<br />
                Nachname: {$_POST['nachname']}<br />
                Geschlecht: {$_POST['geschlecht']}<br />
                Kontakt-E-Mail: {$_POST['email']}<br />
                E-Mail 2: {$_POST['email_alt']}<br />
                (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                Geburtsjahr: {$_POST['geburtsjahr']}<br />
                Verein: {$_POST['verein']}<br />
                Anmerkung: {$_POST['eintrag']}<br />
                <br />
                Mit sportlichen Grüßen<br />
                {$_POST['vorname']} {$_POST['nachname']}
                ";
                if ($altSignUp) $text = "    WARTELISTE!!!<br />
                                            <br />
                                            Hallo Turnierleitung,<br />
                                            <br />
                                            am {$wochentage[$t]} den {$today_Datum} um {$today_Uhrzeit} Uhr ist eine neue Anfrage eingegangen.<br />
                                            <br />
                                            Hier die Angaben des Spielers/der Spielerin:<br />
                                            Vorname: {$_POST['vorname']}<br />
                                            Nachname: {$_POST['nachname']}<br />
                                            Geschlecht: {$_POST['geschlecht']}<br />
                                            Kontakt-E-Mail: {$_POST['email']}<br />
                                            E-Mail 2: {$_POST['email_alt']}<br />
                                            (Q-)TTR (11.08.2020): {$_POST['ttr']}<br />
                                            Turnierklasse samt Turniertag: " . $turnierklassestr . (intval($_POST['turnierklasse_ex']) ? ' (freiwillig eine Klasse höher)' : '') . "<br />
                                            Geburtsjahr: {$_POST['geburtsjahr']}<br />
                                            Verein: {$_POST['verein']}<br />
                                            Anmerkung: {$_POST['eintrag']}<br />
                                            <br />
                                            Mit sportlichen Grüßen<br />
                                            {$_POST['vorname']} {$_POST['nachname']}
                                            ";

                //UTF-8 Kodierung festlegen
                $mail->CharSet = "utf-8";

                //Absenderadresse der Email setzen
                $mail->setFrom("");
                //                $mail->addReplyTo("leer@leer.de");
                $mail->addReplyTo($_POST['email']);

                //Name des Abenders setzen
                $mail->FromName = ($_POST['vorname'] . ' ' . $_POST['nachname']);
                //                $mail->FromName = ("Turnierportal");
                //Empfängeradresse setzen
                $mail->AddAddress("");

                // html
                $mail->isHTML(true);

                //Betreff der Email setzen
                $mail->Subject = $subject;

                //Text der EMail setzen
                $mail->Body = $text;

                //EMail senden und überprüfen ob sie versandt wurde
                if (!$mail->Send())
                {
                    //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
                    echo "Es gab bei der übermittelung der Daten ein kleines Problem. Bitte wiederhole den Vorgang oder kontaktiere uns bitte via E-Mail";
                    echo "Fehler: " . $mail->ErrorInfo;
                }
                else
                {
                    //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
                    echo "<br />Die Anmeldung/Anfrage ist an die Turnierleitung übermittelt worden.";
                }

                //    $show_form=true;
                
            }
        }
        else
        {
            die('<b>MySQL Error:</b><div class="rot">' . mysqli_error($mysqli) . '</div><br/>');
            $show_form = true;
        }
    }
}
if ($show_form) //zeige Formular

{ //führt das aus, wenn die mail adresse noch ned angegeben wurde oder sonst wie das Formular nicht stimmt.
    //ausgabe bzw. setzen von "turnierklasse" vereinfachen
    //Formular für Zusatzangaben wie E-Mail-Adresse, Mitteilung, etc.
    
?>
<h1>Anmeldung: Turniertag 1, Samstag 12.09.2020</h1>    
<p>Bitte alle mit einem * versehenen Felder ausfüllen.<br />
Die Teilnahme ist grundsätzlich nur in einem Wettbewerb möglich und auch nur in dem Wettbewerb, in welchem der Q-TTR passt.<br />
Die Angabe der E-Mail-Adresse ist von Nöten, da wir an diese Adresse die Bestätigungsemail verschicken.</p>
<form name="blub" method="post" action="test2-anmeldung.php">
<p><label for="vorname">Vorname*:</label> 
<input name="vorname" type="text" id="vorname" size="45" maxlength="50" placeholder=" Max" class="eingabe" value="<?php
    echo ($_POST['vorname'] . '"/>' . $frm_error['vorname']);
?></p>
<p><label for="nachname">Nachname*:</label>
<input name="nachname" type="text" id="nachanme" size="45" maxlength="50" placeholder=" Mustermann" class="eingabe" value="<?php
    echo ($_POST['nachname'] . '"/>' . $frm_error['nachname']);
?></p>              
<p>Geschlecht*:
<select name="geschlecht"><option value="1">Bitte auswählen</option><option value="M"<?php
    echo (($_POST['geschlecht'] == 'M' ? ' selected="selected"' : ''));
?>>männlich</option><option value="W"<?php
    echo (($_POST['geschlecht'] == 'W' ? ' selected="selected"' : ''));
?>>weiblich</option></select><?php
    echo $frm_error['geschlecht'];
?> </p>  
<p><label for="email">E-Mail*:</label>
 <input name="email" type="text" id="email" size="45" maxlength="50" placeholder=" test@example.com" class="eingabe" value="<?php
    echo ($_POST['email'] . '"/>' . $frm_error['email']);
?></p>
 <p><label for="geburtsjahr">Geburtsjahr*:</label>
<input name="geburtsjahr" type="text" id="geburtsjahr" size="7" maxlength="50" placeholder=" z.B. 1967" class="eingabe" value="<?php
    echo ($_POST['geburtsjahr'] . '"/>' . $frm_error['geburtsjahr']);
?></p>
  <p><label for="verein">Verein:*</label>
   <input name="verein" type="text" id="verein" size="45" maxlength="50" placeholder=" TTC Musterhausen" class="eingabe" value="<?php
    echo ($_POST['verein'] . '"/>' . $frm_error['verein']);
?></p>
 <p><label for="ttr">(Q-)TTR (11.08.2020)*:</label>
<input name="ttr" type="text" id="ttr" size="7" maxlength="50" placeholder=" z.B. 1000" class="eingabe" value="<?php
    echo ($_POST['ttr'] . '"/>' . $frm_error['ttr']);
?><p/>                                  
<p>Turnierklasse*:<br />
<select name="turnierklasse">
    <option>Bitte auswählen</option>
    <?php
    /*Samstag*/
    $sunfull_jugendb = ($num_jugendb >= $max_jugendb ? 'full' : 'gruen');
    $sunfull_jugenda = ($num_jugenda >= $max_jugenda ? 'full' : 'gruen');
    $sunfull_dklasse = ($num_dklasse >= $max_dklasse ? 'full' : 'gruen');
?>
  <option value="1" class="<?php
    echo $sunfull_jugendb;
?>"
   <?php
    echo ($_POST['turnierklasse'] == 1 ? ' selected="selected"' : '');
?>
  >Jugend U18 B mit QTTR von 0 bis 1150 - Turniertag 1 - Samstag 12. September 2020</option>
   <option value="2" class="<?php
    echo $sunfull_jugenda;
?>"
   <?php
    echo ($_POST['turnierklasse'] == 2 ? ' selected="selected"' : '');
?>
  >Jugend U18 A mit QTTR von 1050 bis 3000 - Turniertag 1 - Samstag 12. September 2020</option>
   <option value="3" class="<?php
    echo $sunfull_dklasse;
?>"
   <?php
    echo ($_POST['turnierklasse'] == 3 ? ' selected="selected"' : '');
?>
  >Aktive D mit QTTR von 0 bis 1350 - Turniertag 1 - Samstag 12. September 2020</option>
   </select><?php
    echo $frm_error['turnierklasse'];
?>
<br />
<?php
    if (in_array('full', array(
        $sunfull_jugendb,
        $sunfull_jugenda,
        $sunfull_dklasse
    )))
    {
?><colspan="2" class="rot" style="text-align:center;font-size:80%;">Hinweis:<br />eine oder mehrere Turnierklassen sind derzeit belegt.<br />Eine Anfrage für die gewünschte Turnierklasse ist dennoch möglich!<?php
    }
?> <p/>                              
    <p><label for="email">Anmerkung:</label><br />
  <textarea name="eintrag" cols="65" rows="7" id="eintrag" class="eingabe"><?php
    echo ($_POST['eintrag']);
?></textarea><p/>
 <p>Falls gewünscht, kann hier eine weitere E-Mail-Adresse angegeben werden, welche dann ebenfalls eine Kopie der Anmeldung/Anfrage erhält.<br />
  <label for="email_alt">E-Mail 2 (optional):</label><br />                        
<input name="email_alt" type="text" id="email_alt" size="45" maxlength="50" class="eingabe" value="<?php
    echo ($_POST['email_alt'] . '"/>' . $frm_error['email_alt']);
?></p>
                                                                          

<?php
    if (isset($checkbox_counter) && $checkbox_counter != 3)
    {
        echo $checkbox_nachricht;
    }
?>


                                                                          
<p><input type="checkbox" id="Verarbeitung_Bestaetigung" name="Verarbeitung_Bestaetigung" value="Ja">Mit der Nutzung dieses Formulars erklärst du dich mit der Speicherung und Verarbeitung deiner Daten durch diese Website einverstanden</p>
<p><input type="checkbox" id="Turnierinfos_Bestaetigung" name="Turnierinfos_Bestaetigung" value="Ja">Ebenso die Erlaubnis, dir Informationen rund um das Turnier via E-Mail zukommen zu lassen.</p>
<p><input type="checkbox" id="Datenschutz_Bestaetigung"name="Datenschutz_Bestaetigung" value="Ja"><a href="datenschutz.php" target="_blank">Datenschutz</a> gelesen und akzeptieren</p>
<p><input type="submit" value="Anmeldung abschließen"/></form></p><?php
}
?>
             
                
                <div class="clear"></div>
  
            </div>
            <!-- Ende Linker Inhalt -->
            
<?php
//include des rechten Bereiches
include ("include/rechter-inhalt.php");
//include Ende des ganzen Inhaltes
include ("include/ende-ganzer-inhalt.php");
//include Fuss
include ("include/fuss.php");
//include Ende
include ("include/ende.php");
?>

27.03.2020 06:58

16 Jörg Kruse

    if ($checkbox_counter != 3)
    {
        $show_form = true;
    }

Dieser Abschnitt steht im falschen Block. Er sollte direkt unter diesem Abschnitt stehen:

    $checkbox_counter = 0; //Dieser Counter zählt die gesetzten Häkchen. 3 müssen es sein - sind es weniger wird unten die checkbox_nachricht ausgegeben
    if (!empty($_POST['Verarbeitung_Bestaetigung']))
    {
        $checkbox_nachricht = 'Du musst der Speicherung und Verarbeitung deiner Daten zustimmen.';
    }
    else
    {
        $checkbox_counter++;
    }
    if (!empty($_POST['Turnierinfos_Bestaetigung']))
    {
        $checkbox_nachricht = $checkbox_nachricht . ' Du musst uns erlauben, dich zuzuspammen.';
    }
    else
    {
        $checkbox_counter++;
    }
    if (!empty($_POST['Datenschutz_Bestaetigung']))
    {
        $checkbox_nachricht = $checkbox_nachricht . ' Du musst die Datenschutz-Foo akzeptieren.';
    }
    else
    {
        $checkbox_counter++;
    }

Dort wird $checkbox_counter hochgezählt und dort muss auch die Auswertung erfolgen.

27.03.2020 08:48 | geändert: 27.03.2020 08:49

17 tobi

Aufruf klappt nun, aber

Szenario 1:
Formular leer und keine Checkbox angeklickt -> absenden -> Fehlermeldungen für die Formularfelder tauchen auf, bei den Checkboxen aber keine.

Szenario 2:
Formular leer, 1. Chechbox geklickt -> absenden -> Fehlermeldungen für die Formularfelder tauchen auf, bei den Checkboxen nur "Du musst der Speicherung und Verarbeitung deiner Daten zustimmen" und das angeklickte Feld ist wieder leer.

Szenario 3:
Formular leer, 2. Chechbox geklickt -> absenden -> Fehlermeldungen für die Formularfelder tauchen auf, bei den Checkboxen nur "Du musst uns erlauben, dich zuzuspammen" und das angeklickte Feld ist wieder leer.
Notice: Undefined variable: checkbox_nachricht on line 96

Szenario 4:
Formular leer, 3. Chechbox geklickt -> absenden -> Fehlermeldungen für die Formularfelder tauchen auf, bei den Checkboxen nur "Du musst die Datenschutz-Foo akzeptieren" und das angeklickte Feld ist wieder leer.
Notice: Undefined variable: checkbox_nachricht on line 104

Szenario 5:
Formular leer, alle 3 Chechboxen geklickt -> absenden -> Fehlermeldungen für die Formularfelder tauchen auf, bei den Checkboxen tauchen alle 3 Meldungen auf und die angeklickten Felder sind wieder leer.

27.03.2020 09:38

18 Jörg Kruse

Wenn der Checkbox-Parameter leer ist, soll die Fehlermeldung kommen, ansonsten wird der Counter hochgezählt. Das Ausrufezeichen vor empty() muss also raus:

    if (empty($_POST['Verarbeitung_Bestaetigung']))
    {
        $checkbox_nachricht = 'Du musst der Speicherung und Verarbeitung deiner Daten zustimmen.';
    }
    else
    {
        $checkbox_counter++;
    }

27.03.2020 10:18 | geändert: 27.03.2020 10:26

19 tobi

Wenn Formlar ausgefüllt, undHacke ich ein Checkbox ein und klicke auf senden, dann tauchen nun korrekterweise die anderen beiden Meldungen auf, dass kein hacken gesetzt wurde. Der Hacken beim gesetzten Feld bleibt aber leer.
Theoretisch müßte er bei jedem "abschicken" ja gesetzt bleiben, bis das Formular korrekt und alle Checkboxen angehackt sind.

Lasse ich das Formular leer und hacke die 1. Checkbox ein, dann
Notice: Undefined variable: checkbox_nachricht in 96

27.03.2020 11:01 | geändert: 27.03.2020 11:12

20 Jörg Kruse

Dazu musst du die Checkboxen je nach Vorhandensein des jeweiligen POST-Parameters mit einem checked Attribut ausstatten, z.B.:

<input type="checkbox" name="xyz" value="1" <?= ((empty($_POST['xyz'])) ? '' : ' checked') ?>>

Lasse ich das Formular leer und hacke die 1. Checkbox ein, dann
Notice: Undefined variable: checkbox_nachricht in 96

Einfach vor der ersten Verwendung initialisieren

    $checkbox_nachricht = '';
    if (empty($_POST['Verarbeitung_Bestaetigung']))
    {
        $checkbox_nachricht = 'Du musst der Speicherung und Verarbeitung deiner Daten zustimmen.';
    }

27.03.2020 11:41