diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/addEvent.php b/homepage/redesign2018/markdownExperiment/wkParticipo/addEvent.php new file mode 100644 index 0000000..de4df97 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/addEvent.php @@ -0,0 +1,65 @@ +connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + $query = sprintf( + "INSERT INTO wkParticipo_Events (wkId, meldefrist) + SELECT * FROM (SELECT '%s', '%s') as new_event + WHERE NOT EXISTS ( + SELECT wkId FROM wkParticipo_Events WHERE wkId = '%s' + ) LIMIT 1;", + $mysqli->real_escape_string($_POST['f']['wkId']), + $mysqli->real_escape_string($_POST['f']['meldefrist']), + $mysqli->real_escape_string($_POST['f']['wkId']) + ); +// echo $query;// die(); + $result = $mysqli->query($query); +// echo $result; die(); + if ($mysqli->affected_rows == 1) { + $message['success'] = 'Neues Event zu wkId = ' . htmlspecialchars($_POST['f']['wkId']) . ' angelegt!'; + header('Location: http://' . $_SERVER['HTTP_HOST'] . $wkParticipoConf['rootDir'] . '/index.php'); + } else { + $message['error'] = 'Event zu wkId = ' . $_POST['f']['wkId'] . ' bereits erstellt!.'; + } + $mysqli->close(); + } + } else { + $message['notice'] = 'Übermitteln Sie das ausgefüllte Formular um ein neues Event zu erstellen.'; + } +?> + + + + loginsystem - register.php + + +
+ +
Fehler
+ +
Erfolg
+ +
Hinweis
+ +
+ Benutzerdaten +
/>
+
/>
+
+
+
+
+
+ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/addFahrt.php b/homepage/redesign2018/markdownExperiment/wkParticipo/addFahrt.php new file mode 100644 index 0000000..320aa9e --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/addFahrt.php @@ -0,0 +1,91 @@ +connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + + $query = sprintf( + "INSERT INTO wkParticipo_Fahrten (eventId, fahrerId, plaetze) values (%s, %s, %s);", + $mysqli->real_escape_string($_POST['f']['eventId']), + $mysqli->real_escape_string($_SESSION['user']['userId']), + $mysqli->real_escape_string($_POST['f']['anzPlaetze']) + ); + $result = $mysqli->query($query); + if(!$result){ + echo "Fehler bei der Meldung: " . mysql_error(); die($query); + } + $message['success'] = + "Neue Fahrt für eventId " . $_POST['f']['eventId'] . " mit " . $_POST['f']['anzPlaetze'] . " hinzugefügt"; + + $userData = getUserData($mysqli, $_SESSION['user']['userId']); + $eventData = getEventData($mysqli, $_POST['f']['eventId']); + $wkData = getWkData($mysqli, $eventData['wkId']); + + $notificationMail['to'] = $userData['eMail']; + $notificationMail['subject'] = "=?UTF-8?B?".base64_encode("Fahrtbestätigung")."?="; + $notificationMail['message'] = "Fahrt zum Wettkampf " . mb_convert_encoding($wkData['Veranstaltung'], 'UTF-8', 'ISO-8859-1') . " mit ".$_POST['f']['anzPlaetze']." Plätzen gemeldet. Diese Mail wurde automatisch vom Wettkampfplaner bei der Meldung versandt."; + $notificationMail['headers'] = "From: noreply.wettkampflaner@cwsvjudo.bplaced.net\r\n". + "Reply-To: cwsvjudo@arcor.de\r\n". + "X-Mailer: PHP/".phpversion()."\r\n". + "Content-Type: text/plain; charset=UTF-8"; + + if(!empty($notificationMail['to'])){ + mail ( $notificationMail['to'] , $notificationMail['subject'] , $notificationMail['message'], $notificationMail['headers'] ); + } + + $notificationMail['to'] = $wkParticipoConf['adminEmail']; + if(!empty($notificationMail['to'])){ + mail ( $notificationMail['to'] , $notificationMail['subject'] , $notificationMail['message'], $notificationMail['headers'] ); + } + header('Location: http://' . $_SERVER['HTTP_HOST'] . $wkParticipoConf['rootDir'] . '/index.php'); + $mysqli->close(); + } + } + } else { + $message['notice'] = 'Übermitteln Sie das ausgefüllte Formular um ein neues Event zu erstellen.'; + } +?> + + + + + Wettkampfplaner - Meldung + + + + connect_error){ + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + + $eventData = getEventData($mysqli, $_POST['f']['eventId']); + $wkData = getWkData($mysqli, $eventData['wkId']); +?> +
+ +
+ /> + Anzahl Plätze: + +
+
+
Zurück zur Übersicht
+ close();?> + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/addStarter.php b/homepage/redesign2018/markdownExperiment/wkParticipo/addStarter.php new file mode 100644 index 0000000..234c325 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/addStarter.php @@ -0,0 +1,177 @@ +"; + } + else{ + $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqlConn->connect_error) { + $message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."
$wkEventData['meldefrist']){ + $message['error'] .= "Die Meldefrist ist bereits abgelaufen!
"; + } + else{ + // Wenn keine userId übergeben wird, biete alle Kinder an + // Wenn die Art des Startes nicht mit angegeben ist, auch nachfragen + if( !isset($_POST['f']['userId']) || !isset($_POST['f']['type'])){ + $kinderDaten = getUsersKidsData($mysqlConn, $_SESSION['user']['userId']); + + //print_r($kinderDaten); + + foreach($kinderDaten as $kind){ + $meldungsBox .= "
Meldung"; + $meldungsBox .= "
"; + $meldungsBox .= ""; + $meldungsBox .= ""; + $meldungsBox .= ""; + + if( getUsersMeldeStatus($mysqlConn, $_POST['f']['eventId'], $kind['id']) ){ + $meldungsBox .= "
Bereits gemeldet
"; + } + else{ + if( date("Y-m-d") > $wkEventData['meldefrist']){ + $meldungsBox .= "
Die Meldefrist ist bereits abgelaufen!
"; + } + else{ + $meldungsBox .= ""; + } + } + $meldungsBox .= "

"; + } + } + else{ + $userData = getUserData($mysqlConn, $_SESSION['user']['userId']); + $starterData = getUserData($mysqlConn, $_POST['f']['userId']); +// $wkData = getWkData($mysqlConn, $eventData['wkId']); + + if( + !in_array( + $_POST['f']['userId'], + explode(',', getUserData($mysqlConn, $_SESSION['user']['userId'])['kinder']) + ) + ){ + $message['error'] .= "Es fehlt die Berechtigung diesen Starter zu melden!
"; + } + else{ + $message = createStarterForEvent($mysqlConn, $_POST['f']['eventId'], $_POST['f']['userId'], $_POST['f']['type']); + + if( isset($message['success']) ){ + $notificationMail['to'] = $userData['eMail']; + $notificationMail['subject'] = "=?UTF-8?B?".base64_encode("Meldebestätigung")."?="; + $notificationMail['message'] = mb_convert_encoding($starterData['name'], 'UTF-8', 'ISO-8859-1') . ", " . mb_convert_encoding($starterData['vorname'], 'UTF-8', 'ISO-8859-1') . " zum Wettkampf " . mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1') . " gemeldet. Diese Mail wurde automatisch vom Wettkampfplaner bei der Meldung versandt."; + $notificationMail['headers'] = "From: noreply.wettkampflaner@cwsvjudo.bplaced.net\r\n". + "Reply-To: cwsvjudo@arcor.de\r\n". + "X-Mailer: PHP/".phpversion()."\r\n". + "Content-Type: text/plain; charset=UTF-8"; + + if(!empty($notificationMail['to'])){ + mail ( $notificationMail['to'] , $notificationMail['subject'] , $notificationMail['message'], $notificationMail['headers'] ); + } + + $notificationMail['to'] = $wkParticipoConf['adminEmail']; + if(!empty($notificationMail['to'])){ + mail ( $notificationMail['to'] , $notificationMail['subject'] , $notificationMail['message'], $notificationMail['headers'] ); + } + } + } + } + } + } + $mysqlConn->close(); + } + } +?> + + + + + Wettkampfplaner - Meldung + + + + +
+ + zum Wettkampf gemeldet!
+ +

+ + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/addStarterDev.php b/homepage/redesign2018/markdownExperiment/wkParticipo/addStarterDev.php new file mode 100644 index 0000000..fc23bc2 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/addStarterDev.php @@ -0,0 +1,193 @@ +"; + } + else{ + $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqlConn->connect_error) { + $message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."
$wkEventData['meldefrist']){ + $message['error'] .= "Die Meldefrist ist bereits abgelaufen!
"; + } + else{ + if( !isset($_POST['f']['userId']) ){ + $query = sprintf( + "SELECT kinder FROM wkParticipo_Users WHERE id='%s';", + $mysqlConn->real_escape_string($_SESSION['user']['userId']) + ); + + $kinderResults = $mysqlConn->query($query); + if(!$kinderResults){ + $message['warning'] .= "Fehler bei Abfrage der Kinder!
"; + } + $kinderResult = $kinderResults->fetch_array(); + + $kinderIds = explode(',', $kinderResult['kinder']); + foreach($kinderIds as $kindId){ + $query = sprintf("SELECT name, vorname FROM wkParticipo_Users WHERE id='%s';", + $mysqlConn->real_escape_string($kindId) + ); + $kinderDaten = $mysqlConn->query($query); + if(!$kinderDaten){ + $message['warning'] .= "Fehler bei Abfrage der Kinder!
"; + } + if($mysqlConn->affected_rows != 1) $message['warning'] .= "Nicht eindeutige userId!
"; + $kindDaten = $kinderDaten->fetch_array(); + + $meldungsBox = + "
Meldung". + "". + "
". + "". + ""; + + if( getUsersMeldeStatus($mysqlConn, $_POST['f']['eventId'], $kindId) ){ + $meldungsBox .= "
Bereits gemeldet
"; + } + else{ + if( date("Y-m-d") > $wkEventData['meldefrist']){ + $meldungsBox .= "
Die Meldefrist ist bereits abgelaufen!
"; + } + else{ + $meldungsBox .= ""; + } + } + $meldungsBox .="
"; + } + } + else{ + $userData = getUserData($mysqlConn, $_SESSION['user']['userId']); + $starterData = getUserData($mysqlConn, $_POST['f']['userId']); + + if( + !in_array( + $_POST['f']['userId'], + explode(',', getUserData($mysqlConn, $_SESSION['user']['userId'])['kinder']) + ) + ){ + $message['error'] .= "Es fehlt die Berechtigung diesen Starter zu melden!
"; + } + else{ + $message = addStarterToEvent($mysqlConn, $_POST['f']['userId'], $_POST['f']['eventId']); + + if( isset($message['success']) ){ + $notificationMail['to'] = $userData['eMail']; + $notificationMail['subject'] = "=?UTF-8?B?".base64_encode("Meldebestätigung")."?="; + $notificationMail['message'] = $starterData['name'] . ", " . $starterData['vorname'] . " zum Wettkampf " . $wkData['Veranstaltung'] . " gemeldet. Diese Mail wurde automatisch vom Wettkampfplaner bei der Meldung versandt."; + $notificationMail['headers'] = "From: noreply.wettkampflaner@cwsvjudo.bplaced.net\r\n". + "Reply-To: cwsvjudo@arcor.de\r\n". + "X-Mailer: PHP/".phpversion()."\r\n". + "Content-Type: text/plain; charset=UTF-8"; + + if(!empty($notificationMail['to'])){ + mail ( $notificationMail['to'] , $notificationMail['subject'] , $notificationMail['message'], $notificationMail['headers'] ); + } + + $notificationMail['to'] = $wkParticipoConf['adminEmail']; + if(!empty($notificationMail['to'])){ + mail ( $notificationMail['to'] , $notificationMail['subject'] , $notificationMail['message'], $notificationMail['headers'] ); + } + } + } + } + } + } + $mysqlConn->close(); + } + } +?> + + + + + Wettkampfplaner - Meldung + + + + +
+ + zum Wettkampf gemeldet!
+ + + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/.htaccess b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/.htaccess new file mode 100644 index 0000000..e2cfb81 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/.htaccess @@ -0,0 +1,6 @@ +AuthType Basic +AuthName "wkParticipoAdministration" +AuthUserFile /users/cwsvjudo/www/.htusers +#AuthGroupFile /users/cwsvjudo/www/.htgroups +Require user marko +#Require group admin diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/addEvent.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/addEvent.php new file mode 100644 index 0000000..1ce8fd8 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/addEvent.php @@ -0,0 +1,164 @@ +connect_error){ + $message['notice'] .= "Datenbankverbindung zur Wettkampflistenabfrage fehlgeschlagen: " . $mysqli->connect_error ."
"; + } + else{ + $wkData = getCommingWk($mysqlConn); + $mysqlConn->close(); + $message['wkData'] .="
"; + + } + + if(!empty($_POST)){ +// print_r($_POST); + if( empty($_POST['f']['wkId']) || empty($_POST['f']['meldefrist']) ){ +// echo $_POST['f']['wkId']." aber ".$_POST['f']['meldefrist']; + $message['notice'] .= "Alle Felder ausfüllen und abschicken!
"; +// print_r($message); + if( $eventWkId != "" ){ + $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); + if($mysqlConn->connect_error){ + $message['notice'] .= "Datenbankverbindung zur Datumsabfrage der wkId '".$eventWkId."' fehlgeschlagen: " . $mysqli->connect_error ."
"; + } + else{ + $queryEventWkData = sprintf( + "SELECT lfdeNr, Datum, Veranstaltung, Altersklassen, Ort, Ausschreibung, Routenplaner + FROM wettkampfkalender + WHERE lfdeNr = '%s';", + $mysqlConn->real_escape_string($eventWkId) + ); + $mysqlResults = $mysqlConn->query($queryEventWkData); + if( !$mysqlResults ){ + $message['error'] .= "Fehler bei Datenbankabfrage '".$queryEventWkData."' (" . $mysqli->connect_error .")
"; + } + else{ + $eventWkResult = $mysqlResults->fetch_assoc(); + $message['notice'] .= ""; +// $message['notice'] .= "eventWkDatum: ".$eventWkResult['Datum']."
"; + $meldefrist = date( + "Y-m-d", + strtotime( + "last friday", + strtotime( + "last week", + strtotime( $eventWkResult['Datum'] ) + ) + ) + ); +// $message['notice'] .= "meldefrist: ".$meldefrist."
"; + } + $mysqlConn->close(); + } + } + else{ + + } + } + else{ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + $query = sprintf( + "INSERT INTO wkParticipo_Events (wkId, meldefrist) + SELECT * FROM (SELECT '%s', '%s') as new_event + WHERE NOT EXISTS ( + SELECT wkId FROM wkParticipo_Events WHERE wkId = '%s' + ) LIMIT 1;", + $mysqli->real_escape_string($_POST['f']['wkId']), + $mysqli->real_escape_string($_POST['f']['meldefrist']), + $mysqli->real_escape_string($_POST['f']['wkId']) + ); +// echo $query;// die(); + $result = $mysqli->query($query); +// echo $result; die(); + if ($mysqli->affected_rows == 1) { + $message['success'] .= + "Neues Event zu wkId = ".htmlspecialchars($_POST['f']['wkId'])." angelegt!". + ""; +// header('Location: http://' . $_SERVER['HTTP_HOST'] . $wkParticipoConf['rootDir'] . '/index.php'); + } + else{ + $message['error'] = 'Event zu wkId = ' . $_POST['f']['wkId'] . ' bereits erstellt!.'; + } + $mysqli->close(); + } + } + } + else{ + $message['notice'] .= "Übermitteln Sie das ausgefüllte Formular um ein neues Event zu erstellen."; + } +?> + + + + + + wkParticipo - addEvent.php + + + + +
+ +
Fehler
+ +
Erfolg
+ +
Hinweis
+ +
+ Eventdaten +
/>
+
+ + /> +
+
+
+ +
+
+ +
wkData
+ + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/addMitfahrer.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/addMitfahrer.php new file mode 100644 index 0000000..50f96bd --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/addMitfahrer.php @@ -0,0 +1,34 @@ +connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + $message = addMitfahrerToFahrt($mysqli, $_POST['f']['starterId'], $_POST['f']['fahrtId']); + $mysqli->close(); + } + } + } +?> + + + + + Wettkampfplanung - Administration - Hinzufügen eines Mitfahrers + + + + Zur Eventliste + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminAddStarter.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminAddStarter.php new file mode 100644 index 0000000..b597927 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminAddStarter.php @@ -0,0 +1,198 @@ +"; + } + if( !isset($_POST['f']['type']) ){ + $message['error'] .= "Fehlender type (".$_POST['f']['type'].") (POST: ".var_export($_POST, true).")
"; + } + else{ + $mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqlConn->connect_error) { + $message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."
$wkEventData['meldefrist']){ + $message['error'] .= "Die Meldefrist ist bereits abgelaufen!
"; + } + else{ + if( !isset($_POST['f']['userId']) ){ + $query = sprintf( + "SELECT kinder FROM wkParticipo_Users WHERE id='%s';", + $mysqlConn->real_escape_string($_SESSION['user']['userId']) + ); + + $kinderResults = $mysqlConn->query($query); + if(!$kinderResults){ + $message['warning'] .= "Fehler bei Abfrage der Kinder!
"; + } + $kinderResult = $kinderResults->fetch_array(); + + $kinderIds = explode(',', $kinderResult['kinder']); + foreach($kinderIds as $kindId){ + $query = sprintf("SELECT name, vorname FROM wkParticipo_Users WHERE id='%s';", + $mysqlConn->real_escape_string($kindId) + ); + $kinderDaten = $mysqlConn->query($query); + if(!$kinderDaten){ + $message['warning'] .= "Fehler bei Abfrage der Kinder!
"; + } + if($mysqlConn->affected_rows != 1) $message['warning'] .= "Nicht eindeutige userId!
"; + $kindDaten = $kinderDaten->fetch_array(); + + $meldungsBox = + "
Meldung". + "". + "
". + "". + "". + ""; + + if( getUsersMeldeStatus($mysqlConn, $_POST['f']['eventId'], $kindId) ){ + $meldungsBox .= "
Bereits gemeldet
"; + } + else{ + if( date("Y-m-d") > $wkEventData['meldefrist']){ + $meldungsBox .= "
Die Meldefrist ist bereits abgelaufen!
"; + } + else{ + $meldungsBox .= ""; + } + } + $meldungsBox .="
"; + } + } + else{ + $userData = getUserData($mysqlConn, $_SESSION['user']['userId']); + $starterData = getUserData($mysqlConn, $_POST['f']['userId']); + + // if( + // !in_array( + // $_POST['f']['userId'], + // explode(',', getUserData($mysqlConn, $_SESSION['user']['userId'])['kinder']) + // ) + // ){ + // $message['error'] .= "Es fehlt die Berechtigung diesen Starter zu melden!
"; + // } + // else{ + $message = addStarterToEvent($mysqlConn, $_POST['f']['userId'], $_POST['f']['eventId'], $_POST['f']['type']); + + if( isset($message['success']) ){ + $notificationMail['to'] = $userData['eMail']; + $notificationMail['subject'] = "=?UTF-8?B?".base64_encode("Meldebestätigung")."?="; + $notificationMail['message'] = $starterData['name'] . ", " . $starterData['vorname'] . " zum Wettkampf " . $wkData['Veranstaltung'] . " gemeldet. Diese Mail wurde automatisch vom Wettkampfplaner bei der Meldung versandt."; + $notificationMail['headers'] = "From: noreply.wettkampflaner@cwsvjudo.bplaced.net\r\n". + "Reply-To: cwsvjudo@arcor.de\r\n". + "X-Mailer: PHP/".phpversion()."\r\n". + "Content-Type: text/plain; charset=UTF-8"; + + if(!empty($notificationMail['to'])){ + mail ( $notificationMail['to'] , $notificationMail['subject'] , $notificationMail['message'], $notificationMail['headers'] ); + } + + $notificationMail['to'] = $wkParticipoConf['adminEmail']; + if(!empty($notificationMail['to'])){ + mail ( $notificationMail['to'] , $notificationMail['subject'] , $notificationMail['message'], $notificationMail['headers'] ); + } + } + // } + } + } + } + $mysqlConn->close(); + } + } + } +?> + + + + + Wettkampfplaner - Meldung + + + + +
+ + zum Wettkampf gemeldet!
+ + + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminFunctions.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminFunctions.php new file mode 100644 index 0000000..c6beba5 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminFunctions.php @@ -0,0 +1,64 @@ +"; + } + else{ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error . "
"; + } + else{ + $message = createStarterForEvent($mysqli, $_POST['f']['eventId'], $_POST['f']['userId'], $_POST['f']['type']); + $mysqli->close(); + } + } + case "updateStarterErgebnis": + if( empty($_POST['f']['starterId']) or empty($_POST['f']['masse']) or empty($_POST['f']['platzierungen']) ){ + $message['error'] .= "Nicht gePOSTete starterId, masse oder platzierungen
"; + } + else{ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error . "
"; + } + else{ + $message = updateStarterErgebnis($mysqli, $_POST['f']['starterId'], $_POST['f']['masse'], $_POST['f']['platzierungen']); + $mysqli->close(); + } + } + break; + default: + $message['error'] .= "unbekannte Funktion ".$_POST['f']['adminFunction']."
"; + } + } + } +?> + + + + + + Wettkampfplanung - Administration - adminFunctions + + + + Zur Eventliste + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminFunctions.php.inc b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminFunctions.php.inc new file mode 100644 index 0000000..ed98f0f --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminFunctions.php.inc @@ -0,0 +1,38 @@ +"; +if(!is_positive_integer($anUserId)) $message['error'] .= "ungültige userID '".$anUserId."'
"; +if(!in_array($anUserId, array(0,1,2))) $message['error'] .= "ungültige typeID '".$aTypeId."'
"; +if(!$aMySqlConn->ping()) $message['error'] .= "ungültige mySqlConn ".$mysqli->error.""; + +if(!empty($retMessage['error'])) return $retMessage; + +$retMessage = createStarterForEvent($aMySqlConn, $anEventId, $anUserId, $aTypeId); + +return $retMessage; +} + + case "updateStarterErgebnis": + if( empty($_POST['f']['starterId']) or empty($_POST['f']['masse']) or empty($_POST['f']['platzierungen']) ){ + $message['error'] .= "Nicht gePOSTete starterId, masse oder platzierungen
"; + } + else{ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error . "
"; + } + else{ + $message = updateStarterErgebnis($mysqli, $_POST['f']['starterId'], $_POST['f']['masse'], $_POST['f']['platzierungen']); + $mysqli->close(); + } + } + break; + default: + $message['error'] .= "unbekannte Funktion ".$_POST['f']['adminFunction']."
"; + +?> diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminUpdateStarterErgebnis.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminUpdateStarterErgebnis.php new file mode 100644 index 0000000..399d990 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/adminUpdateStarterErgebnis.php @@ -0,0 +1,55 @@ +connect_error) { + $message['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + if( !empty($_POST['f']['masse']) and !empty($_POST['f']['platzierungen']) ){ + $message = updateStarterErgebnis($mysqli, $_POST['f']['starterId'], $_POST['f']['masse'], $_POST['f']['platzierungen']); + } + else{ + $message['warning'] .= "Masse und Platzierung eintragen!
"; + print_r($_POST); + $starterInfo = getStarterInfo($mysqli, $_POST['f']['starterId']); + } + $mysqli->close(); + } + } + } + else{ + $message['warning'] .= 'Übermitteln Sie das ausgefüllte Formular um ein neues Event zu erstellen.'; + } +?> + + + + + Wettkampfplaner - Ergebnismeldung + + + + + + +
+
+ /> + Masse: + Platzierungen: + +
+
+
Zurück zur Übersicht
+ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/config.inc.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/config.inc.php new file mode 100644 index 0000000..14144a4 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/config.inc.php @@ -0,0 +1,23 @@ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/index.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/index.php new file mode 100644 index 0000000..7e0553a --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/index.php @@ -0,0 +1,23 @@ + + + + + + + Registersystem - index.php + + + +

Inhalt

+

Neuen Benutzer anlegen.

+

Neuen Event anlegen.

+

User anzeigen.

+

Events anzeigen.

+ + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/listEvents.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/listEvents.php new file mode 100644 index 0000000..ef84106 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/listEvents.php @@ -0,0 +1,58 @@ + + + + + + + Wettkampfplanung - Administration - eventList + + + + +
Zum Adminbereich zurück
+
+connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + echo $message['error']; die(); + } + + $eventList = getAllEvents($mysqli); + foreach($eventList as $event){ + $wkData = getWkData($mysqli, $event['wkId']); +?> +
+ [] -- + +
+ " /> + +
+
+
+ + + + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/listUsers.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/listUsers.php new file mode 100644 index 0000000..ba7fb3f --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/listUsers.php @@ -0,0 +1,62 @@ + + + + + + + Wettkampfplanung - Administration - userList + + + + +
Zum Adminbereich zurück
+
+connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + echo $message['error']; die(); + } + + $userList = getAllUsers($mysqli); + foreach($userList as $user){ +?> +
+ +
+ " /> + +
+ +
+
+ + + + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/newsLetter.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/newsLetter.php new file mode 100644 index 0000000..d9e0aed --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/newsLetter.php @@ -0,0 +1,123 @@ +query( $queryForEmailAdresses ); + $eMailAdresses = $eMailErgebnis->fetchAll(); +// print_r($eMailAdresses);die(); + + $queryForEinschreibefristen = + "SELECT cwsvjudo.wettkampfkalender.lfdeNr, ". + "cwsvjudo.wettkampfkalender.Datum, ". + "cwsvjudo.wettkampfkalender.Veranstaltung, ". + "cwsvjudo.wettkampfkalender.Altersklassen, ". + "cwsvjudo.wkParticipo_Events.id, ". + "cwsvjudo.wkParticipo_Events.meldefrist, ". + "cwsvjudo.wkParticipo_Events.wkId ". + "FROM cwsvjudo.wettkampfkalender JOIN cwsvjudo.wkParticipo_Events ". + "ON cwsvjudo.wettkampfkalender.lfdeNr = cwsvjudo.wkParticipo_Events.wkId ". + "WHERE cwsvjudo.wkParticipo_Events.meldefrist > CURDATE() AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) ". +// "WHERE cwsvjudo.wkParticipo_Events.meldefrist > DATE_ADD(CURDATE(), INTERVAL 1 WEEK) AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 4 WEEK) ". +// "WHERE wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) AND wkParticipo_Events.meldefrist >= CURDATE() ". + "ORDER BY wkParticipo_Events.meldefrist;"; + $ergebnisEinschreibefristen = $mysqlConn->query( $queryForEinschreibefristen ); + + $dringendeEinschreibeFristen = $ergebnisEinschreibefristen->fetchAll(); + + $queryForEinschreibefristen = + "SELECT cwsvjudo.wettkampfkalender.lfdeNr, ". + "cwsvjudo.wettkampfkalender.Datum, ". + "cwsvjudo.wettkampfkalender.Veranstaltung, ". + "cwsvjudo.wettkampfkalender.Altersklassen, ". + "cwsvjudo.wkParticipo_Events.id, ". + "cwsvjudo.wkParticipo_Events.meldefrist, ". + "cwsvjudo.wkParticipo_Events.wkId ". + "FROM cwsvjudo.wettkampfkalender JOIN cwsvjudo.wkParticipo_Events ". + "ON cwsvjudo.wettkampfkalender.lfdeNr = cwsvjudo.wkParticipo_Events.wkId ". +// "WHERE cwsvjudo.wkParticipo_Events.meldefrist > CURDATE() AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) ". + "WHERE cwsvjudo.wkParticipo_Events.meldefrist > DATE_ADD(CURDATE(), INTERVAL 1 WEEK) AND cwsvjudo.wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 4 WEEK) ". + "ORDER BY wkParticipo_Events.meldefrist;"; + $ergebnisEinschreibefristen = $mysqlConn->query( $queryForEinschreibefristen ); + + $weitereEinschreibefristen = $ergebnisEinschreibefristen->fetchAll(); + + $mysqlConn = NULL; + } + catch(PDOException $db_error){ + print "Error!: " . $db_error->getMessage() . "
"; + die(); + } +?> + + + + + + wkParticipo -Adminbereich - Newslettertest + + + "judo.cwsv@t-online.de") ); +// print_r( $eMailAdr ); die("Testzwecke"); + + $newsletter['subject'] = "=?UTF-8?B?".base64_encode("Newsletter anstehende Meldefristen und Wettkämpfe")."?="; + $newsletter['headers'] = "From: noreply.wettkampflaner@cwsvjudo.bplaced.net\r\nReply-To: cwsvjudo@arcor.de\r\nReturn-Path: cwsvjudo@arcor.de\r\nX-Mailer: PHP/".phpversion()."\r\nContent-Type: text/plain; charset=UTF-8"; + + $newsletter['message'] = "Meldefristen diese Woche:\r\n\r\n"; + if( empty($dringendeEinschreibeFristen) ) + $newsletter['message'] .= "Keine!\r\n"; + + foreach( $dringendeEinschreibeFristen as $event ){ + $newsletter['message'] .= "\tDatum: ".mb_convert_encoding($event['Datum'], 'UTF-8', 'ISO-8859-1')."\r\n"; + $newsletter['message'] .= "\tWettkampf: ".html_entity_decode(mb_convert_encoding($event['Veranstaltung'], 'UTF-8', 'ISO-8859-1'))."\r\n"; + $newsletter['message'] .= "\tAltersklassen: ".mb_convert_encoding($event['Altersklassen'], 'UTF-8', 'ISO-8859-1')."\r\n"; + $newsletter['message'] .= "\tMeldefrist: ".mb_convert_encoding($event['meldefrist'], 'UTF-8', 'ISO-8859-1')."\r\n"; + $newsletter['message'] .= "\tLink: http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/showWkEvent.php?eventId=".$event['id']."\r\n"; + $newsletter['message'] .= "\t\r\n"; + } + + $newsletter['message'] .= "Weitere Wettkämpfe der kommenden Wochen:\r\n\r\n"; + if( empty($weitereEinschreibefristen) ) + $newsletter['message'] .= "Erstmal Keine\r\n"; + + foreach( $weitereEinschreibefristen as $event ){ + $newsletter['message'] .= "\tDatum: ".mb_convert_encoding($event['Datum'], 'UTF-8', 'ISO-8859-1')."\r\n"; + $newsletter['message'] .= "\tWettkampf: ".html_entity_decode(mb_convert_encoding($event['Veranstaltung'], 'UTF-8', 'ISO-8859-1'))."\r\n"; + $newsletter['message'] .= "\tAltersklassen: ".mb_convert_encoding($event['Altersklassen'], 'UTF-8', 'ISO-8859-1')."\r\n"; + $newsletter['message'] .= "\tMeldefrist: ".mb_convert_encoding($event['meldefrist'], 'UTF-8', 'ISO-8859-1')."\r\n"; + $newsletter['message'] .= "\tLink: http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/showWkEvent.php?eventId=".$event['id']."\r\n"; + $newsletter['message'] .= "\t\r\n"; + } + + $newsletter['message'] .= "\r\n\r\nDiese Mail wird automatisch durch den Wettkampfplaner des Chemnitzer WSV (http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/) erstellt. Und dieser ist immer noch in einer Testphase. Sollte er also Fehler enthalten oder irgendwelche Probleme verursachen, meldet dies bitte.\r\n"; + + if( isset($_GET['sendNewsletter']) and (!empty($weitereEinschreibefristen) or !empty($dringendeEinschreibeFristen) )){ + foreach( $eMailAdresses as $adr ){ + if( !empty($adr) ){ + mail( $adr['eMail'] , $newsletter['subject'] , $newsletter['message'], $newsletter['headers'] ); +// echo $adr['eMail'].$newsletter['subject'].$newsletter['message'].$newsletter['headers']; + echo "Newsletter gesendet an ".$adr['eMail']."\n"; + } + } + } + else{ + echo "Nicht gesendet!"; + } +?> +
+ +
+ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/register.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/register.php new file mode 100644 index 0000000..b63dbb1 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/register.php @@ -0,0 +1,91 @@ +connect_error) { + $message['error'] = "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error; + } + + // Hinzufügen eines Users ohne Passwort + $query = sprintf( + "INSERT INTO wkParticipo_Users (loginName) + SELECT * FROM (SELECT '%s') as new_user + WHERE NOT EXISTS ( + SELECT loginName FROM wkParticipo_Users WHERE loginName = '%s' + ) LIMIT 1;", + $mysqli->real_escape_string($_POST['f']['username']), + $mysqli->real_escape_string($_POST['f']['username']) + ); + + if( !empty($_POST['f']['password']) ){ + unset($_POST['f']['password_again']); + $_POST['f']['password'] = + password_hash( $_POST['f']['password'], PASSWORD_DEFAULT); + $query = sprintf( + "INSERT INTO wkParticipo_Users (loginName, pwHash) + SELECT * FROM (SELECT '%s', '%s') as new_user + WHERE NOT EXISTS ( + SELECT loginName FROM wkParticipo_Users WHERE loginName = '%s' + ) LIMIT 1;", + $mysqli->real_escape_string($_POST['f']['username']), + $mysqli->real_escape_string($_POST['f']['password']), + $mysqli->real_escape_string($_POST['f']['username']) + ); + } + + $result = $mysqli->query($query); + if ($mysqli->affected_rows == 1) { + $message['success'] = "Neuer Benutzer (" . htmlspecialchars($_POST['f']['username']) . ") wurde angelegt, weiter zur Anmeldung."; + header("Location: http://" . $_SERVER['HTTP_HOST'] . $wkParticipoConf['rootDir'] . "/login.php"); + } + else{ + $message['error'] = "Der Benutzername ist bereits vergeben."; + } + $mysqli->close(); + } + } + } + else{ + $message['notice'] = "Übermitteln Sie das ausgefüllte Formular um ein neues Benutzerkonto zu erstellen."; + } +?> + + + + loginsystem - register.php + + +
+ +
Fehler
+ +
Erfolg
+ +
Hinweis
+ +
+ Benutzerdaten +
/>
+
+
+
+
+
+
+
+ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/resetPassword.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/resetPassword.php new file mode 100644 index 0000000..08a43a6 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/resetPassword.php @@ -0,0 +1,106 @@ +connect_error){ + $message['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error; + } + else{ + + $userInfo = getUserData( $mysqlConn, $_SESSION['user']['userId'] ); + + if( !empty($_POST) ){ + if( + empty($_POST['f']['userId']) || + empty($_POST['f']['newPassword']) || + empty($_POST['f']['newPasswordAgain']) + ){ + $message['error'] .= "Es wurden nicht alle Felder ausgefüllt.
"; + } + else{ + if($_POST['f']['newPassword'] != $_POST['f']['newPasswordAgain']){ + $message['error'] .= "Das neue Passwort stimmt nicht mit seiner Kontrolleingabe überein! Vertippt?
"; + } + else{ + // Das eigentliche Passwort wird nicht gespeichert sondern der Hash. Da wir jenes auch nicht mehr benötigen, nutzen wir die Variable gleich weiter. + $_POST['f']['newPassword'] = + password_hash( $_POST['f']['newPassword'], PASSWORD_DEFAULT); + + $pwChangeQuery = sprintf( + "UPDATE wkParticipo_Users + SET pwHash='%s' + WHERE id='%s';", + $mysqlConn->real_escape_string($_POST['f']['newPassword']), + $mysqlConn->real_escape_string($_POST['f']['userId']) + ); + if( $mysqlConn->query($pwChangeQuery) === TRUE ){ + $message['success'] .= "Passwort wurde geändert!

"; + } + else{ + $message['error'] .= "Fehler beim Neusetzen des Passwortes: ".$mysqlConn->error."
"; + } + }// Ende des Schleifenzweiges: Neusetzen des Passwortes + }// Ende des Schleifenzweiges: fehlende Eingaben + }// Ende des Schleifenzweiges: leeres POST + $mysqlConn->close(); + }// Ende des Schleifenzweiges: Datenbankverbindung erfolgreich +?> + + + + + Passwortänderung + + + + + + + + + +

Passwortänderung

+ + Im folgenden Formular kann das Passwort geändert werden. Man sollte darauf achten, dass man beim Umgang mit Passwörtern die nötige Vorsicht walten lässt. +
+
+ Neues Passwort vergeben +
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/reseteMitfahrer.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/reseteMitfahrer.php new file mode 100644 index 0000000..e97219c --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/reseteMitfahrer.php @@ -0,0 +1,35 @@ +connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + $message = reseteMitfahrer($mysqli, $_POST['f']['eventId']); + $mysqli->close(); + } + } + } +?> + + + + + Wettkampfplanung - Administration - Reseten der Mitfahrer + + + + Zur Eventliste + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php new file mode 100644 index 0000000..74de603 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showEvent.php @@ -0,0 +1,228 @@ +zur Eventübersicht"; + } + else{ + if( (string)(int)$_POST['f']['eventId'] == $_POST['f']['eventId'] ){ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + // Abfrage der Eventdaten + $eventData = getEventData($mysqli, $_POST['f']['eventId']); + if( empty($eventData) ) $message['error'] = 'Fehler: keine Eventdaten zurückgeliefert!'; + else{ + // Abfrage der Starterdaten des Events + $starterData = getStarterForEvent($mysqli, $eventData['id']); + // Abfrage der Fahrtdaten des Events + $fahrten = getFahrtenForEvent($mysqli, $eventData['id']); + } + } + } + else $message['error'] = "Fehler: eventId ist kein Int (".$_POST['f']['eventId'].")"; + } + } +?> + + + + + + Wettkampfplanung - Administration - Eventdetails + + + + +
Zur Eventliste zurück
+
Zum Adminbereich zurück
+".$message['error']."

\n"; + } + } + else{ +?> +

Eventdaten

+
+ +
+Fehler: wkId \"".$eventData['wkId']."\" scheint kein Int zu sein!"; +?> +

Wettkampfdaten:

+Fehler: Wettkampf mit Id ".$eventData['wkId']." nicht gefunden!"; + else{ +?> + +
+ " /> + +
+
+ " /> + +
+Fehler: eventId \"".$eventData['id']."\" scheint kein Int zu sein!"; +?> +

Starter:

+ + + +

Fahrten:

+ + +

Starter einschreiben:

+Keine User gefunden"; + else{ + foreach( $users as $user ){ +?> +
+ + " /> + + + +
+
+close(); + } +?> + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showFahrt.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showFahrt.php new file mode 100644 index 0000000..0f888a8 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showFahrt.php @@ -0,0 +1,204 @@ +connect_error){ + $message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error . "
"; + } + + $fahrt = getFahrtData($mysqli, $_POST['f']['fahrtId']); + if( empty($fahrt) ){ + $message['error'] .= "fahrtId \"".$_POST['f']['fahrtId']."\" nicht gefunden
"; + } + else{ + $event = getEventData($mysqli, $fahrt['eventId']); + if( empty($event) ){ + $message['error'] .= "eventId \"".$fahrt['eventId']."\" nicht gefunden
"; + } + else{ + $wk = getWkData($mysqli, $event['wkId']); + if( empty($wk) ){ + $message['error'] .= "wkId \"".$event['wkId']."\" nicht gefunden
"; + } + } + } + } + } + + + + + if( (string)(int)$_POST['f']['fahrtId'] == $_POST['f']['eventId'] ){ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + + if(empty($_POST)){ + $message['error'] = "Fehler: leeres POST!"; + } + else{ + if( empty($_POST['f']['eventId']) ){ + $message['error'] = "Fehler: keine eventId gefunden! zur Eventübersicht"; + } + else{ + if( (string)(int)$_POST['f']['eventId'] == $_POST['f']['eventId'] ){ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + $eventData = getEventData($mysqli, $_POST['f']['eventId']); + if( empty($eventData) ) $message['error'] = 'Fehler: keine Eventdaten zurückgeliefert!'; + } + } + else $message['error'] = "Fehler: eventId ist kein Int (".$_POST['f']['eventId'].")"; + } + } +?> + + + + + Wettkampfplanung - Administration - Eventdetails + + + +".$message['error']."

\n"; + } + } + else{ +?> + +close(); + } +?> + Zur Eventliste + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showUser.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showUser.php new file mode 100644 index 0000000..764d41e --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/showUser.php @@ -0,0 +1,97 @@ +zur Userübersicht"; + } + else{ + if( (string)(int)$_POST['f']['userId'] == $_POST['f']['userId'] ){ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + $userData = getUserData($mysqli, $_POST['f']['userId']); + if( empty($eventData) ) $message['error'] = 'Fehler: keine Userdaten zurückgeliefert!'; + } + } + else $message['error'] = "Fehler: userId ist kein Int (".$_POST['f']['userId'].")"; + } + } +?> + + + + + + Wettkampfplanung - Administration - Userdetails + + + + +
Zur Userliste zurück
+
Zum Adminbereich zurück
+".$message['error']."

\n"; + } + } + else{ +?> +

Userdaten

+
+ +
+ +

kinderDaten

+ +
+ +
+ + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/admin/verteileMitfahrer.php b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/verteileMitfahrer.php new file mode 100644 index 0000000..c65f1ff --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/admin/verteileMitfahrer.php @@ -0,0 +1,35 @@ +connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + $message = verteileMitfahrer($mysqli, $_POST['f']['eventId']); + $mysqli->close(); + } + } + } +?> + + + + + Wettkampfplanung - Administration - Verteilen der Mitfahrer + + + + Zur Eventliste + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/auth.php b/homepage/redesign2018/markdownExperiment/wkParticipo/auth.php new file mode 100644 index 0000000..d6b7056 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/auth.php @@ -0,0 +1,17 @@ +". + "Datum: ".date("Y-m-d")."
". + "Sie sind als ".htmlspecialchars($_SESSION['user']['username'])." angemeldet.
". + "Sitzung beenden". + ""; + //
".var_export($_SESSION, true)."
"; + } +?> diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/authLogin.php b/homepage/redesign2018/markdownExperiment/wkParticipo/authLogin.php new file mode 100644 index 0000000..c1bdb81 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/authLogin.php @@ -0,0 +1,35 @@ +". + "
". + "Login". + "
". + "
". + "". + "". + "
". + "
". + "". + " +
". + "
". + "
". + " +
". + "
". + "
". + ""; + }else{ + $login_status = + "
". + "Datum: ".date("Y-m-d")."
". + "Sie sind als ".htmlspecialchars($_SESSION['user']['username'])." angemeldet.
". + "Sitzung beenden". + "
"; + } +?> diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/calendar.php b/homepage/redesign2018/markdownExperiment/wkParticipo/calendar.php new file mode 100644 index 0000000..3162abe --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/calendar.php @@ -0,0 +1,167 @@ +connect_error) { + header('HTTP/1.1 500 Internal Server Error'); + //$sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error; + exit(); + } + + $wkEvents = getCommingWkEvents( $mysqlConn ); + +// iCal Datei zusammensetzen. + $ical = "BEGIN:VCALENDAR" . $eol . + "VERSION:2.0" . $eol . + "PRODID:-//cwsvjudo.bplaced.net//iCal Generator//DE" . $eol; + +// echo("wkEvents: ".$wkEvents); print_r( $wkEvents ); die(); + + foreach( $wkEvents as $wkEvent ){ + $ical .= "BEGIN:VEVENT" . $eol . + + "UID:eventID." . $wkEvent['id'] . $eol . + "DTSTAMP:" . gmdate("Ymd") . "T". gmdate("His") . "Z" . $eol . + "DTSTART;VALUE=DATE:" . str_replace ( "-", "", $wkEvent['Datum']) . $eol . + "DTEND;VALUE=DATE:" . str_replace ( "-", "", $wkEvent['Datum']) . $eol . + "SUMMARY:" . $wkEvent['Veranstaltung'] . " " . $wkEvent['Altersklassen'] . $eol . + "LOCATION:" . $wkEvent['Ort'] . $eol . + + "BEGIN:VALARM". $eol . + "TRIGGER:" . str_replace ( "-", "", $wkEvent['meldefrist'] ) . $eol . + "ACTION:DISPLAY" . $eol . + "DESCRIPTION: Einschreibefrist " . $wkEvent['Veranstaltung'] . $eol . + "END:VALARM" . $eol . + + "END:VEVENT" . $eol ; + } + + $ical .= "END:VCALENDAR" . $eol; + +header("Content-type: text/calendar; charset=utf-8"); +header("Content-Disposition: inline; filename=cwsvJudoWk.ics"); + +// iCal Datei senden. +echo $ical; +exit(); +?> + + +///--- +/// Altfassung +///--- + + session_start(); + session_regenerate_id(); +//// +// Convert a competition from the database to a iCal file to import into +// various calendar apps. +//// + +// Read the wkID from the url +$wkID = $_GET['wkID']; +if($wkID=='') + die("Keine wkID angegeben!"); +if(!ctype_digit($wkID)) + die("Fehler: wkID muss vom Typ int sein!"); + + +//Mit der Datenbank verbinden. +$verbindung=mysql_connect($db_server,$db_user,$db_password); +if(!$verbindung) + die("Der Server kann nicht erreicht werden."); +if(!mysql_select_db($db_name,$verbindung)) + die("Die Datenbank kann nicht angesprochen werden."); + +// Abfrage für den Wettkampf in der Datenbank ausführen. +$query="SELECT Datum, Veranstaltung, Altersklassen, Ort FROM wettkampfkalender WHERE lfdeNr='" . $wkID . "'"; +$ergebnis=mysql_query($query,$verbindung); +if(!$ergebnis) + die(mysql_error()); +//die("#Ergebnisse: ".mysql_num_rows($ergebnis)); +if ( mysql_num_rows($ergebnis) == 0 ) + die("wkID ".$wkID." nicht in Datenbank gefunden!"); +$wk=mysql_fetch_array($ergebnis); + +$meldefrist = date( + "Y-m-d", + strtotime( + "last friday", + strtotime( + "last week", +// strtotime( $eventWkResult['Datum'] ) + strtotime( $wk[0] ) + ) + ) +); + + +//die("Test: ".$wkID." ".$wk[0]." ".$wk[1]." ".$wk[2]." ".$wk[3]); + +// iCal Datei zusammensetzen. +$eol="\r\n"; +$ical = "BEGIN:VCALENDAR" . $eol . +"VERSION:2.0" . $eol . +"PRODID:-//cwsvjudo.bplaced.net//iCal Generator//DE" . $eol . +"BEGIN:VEVENT" . $eol . + +"UID:wkID." . $wkID . $eol . +"DTSTAMP:" . gmdate("Ymd") . "T". gmdate("His") . "Z" . $eol . +"DTSTART;VALUE=DATE:" . str_replace ( "-", "", $wk[0]) . $eol . +"DTEND;VALUE=DATE:" . str_replace ( "-", "", $wk[0]) . $eol . +"SUMMARY:" . mb_convert_encoding($wk[1], 'UTF-8', 'ISO-8859-1') . " " . mb_convert_encoding($wk[2], 'UTF-8', 'ISO-8859-1') . $eol . +"LOCATION:" . mb_convert_encoding($wk[3], 'UTF-8', 'ISO-8859-1') . $eol . + +"END:VEVENT" . $eol ; + +//echo( $ical ); die(); + +if( !empty($_SESSION['login']) ){ +$ical .= +"BEGIN:VEVENT" . $eol . + +"UID:einschreibefrist." . $wkID . $eol . +"DTSTAMP:" . gmdate("Ymd") . "T". gmdate("His") . "Z" . $eol . +"DTSTART;VALUE=DATE:" . str_replace ( "-", "", $meldefrist) . $eol . +"DTEND;VALUE=DATE:" . str_replace ( "-", "", $meldefrist) . $eol . +"SUMMARY:" . "Einschreibefrist " . mb_convert_encoding($wk[1], 'UTF-8', 'ISO-8859-1') . " " . mb_convert_encoding($wk[2], 'UTF-8', 'ISO-8859-1') . $eol . +"LOCATION:" . mb_convert_encoding($wk[3], 'UTF-8', 'ISO-8859-1') . $eol . + +"END:VEVENT" . $eol ; +//echo( $ical ); die(); + +} + +$ical .= "END:VCALENDAR" . $eol; + +//echo( $ical ); die(); + +//set correct content-type-header +header("Content-type: text/calendar; charset=utf-8"); +header("Content-Disposition: inline; filename=".mb_ereg_replace("[^A-Za-z0-9_-]", "", $wk[0]."_".$wk[1]."_".$wk[2]).".ics"); + +// iCal Datei senden. +echo $ical; + +// Die heruntergeladenen iCal mit zählen +$chCounter_page_title = "iCal.WK. ".mb_convert_encoding($wk[0], 'UTF-8', 'ISO-8859-1')." ".mb_convert_encoding($wk[1], 'UTF-8', 'ISO-8859-1'); +$chCounter_visible=0; +$chCounter_mode="noscript"; +$chCounter_status = "active"; +//include($_SERVER['DOCUMENT_ROOT']."/expCounter/counter.php"); + +exit; +?> diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/changePassword.php b/homepage/redesign2018/markdownExperiment/wkParticipo/changePassword.php new file mode 100644 index 0000000..d4fa194 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/changePassword.php @@ -0,0 +1,113 @@ +connect_error){ + $message['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error; + } + else{ + + $userInfo = getUserData( $mysqlConn, $_SESSION['user']['userId'] ); + + if( !empty($_POST) ){ + if( + empty($_POST['f']['oldPassword']) || + empty($_POST['f']['newPassword']) || + empty($_POST['f']['newPasswordAgain']) + ){ + $message['error'] .= "Es wurden nicht alle Felder ausgefüllt.
"; + } + else{ + if($_POST['f']['newPassword'] != $_POST['f']['newPasswordAgain']){ + $message['error'] .= "Das neue Passwort stimmt nicht mit seiner Kontrolleingabe überein! Vertippt?
"; + } + else{ + if( !password_verify( $_POST['f']['oldPassword'], $userInfo['pwHash']) ){ + $message['error'] .= "Das eingegebene, alte Passwort stimmt nicht!"; + } + else{ + // Das eigentliche Passwort wird nicht gespeichert sondern der Hash. Da wir jenes auch nicht mehr benötigen, nutzen wir die Variable gleich weiter. + $_POST['f']['newPassword'] = + password_hash( $_POST['f']['newPassword'], PASSWORD_DEFAULT); + + $pwChangeQuery = sprintf( + "UPDATE wkParticipo_Users + SET pwHash='%s' + WHERE id='%s';", + $mysqlConn->real_escape_string($_POST['f']['newPassword']), + $mysqlConn->real_escape_string($_SESSION['user']['userId']) + ); + + if( $mysqlConn->query($pwChangeQuery) === TRUE ){ + $message['success'] .= "Passwort wurde geändert!

"; + } + else{ + $message['error'] .= "Fehler beim Neusetzen des Passwortes: ".$mysqlConn->error."
"; + } + }// Ende des Schleifenzweiges: Neusetzen des Passwortes + }// Ende des Schleifenzweiges: Kontrolle der neuen Passwörter + }// Ende des Schleifenzweiges: fehlende Eingaben + }// Ende des Schleifenzweiges: leeres POST + + $mysqlConn->close(); + }// Ende des Schleifenzweiges: Datenbankverbindung erfolgreich +?> + + + + + Passwortänderung + + + + + + + + + +

Passwortänderung

+ + Im folgenden Formular kann das Passwort geändert werden. Man sollte darauf achten, dass man beim Umgang mit Passwörtern die nötige Vorsicht walten lässt. +
+
+ Neues Passwort vergeben +
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/editFahrt.php b/homepage/redesign2018/markdownExperiment/wkParticipo/editFahrt.php new file mode 100644 index 0000000..e69de29 diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/eventKalender.php b/homepage/redesign2018/markdownExperiment/wkParticipo/eventKalender.php new file mode 100644 index 0000000..5b3829c --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/eventKalender.php @@ -0,0 +1,79 @@ +connect_error) { + $sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error; + } + + + +?> + + + + + + + + Wettkampfplanung der Judoka des CWSV + + + + + + +

Wettkampfplanung - Kalender

+ + + + +

Anstehende Wettkämpfe

+ +

Momentan befinden sich anscheinend keine Wettkämpfe in Planung!

+ +
+ + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/galImgPicker.php b/homepage/redesign2018/markdownExperiment/wkParticipo/galImgPicker.php new file mode 100644 index 0000000..a0b7649 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/galImgPicker.php @@ -0,0 +1,194 @@ + + + + + + + + Bilderauswahl für die Galerien + + + + + + + + + + + + + +

Bilderauswahl

+connect_error){ + $message['error'] += "Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "
"; + } + else{ +// mögliche Werte für das Jahr herausfinden + $galJahresListe = array(); + + $queryJahresListe = " + SELECT DISTINCT DATE_FORMAT( datum, '%Y') + AS jahr + FROM cwsvjudo.wkGalerien + WHERE 1 + ORDER BY DATE_FORMAT( datum, '%Y' ) DESC; + "; + + $mysqlResults = $mysqlConn->query($queryJahresListe); + if( !$mysqlResults ){ + $message['error'] += "Fehler bei Datenbankabfrage '".$queryJahresListe."'
"; + } + else{ + while( $mysqlResult = $mysqlResults->fetch_assoc() ){ + array_push( $galJahresListe, $mysqlResult['jahr']); + } + } +// standardmäßig frage die letzten 12 Galerien ab + $queryGals = " + SELECT * + FROM cwsvjudo.wkGalerien + WHERE typ='Bilder' + ORDER BY datum DESC LIMIT 12 + "; + // Falls ein Konkretes Jahr angegebe wurde, fragen wir dies ab + if($galJahr != ""){ + $minDate = $galJahr."-01-01"; + $maxDate = $galJahr."-12-31"; + $queryGals = sprintf(" + SELECT id,datum,name,url,typ,teaserBildUrl + FROM cwsvjudo.wkGalerien + WHERE datum >= '%s' AND datum <= '%s' ORDER BY datum ASC;", + $mysqlConn->real_escape_string($minDate), + $mysqlConn->real_escape_string($maxDate) + ); + } + + $galListe = array(); + $mysqlResults = $mysqlConn->query($queryGals); + if( !$mysqlResults ){ + $message['error'] += "Fehler bei Datenbankabfrage '".$queryGals."'
"; + } + else{ + while( $mysqlResult = $mysqlResults->fetch_assoc() ){ + array_push( $galListe, $mysqlResult); + } + } + $mysqlConn->close(); + } +?> + + + + Jahresauswahl: +
+ + +
+ +

+ +

+ + + + + + + + ';"> + + + + + +
DatumLink zur Bildauswahl
+ + + "> + +
+ Teaserbild <?php echo mb_convert_encoding($gal['name'], 'UTF-8', 'ISO-8859-1');?> +
+ +
+ () +
+
+
+ + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/horstWolfJudosport.php b/homepage/redesign2018/markdownExperiment/wkParticipo/horstWolfJudosport.php new file mode 100644 index 0000000..353fa93 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/horstWolfJudosport.php @@ -0,0 +1,70 @@ +connect_error) { + $sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error; + } + + $fileList = glob($wkParticipoConf['basePath']."/horstWolfJudosport/*.md"); + rsort($fileList); +?> + + + + + + + Wurflexikon + + + + + + + + + + + + +" . Parsedown::instance()->text( file_get_contents($file) ) . "
"); + } +?> + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/index.php b/homepage/redesign2018/markdownExperiment/wkParticipo/index.php new file mode 100644 index 0000000..aab6cf9 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/index.php @@ -0,0 +1,260 @@ +connect_error) { + $sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error; + } +?> + + + + + + + Wettkampfplanung der Judoka des CWSV + + + + + + + + + + + +

Wettkampfplanung - Übersicht

+ + + + +

Springe zu den ...

+ + +
+connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + echo $message['error']; die(); + } +?> +

Eingeschrieben zu kommenden Wettkämpfen:

+ +

+ + ist derzeit bei keinem Wettkampf eingetragen! + +

+
+
+ +
+"; + } + } +?> +
+ +

Angebotene Mitfahrgelegenheiten

+ + Keine Mitfahrangebote gefunden + +

" );?>

+
+ +
+ + + +
+
+ +
+ +

Anstehende Wettkämpfe

+ +

Momentan befinden sich anscheinend keine Wettkämpfe in Planung!

+ +

+ + +
+ +

Erklärungen

+ +

Fristen

+

+ Es gibt zwei verschiedene Fristen. Zum einen die Frist vom Veranstalter, bis wann ihm alle Starter gemeldet sein müssen und zum anderen eine Frist bis wann man einen Starter für einen geplanten Wettkampf bei uns im Planer einschreiben kann. Logischerweise muss vor der Meldung bekannt sein, wer gemeldet werden kann. Deshalb ist die Einschreibefrist des Wettkampfplaners vor der Meldefrist des Veranstalters. Üblicherweise wird mit Meldeschluss die Meldung an den Veranstalter geschickt. Aber nicht immer, z. B. wenn die Teilnehmerzahl beschränkt ist. Sollte mal die Einschreibefrist verstrichen sein und man möchte trotzdem noch jemanden einschreiben, kann dies in den meisten Fällen noch erfolgen indem man mit dem Übungsleiter Rücksprache hält bevor dieser die Meldung an den Veranstalter abschickt. +

+ + + + + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/infoZettel.php b/homepage/redesign2018/markdownExperiment/wkParticipo/infoZettel.php new file mode 100644 index 0000000..489b282 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/infoZettel.php @@ -0,0 +1,69 @@ +connect_error) { + $sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error; + } + + $fileList = glob($wkParticipoConf['basePath']."/infoZettel/*.md"); + rsort($fileList); +?> + + + + + + + Infozettel der Judoka des CWSV + + + + + + + + + + +

Infozettel

+ + + +" . Parsedown::instance()->text( file_get_contents($file) ) . "
"); + } +?> + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.php.inc b/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.php.inc new file mode 100644 index 0000000..c79bb91 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/lib/wkParticipoLib.php.inc @@ -0,0 +1,1256 @@ + "Kämpfer", '2' => "Zuschauer", '3' => "keine Teilnahme" ); + + +function getEventsStarterData($anMysqlConn, $anEventId){ +$ret = array(); +if( (string)(int)$anEventId != $anEventId ) return $ret; + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wkParticipo_Starter.id, ". + "wkParticipo_Starter.eventId, ". + "wkParticipo_Starter.userId, ". + "wkParticipo_Starter.fahrtId, ". + "wkParticipo_Starter.masse, ". + "wkParticipo_Starter.platz, ". + "wkParticipo_Users.id, ". + "wkParticipo_Users.vorname, ". + "wkParticipo_Users.name, ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.bemerkungen, ". + "wettkampfkalender.lfdeNr, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wettkampfkalender.Ort, ". + "wettkampfkalender.Routenplaner ". + "FROM wkParticipo_Starter ". + "JOIN wkParticipo_Users ON wkParticipo_Users.id = wkParticipo_Starter.userId ". + "JOIN wkParticipo_Events ON wkParticipo_Events.id = wkParticipo_Starter.eventId ". + "JOIN wettkampfkalender ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "WHERE wkParticipo_Events.id = '%s';", + $anMysqlConn->real_escape_string($anEventId) ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getStarterForEvent($anMysqlConn, $anEventId){ + if( (string)(int)$anEventId == $anEventId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Starter WHERE eventId='%s';", + $anMysqlConn->real_escape_string($anEventId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); + } +return $ret; +} + +function getKaempferForEvent($anMysqlConn, $anEventId){ + if( (string)(int)$anEventId == $anEventId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Starter WHERE eventId='%s' AND type='%s';", + $anMysqlConn->real_escape_string($anEventId), + $anMysqlConn->real_escape_string("1") + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); + } +return $ret; +} + +function getZuschauerForEvent($anMysqlConn, $anEventId){ + if( (string)(int)$anEventId == $anEventId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Starter WHERE eventId='%s' AND type='%s';", + $anMysqlConn->real_escape_string($anEventId), + $anMysqlConn->real_escape_string("2") + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); + } +return $ret; +} + +function getFahrtenForEvent($anMysqlConn, $anEventId){ +$ret = array(); +if( (string)(int)$anEventId != $anEventId ) return $ret; + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wkParticipo_Fahrten.id, ". + "wkParticipo_Fahrten.eventId, ". + "wkParticipo_Fahrten.fahrerId, ". + "wkParticipo_Fahrten.plaetze, ". + "wkParticipo_Fahrten.mitfahrer, ". + "wkParticipo_Users.vorname, ". + "wkParticipo_Users.name ". + "FROM wkParticipo_Fahrten ". + "JOIN wkParticipo_Users ON wkParticipo_Users.id = wkParticipo_Fahrten.fahrerId ". + "WHERE wkParticipo_Fahrten.eventId = '%s';", + $anMysqlConn->real_escape_string($anEventId) ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; + + + + + if( (string)(int)$anEventId == $anEventId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Fahrten WHERE eventId='%s';", + $anMysqlConn->real_escape_string($anEventId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); + } +return $ret; +} + +function getMitfahrer($anMysqlConn, $anFahrtId){ +$ret = array(); + $fahrt = getFahrtData($anMysqlConn, $anFahrtId); + $mitfahrerIds = array(); + if( !empty($fahrt['mitfahrer']) ) + $mitfahrerIds = explode(',', $fahrt['mitfahrer']); + foreach($mitfahrerIds as $mitfahrerId){ + $starter = getStarterData($anMysqlConn, $mitfahrerId); + $user = getUserData($anMysqlConn, $starter['userId']); + array_push($ret, $user); + } +return $ret; +} + +function getUsers($anMysqlConn){ +$ret = array(); + $query = sprintf( + "SELECT * FROM wkParticipo_Users;" + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getUsersStarts($anMysqlConn, $anUserId){ + if( (string)(int)$anUserId == $anUserId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Starter WHERE userId='%s';", + $anMysqlConn->real_escape_string($anUserId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); + } +return $ret; +} + +function getUsersFahrten($anMysqlConn, $anUserId){ + if( (string)(int)$anUserId == $anUserId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Fahrten WHERE fahrerId='%s';", + $anMysqlConn->real_escape_string($anUserId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); + } +return $ret; +} + +function getUsersWk($anMysqlConn, $anUserId){ +$ret = array(); + if( (string)(int)$anUserId == $anUserId ){ + $starts = getUsersStarts($anMysqlConn, $anUserId); + foreach( $starts as $start){ + $query = sprintf( + "SELECT * FROM wkParticipo_Events WHERE id='%s';", + $anMysqlConn->real_escape_string($start['eventId']) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ){ + array_push( $ret, getWkData($anMysqlConn, $result['wkId'])); + } + } + } +return $ret; +} + +function getUserData($anMysqlConn, $anUserId){ + $ret = array(); + if( (string)(int)$anUserId == $anUserId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Users WHERE id='%s';", + $anMysqlConn->real_escape_string($anUserId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = $results->fetch_assoc(); + } +return $ret; +} + +function getStarterData($anMysqlConn, $anStarterId){ + $ret = array(); + if( (string)(int)$anStarterId == $anStarterId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Starter WHERE id='%s';", + $anMysqlConn->real_escape_string($anStarterId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = $results->fetch_assoc(); + } +return $ret; +} + +function getFahrtData($anMysqlConn, $anFahrtId){ + $ret = array(); + if( (string)(int)$anFahrtId == $anFahrtId ){ + $query = sprintf( + "SELECT * FROM wkParticipo_Fahrten WHERE id='%s';", + $anMysqlConn->real_escape_string($anFahrtId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = $results->fetch_assoc(); + } +return $ret; +} + +function getEventData($anMysqlConn, $anEventId){ +$ret = array(); +if( (string)(int)$anEventId != $anEventId ) return $ret; + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.bemerkungen, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wettkampfkalender.Ort, ". + "wettkampfkalender.Ausschreibung, ". + "wettkampfkalender.Routenplaner ". + "FROM wkParticipo_Events ". + "JOIN wettkampfkalender ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "WHERE wkParticipo_Events.id = '%s';", + $anMysqlConn->real_escape_string($anEventId) ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + /// @ToDo: Anzahl Ergebnise auf ==1 testen + $ret = $results->fetch_assoc(); +return $ret; +} + +/// Daten eines einzelnen wkEvents via eventId abfragen +/// +/// Ein wkEvent ist ein Event (welches nur die ID des Wettkampfes im +/// Wettkampfkalender enthält) erweitert um die Daten des Wettkampfes +/// selber. +/// Der Rückgabewert sollte vor Verwendung (und zur Fehlerbeheandlung) +/// auf NULL und/oder leeres Array getestet werden. +/// +function getWkEventData($anMysqlConn, $anEventId){ +$ret = array(); +if( (string)(int)$anEventId != $anEventId ) return $ret; + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.bemerkungen, ". + "wkParticipo_Events.kvOptions, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wettkampfkalender.Ort, ". + "wettkampfkalender.Ausschreibung, ". + "wettkampfkalender.Routenplaner ". + "FROM wkParticipo_Events ". + "JOIN wettkampfkalender ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "WHERE wkParticipo_Events.id = '%s';", + $anMysqlConn->real_escape_string($anEventId) + ); + $results = $anMysqlConn->query($query); +// if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); // Für eine detailierte Fehlermeldung zum Debuggen + if( !$results ) return NULL; // Bei einem Fehler bei der Abfrage soll NULL zurückgeliefert werden + // Da wir über den Primary Key abfragen, wird maximal ein Ergebnis geliefert + $ret = $results->fetch_assoc(); + // Bei einem leeren Ergebnis (NULL oder leeres Array) soll ein leeres Array zurückgeliefert werden + if( empty($ret) ) return array(); + +array_walk( + $ret, + function (&$entry) { + $entry = iconv("ISO-8859-1", "UTF-8", $entry); + } +); +return $ret; +} + + +/// Daten aller kommenden wkEvents abfragen +/// +/// Ein wkEvent ist ein Event (welches nur die ID des Wettkampfes im +/// Wettkampfkalender enthält) erweitert um die Daten des Wettkampfes +/// selber. +/// Der Rückgabewert sollte vor Verwendung (und zur Fehlerbeheandlung) +/// auf NULL und/oder leeres Array getestet werden. +/// +function getCommingWkEvents($anMysqlConn){ +$ret = array(); + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.bemerkungen, ". + "wkParticipo_Events.kvOptions, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wettkampfkalender.Ort, ". + "wettkampfkalender.Ausschreibung, ". + "wettkampfkalender.Routenplaner ". + "FROM wkParticipo_Events ". + "JOIN wettkampfkalender ". + "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "WHERE wettkampfkalender.Datum >= CURDATE() ". + "ORDER BY wettkampfkalender.Datum;" + ); +// echo($query);die(); + $results = $anMysqlConn->query($query); + + // Bei einem Fehler bei der Abfrage soll NULL zurückgeliefert werden + if( !$results ){ + echo("No Results: ".$anMysqlConn->error); + return NULL; + } + // Bei einem leeren Ergebnis (NULL oder leeres Array) soll ein leeres Array zurückgeliefert werden + if( empty($results) ) return array(); + + while( $result = $results->fetch_assoc() ){ + array_walk( + $result, + function (&$entry) { + $entry = iconv("ISO-8859-1", "UTF-8", $entry); + } + ); + array_push( $ret, $result); + } +//echo("Results: "); print_r($ret); +return $ret; +} + + + +/// Abfrage der Daten eines Wettkampfes via ID +/// Da über den primary key abgefragt wird, erfolgt keine Kontrolle, ob +/// nur ein Ergebnis geliefert wurde +function getWkData($anMysqlConn, $anWkId){ + $query = sprintf( + "SELECT * FROM wettkampfkalender WHERE lfdeNr='%s';", + $anMysqlConn->real_escape_string($anWkId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = $results->fetch_assoc(); +return $ret; +} + +function getAllEvents($anMysqlConn){ + $query = sprintf( "SELECT * FROM wkParticipo_Events ORDER BY meldefrist DESC;" ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +/// Alle Userdaten abfragen +function getAllUsers($anMysqlConn){ + $query = sprintf( "SELECT * FROM wkParticipo_Users;" ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getThisWeeksMeldefristen($anMysqlConn){ +$ret = array(); + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wettkampfkalender.lfdeNr, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.wkId ". + "FROM wettkampfkalender ". + "JOIN wkParticipo_Events ". + "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "WHERE wkParticipo_Events.meldefrist <= DATE_ADD(CURDATE(), INTERVAL 1 WEEK) AND wkParticipo_Events.meldefrist >= CURDATE() ". + "ORDER BY wkParticipo_Events.meldefrist;" ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + + +/// Zukünftige Wettkämpfe abfragen +function getCommingWk($anMysqlConn){ +$ret = array(); + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT lfdeNr, Datum, Veranstaltung, Altersklassen ". + "FROM wettkampfkalender ". + "WHERE wettkampfkalender.Datum >= CURDATE() ". + "ORDER BY wettkampfkalender.Datum ASC;" + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getStarterInfo($anMysqlConn, $anStarterId){ +$ret = array(); +if( (string)(int)$anStarterId != $anStarterId ) return $ret; + + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wettkampfkalender.lfdeNr, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Starter.id, ". + "wkParticipo_Starter.eventId, ". + "wkParticipo_Starter.masse, ". + "wkParticipo_Starter.platz ". + "FROM wettkampfkalender ". + "JOIN wkParticipo_Events ". + "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "JOIN wkParticipo_Starter ". + "ON wkParticipo_Starter.eventId = wkParticipo_Events.id ". + "WHERE wkParticipo_Starter.id = '%s';", + $anMysqlConn->real_escape_string($anStarterId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + + +function getCommingFahrten($anMysqlConn){ +$ret = array(); + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wettkampfkalender.lfdeNr, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Fahrten.id, ". + "wkParticipo_Fahrten.eventId, ". + "wkParticipo_Fahrten.FahrerId, ". + "wkParticipo_Fahrten.plaetze, ". + "wkParticipo_Fahrten.mitfahrer ". + "FROM wettkampfkalender ". + "JOIN wkParticipo_Events ". + "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "JOIN wkParticipo_Fahrten ". + "ON wkParticipo_Events.id = wkParticipo_Fahrten.eventId ". + "WHERE wettkampfkalender.Datum >= CURDATE() ". + "ORDER BY wettkampfkalender.Datum;" ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getUsersCommingFahrten($anMysqlConn, $anUserId){ +$ret = array(); + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wettkampfkalender.lfdeNr, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wettkampfkalender.Ort, ". + "wettkampfkalender.Routenplaner, ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Fahrten.id, ". + "wkParticipo_Fahrten.eventId, ". + "wkParticipo_Fahrten.FahrerId, ". + "wkParticipo_Fahrten.plaetze, ". + "wkParticipo_Fahrten.mitfahrer ". + "FROM wettkampfkalender ". + "JOIN wkParticipo_Events ". + "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "JOIN wkParticipo_Fahrten ". + "ON wkParticipo_Events.id = wkParticipo_Fahrten.eventId ". + "WHERE wettkampfkalender.Datum >= CURDATE() AND wkParticipo_Fahrten.FahrerId = '%s' ". + "ORDER BY wettkampfkalender.Datum;", + $anMysqlConn->real_escape_string($anUserId) ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getUsersCommingWkEvents($anMysqlConn, $anUserId){ +$ret = array(); + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wettkampfkalender.lfdeNr, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wettkampfkalender.Ort, ". + "wettkampfkalender.Routenplaner, ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Starter.id, ". + "wkParticipo_Starter.eventId, ". + "wkParticipo_Starter.type ". + "FROM wettkampfkalender ". + "JOIN wkParticipo_Events ". + "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "JOIN wkParticipo_Starter ". + "ON wkParticipo_Starter.eventId = wkParticipo_Events.id ". + "WHERE wettkampfkalender.Datum >= CURDATE() AND wkParticipo_Starter.userId = '%s' ". + "ORDER BY wettkampfkalender.Datum;", + $anMysqlConn->real_escape_string($anUserId) ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getUsersWkEvents($anMysqlConn, $anUserId){ +$ret = array(); + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wettkampfkalender.lfdeNr, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wettkampfkalender.Ort, ". + "wettkampfkalender.Routenplaner, ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Starter.id, ". + "wkParticipo_Starter.eventId ". + "FROM wettkampfkalender ". + "JOIN wkParticipo_Events ". + "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "JOIN wkParticipo_Starter ". + "ON wkParticipo_Starter.eventId = wkParticipo_Events.id ". +// "WHERE wettkampfkalender.Datum >= CURDATE() AND wkParticipo_Starter.userId = '%s' ". + "WHERE wkParticipo_Starter.userId = '%s' ". + "ORDER BY wettkampfkalender.Datum;", + $anMysqlConn->real_escape_string($anUserId) ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getUsersErgebnisse($anMysqlConn, $anUserId){ +$ret = array(); + $anMysqlConn->query("USE cwsvjudo;"); + $query = sprintf( + "SELECT ". + "wettkampfkalender.lfdeNr, ". + "wettkampfkalender.Datum, ". + "wettkampfkalender.Veranstaltung, ". + "wettkampfkalender.Altersklassen, ". + "wettkampfkalender.Ort, ". + "wettkampfkalender.Routenplaner, ". + "wkParticipo_Events.id, ". + "wkParticipo_Events.meldefrist, ". + "wkParticipo_Events.wkId, ". + "wkParticipo_Starter.id, ". + "wkParticipo_Starter.eventId ,". + "wkParticipo_Starter.masse ,". + "wkParticipo_Starter.platz ". + "FROM wettkampfkalender ". + "JOIN wkParticipo_Events ". + "ON wettkampfkalender.lfdeNr = wkParticipo_Events.wkId ". + "JOIN wkParticipo_Starter ". + "ON wkParticipo_Starter.eventId = wkParticipo_Events.id ". + "WHERE wettkampfkalender.Datum <= CURDATE() AND wkParticipo_Starter.userId = '%s' ". + "ORDER BY wettkampfkalender.Datum;", + $anMysqlConn->real_escape_string($anUserId) ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + + +function getUsersMeldungen($anMysqlConn, $anUserId){ + $query = sprintf( + "SELECT * FROM wkParticipo_Starter WHERE userId='%s';", + $anMysqlConn->real_escape_string($anUserId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return $ret; +} + +function getUsersMeldeStatus($anMysqlConn, $anEventId, $anUserId){ + $query = sprintf( + "SELECT * FROM wkParticipo_Starter WHERE eventId='%s' AND userId='%s';", + $anMysqlConn->real_escape_string($anEventId), + $anMysqlConn->real_escape_string($anUserId) + ); + $results = $anMysqlConn->query($query); + if( !$results ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $ret = array(); + while( $result = $results->fetch_assoc() ) + array_push( $ret, $result); +return !empty($ret); +} + +function doMeldung($anMysqlConn, $anEventId, $anUserId){ + if( + !in_array( + $anUserId, + explode(',', getUserData($mysqli, $_SESSION['user']['userId'])['kinder']) + ) + ) return "Sie dürfen diesen Starter nicht einschreiben!"; + + + $query = sprintf( + "SELECT id FROM wkParticipo_Starter WHERE eventId='%s' AND userId='%s';", + $mysqli->real_escape_string($_POST['f']['eventId']), + $mysqli->real_escape_string($_POST['f']['userId']) + ); + $starterResults = $mysqli->query($query); + if( !$starterResults ) die("ERR: Fehler bei Datenbankabfrage (".$query.")!\n"); + $starterResult = $starterResults->fetch_array(); + if( $mysqli->affected_rows >= 1 ) + return "ERR: Offenbar bereits eingeschrieben!"; + + $query = sprintf( + "INSERT INTO wkParticipo_Starter (eventId, userId) values (%s, %s);", + $mysqli->real_escape_string($_POST['f']['eventId']), + $mysqli->real_escape_string($_POST['f']['userId']) + ); + $result = $mysqli->query($query); + if(!$result){ + echo "Fehler beim Einschreiben: " . mysql_error(); die(); + } + $message['success'] = + "Neuer Starter userId " . $_POST['f']['userId'] . " für eventId " . $_POST['f']['eventId']; +return true; +} + +function verteileMitfahrer($anMysqlConn, $anEventId){ +$retMessage = array(); + if( (string)(int)$anEventId == $anEventId ){ + $starterData = getStarterForEvent($anMysqlConn, $anEventId); + $fahrtenData = getFahrtenForEvent($anMysqlConn, $anEventId); + + // Bereits zugeordnete Starter ignorieren + // kontrollieren, ob der Starter auch wirklich in der Fahrt eingetragen ist + foreach( $starterData as $key => $starter ){ + if( !empty($starter['fahrtId']) ){ + $fahrt = getFahrtData($anMysqlConn, $starter['fahrtId']); + $mitfahrerIds = array(); + if( !empty($fahrt['mitfahrer']) ) + $mitfahrerIds = explode(',', $fahrt['mitfahrer']); + if( in_array($starter['id'], $mitfahrerIds) ) + unset($starterData[$key]); + else{ + // Sollte die Fahrt beim Starter eingetragen sein, aber nicht bei der Fahrt als Mitfahrer, lösche sie + $query = sprintf( + "UPDATE wkParticipo_Starter SET fahrtId='%s' WHERE id='%s';", + $anMysqlConn->real_escape_string( "" ), + $anMysqlConn->real_escape_string( $starter['id'] ) + ); + + $result = $anMysqlConn->query($query); + if($anMysqlConn->affected_rows != 1){ + $retMessage['error'] .= "Fehler beim Ausführen des sqlRequestes \"".$query."\"\n"; + return $retMessage; + } + } + } + } + + foreach( $fahrtenData as $key => $fahrt ){ + $mitfahrerIds = array(); + if( !empty($fahrt['mitfahrer']) ) + $mitfahrerIds = explode(',', $fahrt['mitfahrer']); + + // Überbelegte Fahrten trimmen + while( count($mitfahrerIds) > (int)$fahrt['plaetze'] ){ + $starterId = array_pop($mitfahrerIds); + $query = sprintf( + "UPDATE wkParticipo_Starter SET fahrtId='%s' WHERE id='%s';", + $anMysqlConn->real_escape_string( "" ), + $anMysqlConn->real_escape_string( $starterId ) + ); + + $result = $anMysqlConn->query($query); + if($anMysqlConn->affected_rows != 1){ + $retMessage['error'] .= "verteileMitfahrer: Fehler beim Ausführen des sqlRequestes \"".$query."\", Fahrt: ".$fahrt['id']." Plätze: ".$fahrt['plaetze'].", Mitfahrer: ".implode('|', $mitfahrerIds)."
"; + return $retMessage; + } + array_push($starterData, getStarterData($anMysqlConn, $starterId) ); + } + + $query = sprintf( + "UPDATE wkParticipo_Fahrten SET mitfahrer='%s' WHERE id='%s';", + $anMysqlConn->real_escape_string( empty($mitfahrerIds) ? "" : implode(',', $mitfahrerIds) ), + $anMysqlConn->real_escape_string( $fahrt['id'] ) + ); + + $result = $anMysqlConn->query($query); + + if($anMysqlConn->affected_rows > 1){ + $retMessage['error'] .= "verteileMittfahrer: Fehler beim Ausführen des sqlRequestes \"".$query."\"\n"; + return $retMessage; + } + + // volle Fahrten entfernen + if( count($mitfahrerIds) >= (int)$fahrt['plaetze'] ){ + unset($fahrtenData[$key]); + } + } + + uasort($starterData, function ($a, $b){ + return ( (int)$a['id'] < (int)$b['id'] ? 1 : -1 ); + }); + + uasort($fahrtenData, function ($a, $b){ + return ( (int)$a['plaetze'] > (int)$b['plaetze'] ? 1 : -1 ); + }); + + + while( !empty($starterData) and !empty($fahrtenData) ){ + echo "Starter:"; print_r($starterData); echo "\n"; + echo "Fahrten:"; print_r($fahrtenData); echo "\n\n"; + + $fahrt = array_pop($fahrtenData); + $starter = array_pop($starterData); + + $tempMessage = addMitfahrerToFahrt($anMysqlConn, $starter['id'], $fahrt['id']); + $retMessage['warning'] .= $tempMessage['warning']; + $retMessage['error'] .= $tempMessage['warning']; + $retMessage['success'] .= $tempMessage['success']; + + $fahrt = getFahrtData($anMysqlConn, $fahrt['id']); + + $mitfahrerIds = array(); + if( !empty($fahrt['mitfahrer']) ) + $mitfahrerIds = explode(',', $fahrt['mitfahrer']); + if( count($mitfahrerIds) < (int)$fahrt['plaetze'] ){ + array_push( $fahrtenData, $fahrt ); + } + } + if( !empty($starterData) ) + $retMessage['warning'] .= "Achtung: nicht zugeordnete Starter!
"; + } +return $retMessage; +} + +function reseteMitfahrer($anMysqlConn, $anEventId){ +$retMmessage = array(); + if( (string)(int)$anEventId != $anEventId ){ + $retMessage['error'] .= "Falsch formatierte eventId (".$anEventId.")
"; + return $retMessage; + } + + $query = sprintf( + "UPDATE wkParticipo_Starter SET fahrtId=NULL WHERE eventId='%s'", + $anMysqlConn->real_escape_string( $anEventId ) + ); + + $result = $anMysqlConn->query($query); + + if( !$result ){ + $retMessage['error'] .= "Fehler beim Ausführen des sqlRequestes \"".$query."\"
"; + //return $retMessage; + } + + $query = sprintf( + "UPDATE wkParticipo_Fahrten SET mitfahrer='%s' WHERE eventId='%s'", + $anMysqlConn->real_escape_string( "" ), + $anMysqlConn->real_escape_string( $anEventId ) + ); + + $result = $anMysqlConn->query($query); + + if( !$result ){ + $retMessage['error'] .= "Fehler beim Ausführen des sqlRequestes \"".$query."\"
"; + return $retMessage; + } +return $retMessage; +} + + +// einem Event einen neuen Starter hinzufügen +/* +function createStarterForEvent($anMysqlConn, $anEventId, $anUserId){ +$retMessage = array(); + if( (string)(int)$anEventId != $anEventId or (string)(int)$anUserId != $anUserId ){ + $retMessage['error'] .= "Falsch formatierte eventId (".$anEventId.") oder userId (".$anUserId.")
"; + return $retMessage; + } + + $event = getEventData($anMysqlConn, $anEventId); + if( empty($event) ){ + $retMessage['error'] .= "eventId ".$anEventId." nicht gefunden
"; + return $retMessage; + } + + $user = getUserData($anMysqlConn, $anUserId); + if( empty($event) ){ + $retMessage['error'] .= "userId ".$anUserId." nicht gefunden
"; + return $retMessage; + } + + if( getUsersMeldeStatus($anMysqlConn, $anEventId, $anUserId) ){ + $retMessage['notice'] .= "userId ".$anUserId." bereits bei eventId ".$anEventId." eingeschrieben
"; + return $retMessage; + } + + $query = sprintf( + "INSERT INTO wkParticipo_Starter (eventId, userId) values (%s, %s);", + $anMysqlConn->real_escape_string($anEventId), + $anMysqlConn->real_escape_string($anUserId) + ); + $result = $anMysqlConn->query($query); + if(!$result){ + $retMessage['error'] .= "Fehler \"".mysql_error()."\" bei der sqlQuery \"".$query."\"
"; + return $retMessage; + } + + $retMessage['success'] = "Neuer Starter userId " . $anUserId . " für eventId " . $anEventId . " hinzugefügt"; +return $retMessage; +} +*/ + +/// Einen Starter per userId mit typeId zu einem Event per eventId hinzufügen +/// Es erfolgt keine Überprüfung der Meldeberechtigung! +function createStarterForEvent($anMysqlConn, $anEventId, $anUserId, $aTypeId = "1"){ +$retMessage = array(); + if( (string)(int)$anEventId != $anEventId or (string)(int)$anUserId != $anUserId ){ + $retMessage['error'] .= "Falsch formatierte eventId (".$anEventId.") oder userId (".$anUserId.")
"; + return $retMessage; + } + + $event = getEventData($anMysqlConn, $anEventId); + if( empty($event) ){ + $retMessage['error'] .= "eventId ".$anEventId." nicht gefunden
"; + return $retMessage; + } + + $user = getUserData($anMysqlConn, $anUserId); + if( empty($event) ){ + $retMessage['error'] .= "userId ".$anUserId." nicht gefunden
"; + return $retMessage; + } + + if( getUsersMeldeStatus($anMysqlConn, $anEventId, $anUserId) ){ + $retMessage['notice'] .= "userId ".$anUserId." bereits bei eventId ".$anEventId." eingeschrieben
"; + return $retMessage; + } + + $query = sprintf( + "INSERT INTO wkParticipo_Starter (eventId, userId, type) values (%s, %s, %s);", + $anMysqlConn->real_escape_string($anEventId), + $anMysqlConn->real_escape_string($anUserId), + $anMysqlConn->real_escape_string($aTypeId) + ); + $result = $anMysqlConn->query($query); + if(!$result){ + $retMessage['error'] .= "Fehler \"".mysql_error()."\" bei der sqlQuery \"".$query."\"
"; + return $retMessage; + } + + $retMessage['success'] = "Neuer Starter userId " . $anUserId . " als Typ ".$aTypeId." für eventId " . $anEventId . " hinzugefügt"; +return $retMessage; +} + + + +function addMitfahrerToFahrt($anMysqlConn, $anStarterId, $anFahrtId){ +$retMmessage = array(); + if( (string)(int)$anStarterId != $anStarterId or (string)(int)$anFahrtId != $anFahrtId ){ + $retMessage['error'] .= "Falsch formatierte starterId (".$anStartId.") oder fahrtId (".$anFahrtId.")
"; + return $retMessage; + } + + $fahrt = getFahrtData($anMysqlConn, $anFahrtId); + $starter = getStarterData($anMysqlConn, $anStarterId); + + if( empty($fahrt) or empty($starter) or ($fahrt['eventId'] != $starter['eventId']) ){ + $retMessage['error'] .= "eventId von Fahrt und Starter passen nicht: fahrtId['eventId']=\"".$fahrt['eventId']."\", starterId['eventId']=\"".$starter['eventId']."\"
"; + return $retMessage; + } + + $mitfahrerIds = array(); + if( !empty($fahrt['mitfahrer']) ) + $mitfahrerIds = explode(',', $fahrt['mitfahrer']); + + if( in_array( $anStarterId, $mitfahrerIds) ){ + $message['warning'] .= "Starter '".$anStarterId."' bereits in Fahrt '".$anFahrtId."' eingeschrieben!
"; + return $retMessage; + } + + if( !empty($starter['fahrtId']) ){ + $retMessage['error'] .= "Der Starter \"".$anStarterId."\" ist bereits in der Fahrt \"".$starterId['fahrtId']."\"
"; + return $retMessage; + } + + if( count($mitfahrerIds) >= (int)$fahrt['plaetze'] ){ + $retMessage['error'] .= "Fahrt \"".$anFahrtId."\" hat keine freien Plätze mehr!
"; + return $retMessage; + } + + array_push( $mitfahrerIds, $starter['id'] ); + + $query = sprintf( + "UPDATE wkParticipo_Fahrten SET mitfahrer='%s' WHERE id='%s';", + $anMysqlConn->real_escape_string( implode(',', $mitfahrerIds) ), + $anMysqlConn->real_escape_string( $fahrt['id'] ) + ); + + $result = $anMysqlConn->query($query); + + if($anMysqlConn->affected_rows != 1){ + $retMessage['error'] .= "verteileMitfahrer: Fehler beim Ausführen des sqlRequestes \"".$query."\"
"; + return $retMessage; + } + + $retMessage['success'] .= "Starter '". $starter['id'] . "' zur Fahrt '".$fahrt['id']."' hinzugefügt!
"; + + $query = sprintf( + "UPDATE wkParticipo_Starter SET fahrtId='%s' WHERE id='%s';", + $anMysqlConn->real_escape_string( $fahrt['id'] ), + $anMysqlConn->real_escape_string( $starter['id'] ) + ); + + $result = $anMysqlConn->query($query); + if($anMysqlConn->affected_rows != 1){ + $retMessage['error'] .= "Fehler beim Ausführen des sqlRequestes \"".$query."\"
"; + return $retMessage; + } + + $retMessage['success'] .= "Fahrt '". $fahrt['id'] . " zum Starter '".$starter['id']."' hinzugefügt!
"; +return $retMessage; +} + +/// Einer Fahrt einen Mitfahrer entziehen +function shrinkFahrt($anMysqlConn, $fahrtId){ +$retMessage = array(); + if( (string)(int)$fahrtId == $fahrtId ){ + $fahrt = getFahrtData($anMysqlConn, $fahrtId); + } +} + +// Eine Fehler/Warnung/Notiz/Erfolgsmeldung als divBox im String zurückgeben +function htmlRetMessage($anRetMessage){ +$retHtmlString = ""; +if( !empty($anRetMessage) ){ + $retHtmlString .= "
"; + if( !empty($anRetMessage['error']) ){ + $retHtmlString .= "
"; + $retHtmlString .= "ERROR:
"; + $retHtmlString .= $anRetMessage['error']; + $retHtmlString .= "
"; + } + if( !empty($anRetMessage['warning']) ){ + $retHtmlString .= "
"; + $retHtmlString .= "WARNING:
"; + $retHtmlString .= $anRetMessage['warning']; + $retHtmlString .= "
"; + } + if( !empty($anRetMessage['notice']) ){ + $retHtmlString .= "
"; + $retHtmlString .= "Info:
"; + $retHtmlString .= $anRetMessage['notice']; + $retHtmlString .= "
"; + } + if( !empty($anRetMessage['success']) ){ + $retHtmlString .= "
"; + $retHtmlString .= "SUCCESS:
"; + $retHtmlString .= $anRetMessage['success']; + $retHtmlString .= "
"; + } + $retHtmlString .= "
"; +} +// print_r($anRetMessage); +return $retHtmlString; +} + +function updateStarterErgebnis($anMysqlConn, $anStarterId, $anMass, $somePlaces){ +$retMessage = array(); + if( (string)(int)$anStarterId != $anStarterId ){ + $retMessage['error'] .= "Falsch formatierte StarterId (".$anStarterId.")!
"; + return $retMessage; + } + if( (string)(float)$anMass != $anMass and $anMass != "Offen" and $anMass != "-" ){ + $retMessage['error'] .= "Falsch formatierte Masse (".$anMass.")
"; + return $retMessage; + } + $plaetze = explode(',', $somePlaces); + foreach($plaetze as $platz){ + if( (string)(int)$platz != $platz ){ + $message['error'] .= "Falsch formatierte Platzierungen (".$somePlaces.")
"; + return $retMessage; + } + } + + $query = sprintf( + "UPDATE wkParticipo_Starter SET masse='%s', platz='%s' WHERE id='%s';", + $anMysqlConn->real_escape_string( $anMass ), + $anMysqlConn->real_escape_string( $somePlaces ), + $anMysqlConn->real_escape_string( $anStarterId ) + ); + $result = $anMysqlConn->query($query); + + if($anMysqlConn->affected_rows != 1){ + $retMessage['error'] .= "updateStarterErgebnis: Fehler beim Ausführen des sqlRequestes \"".$query."\"
"; + return $retMessage; + } + + $retMessage['success'] .= "Dem Starter ".$anStarterId." wurde die Masse ".$anMass." und die Platzierung ".$somePlaces." zugeordnet!
"; +return $retMessage; +} + +/// Die KinderDaten eines Users abfragen +function getUsersKidsData($anMysqlConn, $anUserId){ +$retArray = array(); + if( (string)(int)$anUserId != $anUserId ) return $retArray; + + $query = sprintf( + "SELECT kinder FROM wkParticipo_Users WHERE id='%s';", + $anMysqlConn->real_escape_string( $anUserId ) + ); + $results = $anMysqlConn->query($query); + + if($anMysqlConn->affected_rows != 1) return $retArray; + + $kinderIds = explode(',', $results->fetch_array()['kinder']); + + foreach($kinderIds as $kindId){ + array_push( $retArray, getUserData($anMysqlConn, $kindId) ); + } + +return $retArray; +}; + +// geklaut von +function addToGcalUrl( + $name, + $date, + $location = false +) { + // calculate the start and end dates, convert to ISO format + $startdate = date('Ymd',strtotime($date)); + $enddate = date('Ymd',strtotime($startdate . ' + 1 day')); + // build the url + $url = 'http://www.google.com/calendar/event?action=TEMPLATE'; + $url .= '&text=' . rawurlencode($name); + $url .= '&dates=' . $startdate . '/' . $enddate; + + if ($location) { + $url .= '&location=' . rawurlencode($location); + } + // build the link output +return $url; +} + + +///--- +/// +///--- + +/// Erzeugen des htmlCodes der Infobox für ein wkEvent +function htmlWkEvent($aWkEvent, $starters, $fahrten){ +$retHtml = ""; + + $retHtml .= "
". $aWkEvent['Veranstaltung'] ."
"; + $retHtml .= "
Wettkampfdaten
    "; + $retHtml .= "
  • Datum: "; + if( empty($aWkEvent['Datum']) ){ + $retHtml .= "fehlendes Datum"; + } + else{ +// $retHtml .= " In Google Calendar eintragen"; + $retHtml .= ""; + } + $retHtml .= "
  • "; + $retHtml .= "
  • Einschreibefrist: "; + if( empty($aWkEvent['meldefrist']) ){ + $retHtml .= "fehlende Einschreibefrist"; + } + else{ +// $retHtml .= " In Google Calendar eintragen"; + $retHtml .= ""; + } + $retHtml .= "
  • "; + $retHtml .= "
  • Wettkampf: "; + if( empty($aWkEvent['Veranstaltung']) ){ + $retHtml .= "fehlender Wettkampfname"; + } + else{ + $retHtml .= $aWkEvent['Veranstaltung']; + } + $retHtml .= "
  • "; + $retHtml .= "
  • Altersklassen: "; + if( empty( $aWkEvent['Altersklassen'] ) ){ + $retHtml .= "fehlende Altersklassen"; + } + else{ + $retHtml .= $aWkEvent['Altersklassen']; + } + $retHtml .= "
  • "; + + if( !empty($_SESSION['login']) ){ + // $starters = getStarterForEvent($mysqlConn, $aWkEvent['id']); + $retHtml .= "
  • eingeschriebene Starter: "; + if( empty($starters) ){ + $retHtml .= "Noch hat sich niemand für diesen Wettkampf eingeschrieben!"; + } + else{ + $retHtml .= count($starters); + } + $retHtml .= "
  • "; + + // $fahrten = getFahrtenForEvent($mysqlConn, $aWkEvent['id']); + $anzPlätze = 0; + foreach($fahrten as $fahrt) + $anzPlätze += $fahrt['plaetze']; + $retHtml .= "Anzahl Plätze: " . $anzPlätze . ""; + + if( !empty( $aWkEvent['bemerkungen'] ) ){ + $retHtml .= "
  • Bemerkungen: " . $aWkEvent['bemerkungen'] . "
  • "; + } + } + + $retHtml .= "
"; + + $retHtml .= "
"; + if (empty($_SESSION['login'])){ + $retHtml .= "Ein Einschreiben ist nur eingeloggt möglich!"; + } + else{ + $heuteDateTime = DateTime::createFromFormat("Y-m-d", date("Y-m-d")); + $einschreibeDateTime = DateTime::createFromFormat("Y-m-d", $aWkEvent['meldefrist']); + + $retHtml .= "Für diesen Wettkampf ..."; + $retHtml .= "
"; + $retHtml .= ""; + if( $heuteDateTime > $einschreibeDateTime ){ + $retHtml .= ""; + $retHtml .= "

Frist für das Einschreiben verpasst? Für ein nachträgliches Eintragen mit dem Admin verständigen (Email an cwsvjudo@arcor.de).

"; + } + else{ + if( $heuteDateTime->modify( "+ 4 weeks") < $einschreibeDateTime ){ + $retHtml .= ""; + } + else{ + $retHtml .= ""; + } + } + $retHtml .= "
"; + $retHtml .= "
"; + $retHtml .= ""; + + if($aWkEvent['Datum'] > date("Y-m-d")){ + $retHtml .= ""; + } + else{ + $retHtml .= ""; + } + $retHtml .= "
"; + } + $retHtml .= "
"; + + $retHtml .= + ""; + + $retHtml .= "
"; + +return $retHtml; +} + + +?> diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/local/.htaccess b/homepage/redesign2018/markdownExperiment/wkParticipo/local/.htaccess new file mode 100644 index 0000000..379649e --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/local/.htaccess @@ -0,0 +1,3 @@ +Deny from all +Allow from localhost +Allow from cwsvjudo.bplaced.net diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/local/db.php.inc b/homepage/redesign2018/markdownExperiment/wkParticipo/local/db.php.inc new file mode 100644 index 0000000..e3fc47e --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/local/db.php.inc @@ -0,0 +1,6 @@ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/local/wkParticipoConf.php.inc b/homepage/redesign2018/markdownExperiment/wkParticipo/local/wkParticipoConf.php.inc new file mode 100644 index 0000000..3517089 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/local/wkParticipoConf.php.inc @@ -0,0 +1,10 @@ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/login.php b/homepage/redesign2018/markdownExperiment/wkParticipo/login.php new file mode 100644 index 0000000..822bbf7 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/login.php @@ -0,0 +1,116 @@ +connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } else { + $query = sprintf( + "SELECT id, loginName, pwHash FROM wkParticipo_Users WHERE loginName = '%s'", + $mysqli->real_escape_string($_POST['f']['username']) + ); + $result = $mysqli->query($query); +// echo $query; echo '\n'; echo $result; die(); + if ($row = $result->fetch_array(MYSQLI_ASSOC)) { +// if (crypt($_POST['f']['password'], $row['password']) == $row['password']) { + if( password_verify( $_POST['f']['password'], $row['pwHash']) ){ + session_start(); + + $_SESSION = array( + 'login' => true, + 'user' => array( + 'username' => $row['loginName'], + 'userId' => $row['id'] + ), + ); + $message['success'] = 'Anmeldung erfolgreich, weiter zum Inhalt.'; + PHPCount::AddHit("wkParticipo-Login ".$_POST['f']['username']); + header('Location: http://' . $_SERVER['HTTP_HOST'] . '/pages/desktop/wkParticipo/index.php?user=' . $_POST['f']['username']); + } else { + sleep(1); + $message['error'] = 'Das Kennwort ist nicht korrekt.'; + } + } else { + sleep(1); + $message['error'] = 'Der Benutzer wurde nicht gefunden.'; + } + $mysqli->close(); + } + } + } else { + $message['notice'] = + "". + "Anmerkung des Autors: Die online Wettkampfplanung befindet sich in einem experimentellem Stadium. ". + "Es gibt keine Garantie, dass das ganze wirklich funktioniert! ". + "Deshalb kann und soll sie auch überhaupt nicht die persönliche Absprache zu den Wettkämpfen ersetzen. ". + "Wer Fehler findet oder Verbesserungen vorschlagen will, kann sich gerne an mich wenden."; + } +} +?> + + + + + Wettkampfplanung - Login + + + + + + +

Wettkampf­planung der Judoka des CWSV

+ +
+
+ Benutzerdaten +
+ + /> +
+
+ + +
+
+
+
+ +
+
+
Hinweise + +
+
+ + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/loginDev.php b/homepage/redesign2018/markdownExperiment/wkParticipo/loginDev.php new file mode 100644 index 0000000..b046386 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/loginDev.php @@ -0,0 +1,207 @@ +connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } else { + $query = sprintf( + "SELECT id, loginName, pwHash FROM wkParticipo_Users WHERE loginName = '%s'", + $mysqli->real_escape_string($_POST['f']['username']) + ); + $result = $mysqli->query($query); +// echo $query; echo '\n'; echo $result; die(); + if ($row = $result->fetch_array(MYSQLI_ASSOC)) { +// if (crypt($_POST['f']['password'], $row['password']) == $row['password']) { + if( password_verify( $_POST['f']['password'], $row['pwHash']) ){ + session_start(); + + $_SESSION = array( + 'login' => true, + 'user' => array( + 'username' => $row['loginName'], + 'userId' => $row['id'] + ), + ); + $message['success'] = 'Anmeldung erfolgreich, weiter zum Inhalt.'; + header('Location: http://' . $_SERVER['HTTP_HOST'] . '/pages/desktop/wkParticipo/index.php?user=' . $_POST['f']['username']); + } else { + $message['error'] = 'Das Kennwort ist nicht korrekt.'; + } + } else { + $message['error'] = 'Der Benutzer wurde nicht gefunden.'; + } + $mysqli->close(); + } + } + } else { + $message['notice'] = + "". + "Anmerkung des Autors: Die online Wettkampfplanung befindet sich in einem experimentellem Stadium. ". + "Es gibt keine Garantie, dass das ganze wirklich funktioniert! ". + "Deshalb kann und soll sie auch überhaupt nicht die persönliche Absprache zu den Wettkämpfen ersetzen. ". + "Wer Fehler findet oder Verbesserungen vorschlagen will, kann sich gerne an mich wenden."; + } +} +?> + + + + + Wettkampfplanung - Login + + + + + + +

Wettkampfplanung der Judoka des CWSV

+ + + + +
+ + +
+ + + + + + + + +
+ +
+ + Forgot password? +
+
+ + + +
+
+ Benutzerdaten +
+ + /> +
+
+ + +
+
+
+
+ +
+
+
Hinweise + +
+
+ + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/logout.php b/homepage/redesign2018/markdownExperiment/wkParticipo/logout.php new file mode 100644 index 0000000..f6ee446 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/logout.php @@ -0,0 +1,18 @@ + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php b/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php new file mode 100644 index 0000000..b3b39b2 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/showWkEvent.php @@ -0,0 +1,237 @@ +zur Eventübersicht"; + } + else{ + if( (string)(int)$_GET['eventId'] == $_GET['eventId'] ){ + $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); + if ($mysqli->connect_error) { + $message['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + else{ + $eventData = getEventData($mysqli, $_GET['eventId']); + if( empty($eventData) ) $message['error'] .= 'Fehler: keine Eventdaten zurückgeliefert!'; + } + } + else $message['error'] .= "Fehler: eventId ist kein Int (".$_GET['eventId'].")"; + } + } +?> + + + + + + Wettkampfplanung - Wettkampfdetails<?php echo (empty($eventData) ? "" : " ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'));?> + + + + +
+Zur Übersicht zurück"; + + echo htmlRetMessage($message); + + if( empty($eventData) ){ +?> + Keine Eventdaten zum Anzeigen gefunden!
+
Zur Übersicht zurück
+ +

+ +

Wettkampfdaten

+ + + + +

Einschreibungen:

+ + + +
  • Eingeschrieben: + + Noch hat sich niemand für diesen Wettkampf gemeldet! + + +
  • + + +

    Es sind momentan Starter eingeschrieben.

    + + + +

    Jemanden einschreiben: + +

    + +
    + /> + /> +Bereits eingeschrieben!
    "); + } + else{ + if( date("Y-m-d") > $eventData['meldefrist']){ + echo ""; + + if (!empty($_SESSION['login'])){ + echo( "

    Frist für das Einschreiben verpasst? Für ein nachträgliches Eintragen mit dem Admin verständigen (Email an cwsvjudo@arcor.de).

    " ); + } + + + + + } + else{ + echo ""; + } + } +?> + + + +

    + +

    Mitfahrangebote

    + + +
    + " /> + date("Y-m-d")){ +?> + + + + +
    +close(); +?> + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/style.css b/homepage/redesign2018/markdownExperiment/wkParticipo/style.css new file mode 100644 index 0000000..36fdd8f --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/style.css @@ -0,0 +1,234 @@ +/* Box-Sizing global auf die BorderBox stellen */ +html{ + box-sizing: border-box; +} +*, ::before, ::after { + box-sizing: inherit; +} + + +.loginForm{} +.loginForm div{ + display: flex; + flex-direction: column; + width: 100%; +} +.loginForm input{ + display: block; + margin: 0; + width: 100%; + font-size: 1.5em; + border: 1px solid #bbb; +} +.loginForm button[type=submit]{ + display: block; + font-size: 1em; + line-height: 2em; + color: #333; + font-weight: bold; + width: 100%; + background: #fdfdfd; + background: linear-gradient(to bottom, #fdfdfd 0%,#bebebe 100%); + border: 1px solid #bbb; +} + + +/** + * Wettkampfbox + **/ + +.wkBox{ + border: 1px solid black; + display: flex; + flex-direction: column; +} +.wkBox nav{ +/* width: 32%; + float: left;*/ +} +.wkBox nav ul li{ + display: list-item; +} +.wkBoxWkData{ + border: none; +} +@media (min-width: 65em){ + .wkBox{ + flex-direction: row; + align-items: stretch; + justify-content: space-around; + padding: .5em; + } + .wkBox *{ + flex-basis: 30%; + } +} + + +/* touchable Links*/ +.touchLink{ + display: inline-block; + padding: 0.25em 0 0.25em 0; + margin: 0.25em 0 0.25em 0; + background-color: #FF8100; + border-radius: .5em; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); +} + +/* touchable Buttons */ + +.touchButton{ + display: block; + margin: .5em 0; + font-size: 1em; + line-height: 1.5em; + color: #333; + font-weight: bold; + width: 100%; + background: #fdfdfd; + background: linear-gradient(to bottom, #fdfdfd 0%,#bebebe 100%); + border: 1px solid #bbb; +} +.touchButton[disabled]{ + color: Grey; +} + + +@media (min-width: 65em){ +/* .loginForm div{ + flex-direction: row; + justify-content: space-between; + align-items: flex-end; + } + .loginForm div div{ + flex-direction: column; + align-items: flex-start; + width: 30%; + } + button{ + } +*/ +} + +body{ + background-color: #ffae00; +} + + +nav ul { + width: 100%; + list-style: none; + padding: 0; +} + +nav ul li a{ + text-decoration: none; + color: black; +} + +nav ul li a div{ + text-align: center; + font-size: large; + font-weight: bolder; + border: 3px gray outset; + background: linear-gradient(to bottom, #FFAE00 0%,#FF8100 100%); + padding-top: .25em; + padding-bottom: .25em; +} + +.navLink{ + text-align: center; +/* font-size: large;*/ + font-weight: bolder; + border: 3px gray outset; + background: linear-gradient(to bottom, #FFAE00 0%,#FF8100 100%); + padding-top: .25em; + padding-bottom: .25em; +} + +.navLink div{ + display: inline; +} +meldungsBox{ + border: 1px solid black; +} + + +@media only screen and (min-device-width: 481px){ + .wkInfo{ + width: 68%; + float: right; + } + + nav ul{ + display: table; + } + + nav ul li{ + display: table-cell; + } + + nav ul li a div{ + text-align: center; + } + + button[type=submit] { + display: block; + font-size: 1em; + line-height: 1.5em; + color: #333; + font-weight: bold; + width: 100%; + background: #fdfdfd; + background: linear-gradient(to bottom, #fdfdfd 0%,#bebebe 100%); + border: 1px solid #bbb; + } + button[disabled]{ + color: Grey; + } +} + +@media only screen and (max-device-width: 481px) { + nav ul li a div{ + text-align: left; + } + button[type=submit] { + display: block; + font-size: 1em; + line-height: 1.5em; + color: #333; + font-weight: bold; + width: 100%; + background: #fdfdfd; + background: -moz-linear-gradient(top, #fdfdfd 0%, #bebebe 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#bebebe)); + background: -webkit-linear-gradient(top, #fdfdfd 0%,#bebebe 100%); + background: -o-linear-gradient(top, #fdfdfd 0%,#bebebe 100%); + background: -ms-linear-gradient(top, #fdfdfd 0%,#bebebe 100%); + background: linear-gradient(to bottom, #fdfdfd 0%,#bebebe 100%); + border: 1px solid #bbb; + -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; + } + button[disabled]{ + color: Grey; + } + input[type=text], input[type=url], input[type=email], input[type=password], input[type=tel] { + -webkit-appearance: none; -moz-appearance: none; + display: block; + margin: 0; + width: 100%; +/* height: 2em;*/ +/* line-height: 1.6em;*/ + font-size: 1.5em; + border: 1px solid #bbb; + } + #meldungsBox{ +/* font-size: 3em;*/ + border: 1px solid black; + } + fieldset div{ + font-size: 1em; + } +} + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/styleDev.css b/homepage/redesign2018/markdownExperiment/wkParticipo/styleDev.css new file mode 100644 index 0000000..ab549b6 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/styleDev.css @@ -0,0 +1,203 @@ +/* Box-Sizing global auf die BorderBox stellen */ +html{ + box-sizing: border-box; +} +*, ::before, ::after { + box-sizing: inherit; +} + + +body{ + background-color: #ffae00; +} + + +.loginForm{} +.loginForm fieldset{ + display: flex; + flex-direction: row; +} + +/* touchable Links*/ +.touchLink{ + display: inline-block; + padding: 0.25em 0 0.25em 0; + margin: 0.25em 0 0.25em 0; + background-color: #FF8100; + border-radius: .5em; +} + +/* touchable Buttons */ + +.touchButton{ + display: block; + margin: .5em 0; + font-size: 1em; + line-height: 1.5em; + color: #333; + font-weight: bold; + width: 100%; + background: #fdfdfd; + background: linear-gradient(to bottom, #fdfdfd 0%,#bebebe 100%); + border: 1px solid #bbb; +} +.touchButton[disabled]{ + color: Grey; +} + + +nav ul { + width: 100%; + list-style: none; + padding: 0; +} + +nav ul li a{ + text-decoration: none; + color: black; +} + +nav ul li a div{ + text-align: center; + font-size: large; + font-weight: bolder; + border: 3px gray outset; + background: linear-gradient(to bottom, #FFAE00 0%,#FF8100 100%); + padding-top: .25em; + padding-bottom: .25em; +} + +.navLink div{ + display: inline; +} +meldungsBox{ + border: 1px solid black; +} + + +@media only screen and (min-device-width: 481px){ + .wkBox{ + border: 1px solid black; + display: inline-block; + width: 100%; + } + + .wkBox nav{ + width: 32%; + float: left; + } + + .wkBox nav ul li{ + display: list-item; + } + .wkInfo{ + width: 68%; + float: right; + } + + nav ul{ + display: table; + } + + nav ul li{ + display: table-cell; + } + + nav ul li a div{ + text-align: center; + } + + button[type=submit] { + display: block; + margin: .5em 0; + font-size: 1em; + line-height: 1.5em; + color: #333; + font-weight: bold; + width: 100%; + background: #fdfdfd; + background: linear-gradient(to bottom, #fdfdfd 0%,#bebebe 100%); + border: 1px solid #bbb; + } + button[disabled]{ + color: Grey; + } +} + +@media only screen and (max-device-width: 481px) { + nav ul li a div{ + text-align: left; + } + + + .touchLink div{ + border: 3px gray outset; + padding-top: .5em; + font-size: large; + font-weight: bolder; + background: linear-gradient(to bottom, #FFAE00 0%,#FF8100 100%); + padding-top: .25em; + padding-bottom: .25em; + text-align: center; + } + .touchLink li{ + border: 3px gray outset; + padding-top: .5em; + font-size: large; + font-weight: bolder; + background: linear-gradient(to bottom, #FFAE00 0%,#FF8100 100%); + padding-top: .25em; + padding-bottom: .25em; + text-align: center; + } + .touchLink{ + text-decoration: none; + color: black; + } + button[type=submit] { + -webkit-appearance: none; -moz-appearance: none; + display: block; + margin: .5em 0; + font-size: 1em; + line-height: 1.5em; + color: #333; + font-weight: bold; + width: 100%; + background: #fdfdfd; + background: -moz-linear-gradient(top, #fdfdfd 0%, #bebebe 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#bebebe)); + background: -webkit-linear-gradient(top, #fdfdfd 0%,#bebebe 100%); + background: -o-linear-gradient(top, #fdfdfd 0%,#bebebe 100%); + background: -ms-linear-gradient(top, #fdfdfd 0%,#bebebe 100%); + background: linear-gradient(to bottom, #fdfdfd 0%,#bebebe 100%); + border: 1px solid #bbb; + -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; + } + button[disabled]{ + color: Grey; + } + input[type=text], input[type=url], input[type=email], input[type=password], input[type=tel] { + -webkit-appearance: none; -moz-appearance: none; + display: block; + margin: 0; + width: 100%; + height: 2em; +// line-height: 1.6em; + font-size: 1.5em; + border: 1px solid #bbb; + } + #meldungsBox{ +// font-size: 3em; + border: 1px solid black; + } + .wkBox{ +// font-size: 3em; + border: 1px solid black; + + } + fieldset div{ + font-size: 2em; + } +} + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/test.php b/homepage/redesign2018/markdownExperiment/wkParticipo/test.php new file mode 100644 index 0000000..3f6572c --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/test.php @@ -0,0 +1,223 @@ + + + + + + + + Wettkampfplanung der Judoka des CWSV + + + + + +

    Wettkampfplanung - Übersicht

    + + +

    Springe zu den ...

    + +
    abge­gebenen Meldungen.
    +
    angemel­deten Mitfahr­gelegen­heiten.
    +
    kommenden Wett­kämpfen.
    +
    +connect_error) { + $message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + echo $message['error']; die(); + } +?> +

    Meldungen zu kommenden Wettkämpfen

    + + +

    + + ist derzeit bei keinem Wettkampf eingeschrieben! + +

    + + +
    Termin in Kalender übernehmen
    +
    + " /> + +
    +"; + } + } +?> + +

    Angemeldete Mitfahrgelegenheiten

    + + Keine Mitfahrangebote gefunden + +
    +

    " );?>

    + +
    Termin in Kalender übernehmen
    +
    + " /> + +
    +
    +
    + + +

    Anstehende Wettkämpfe

    + +

    Momentan befinden sich anscheinend keine Wettkämpfe in Planung!

    + +
    +
    + " /> + +
    +
    + Für diesen Wettkampf ... +
    + /> + $wk['meldefrist'] ){ +?> + + + + +
    +
    + " /> + date("Y-m-d")){ +?> + + + + +
    +
    +
    + +

    Letzte Ergebnisse

    + + +close(); +?> + + + + + diff --git a/homepage/redesign2018/markdownExperiment/wkParticipo/userInfo.php b/homepage/redesign2018/markdownExperiment/wkParticipo/userInfo.php new file mode 100644 index 0000000..5346a39 --- /dev/null +++ b/homepage/redesign2018/markdownExperiment/wkParticipo/userInfo.php @@ -0,0 +1,86 @@ +connect_error){ + $message['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error; + } + + $userInfo = getUserData( $mysqlConn, $_SESSION['user']['userId'] ); + $kinderInfo = getUsersKidsData( $mysqlConn, $_SESSION['user']['userId'] ); +?> + + + + + + + Userinfo + + + + + + + + + + + + + + + +

    Wettkampfplanung - Userinfo

    + + +

    Benutzerdaten

    + + +

    Aktionen

    + + + +