Der Wettkampfplaner in der aktuellen Version

neue Datei:     addEvent.php
	neue Datei:     addFahrt.php
	neue Datei:     addStarter.php
	neue Datei:     addStarterDev.php
	neue Datei:     admin/.htaccess
	neue Datei:     admin/addEvent.php
	neue Datei:     admin/addMitfahrer.php
	neue Datei:     admin/adminAddStarter.php
	neue Datei:     admin/adminFunctions.php
	neue Datei:     admin/adminFunctions.php.inc
	neue Datei:     admin/adminUpdateStarterErgebnis.php
	neue Datei:     admin/config.inc.php
	neue Datei:     admin/index.php
	neue Datei:     admin/listEvents.php
	neue Datei:     admin/listUsers.php
	neue Datei:     admin/newsLetter.php
	neue Datei:     admin/register.php
	neue Datei:     admin/resetPassword.php
	neue Datei:     admin/reseteMitfahrer.php
	neue Datei:     admin/showEvent.php
	neue Datei:     admin/showFahrt.php
	neue Datei:     admin/showUser.php
	neue Datei:     admin/verteileMitfahrer.php
	neue Datei:     auth.php
	neue Datei:     authLogin.php
	neue Datei:     calendar.php
	neue Datei:     changePassword.php
	neue Datei:     editFahrt.php
	neue Datei:     eventKalender.php
	neue Datei:     galImgPicker.php
	neue Datei:     horstWolfJudosport.php
	neue Datei:     index.php
	neue Datei:     infoZettel.php
	neue Datei:     lib/wkParticipoLib.inc.php
	neue Datei:     local/.htaccess
	neue Datei:     local/db.php.inc
	neue Datei:     local/wkParticipoConf.php.inc
	neue Datei:     login.php
	neue Datei:     loginDev.php
	neue Datei:     logout.php
	neue Datei:     showWkEvent.php
	neue Datei:     style.css
	neue Datei:     styleDev.css
	neue Datei:     userInfo.php
This commit is contained in:
marko
2018-07-21 11:58:27 +02:00
parent 8fdc8fac00
commit e6f87bbbbb
44 changed files with 5525 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
<?php
require_once('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
$message = array();
if(!empty($_POST)){
if( empty($_POST['f']['wkId']) || empty($_POST['f']['meldefrist']) ){
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
}
else{
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->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.';
}
?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>loginsystem - register.php</title>
</head>
<body>
<form action="./addEvent.php" method="post">
<?php if (isset($message['error'])): ?>
<fieldset class="error"><legend>Fehler</legend><?php echo $message['error'] ?></fieldset>
<?php endif;
if (isset($message['success'])): ?>
<fieldset class="success"><legend>Erfolg</legend><?php echo $message['success'] ?></fieldset>
<?php endif;
if (isset($message['notice'])): ?>
<fieldset class="notice"><legend>Hinweis</legend><?php echo $message['notice'] ?></fieldset>
<?php endif; ?>
<fieldset>
<legend>Benutzerdaten</legend>
<div><label for="wkId">wkId</label> <input type="text" name="f[wkId]" id="wkId"<?php echo isset($_POST['f']['wkId']) ? ' value="' . htmlspecialchars($_POST['f']['wkId']) . '"' : '' ?> /></div>
<div><label for="meldefrist">meldefrist</label> <input type="text" name="f[meldefrist]" id="meldefrist" <?php echo isset($_POST['f']['meldefrist']) ? ' value="' . htmlspecialchars($_POST['f']['meldefrist']) . '"' : '' ?> /></div>
</fieldset>
<fieldset>
<div><input type="submit" name="submit" value="Erstellen" /></div>
</fieldset>
</form>
</body>
</html>

View File

@@ -0,0 +1,91 @@
<?php
require_once('./local/db.php.inc');
require_once('./local/wkParticipoConf.php.inc');
require_once('./auth.php');
require_once('./lib/wkParticipoLib.php.inc');
$message = array();
if(!empty($_POST)){
if( empty($_POST['f']['eventId']) ){
$message['error'] = 'ERR: Fehlende eventId!';
die("ERR: Fehlende eventId!");
}
else{
// print_r($_POST['f']['anzPlaetze']);
if( !empty($_POST['f']['anzPlaetze']) ){
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->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.';
}
?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplaner - Meldung</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->connect_error){
$message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
}
$eventData = getEventData($mysqli, $_POST['f']['eventId']);
$wkData = getWkData($mysqli, $eventData['wkId']);
?>
<div id="meldungsBox">
<ul>
<li>F&uuml;r Wettkampf: <?php echo mb_convert_encoding($wkData['Veranstaltung'], 'UTF-8', 'ISO-8859-1')?></li>
</ul>
<form action="./addFahrt.php" method="post">
<input type="hidden" name="f[eventId]" id="eventId"<?php echo isset($_POST['f']['eventId']) ? ' value="' . htmlspecialchars($_POST['f']['eventId']) . '"' : '' ?> />
Anzahl Plätze: <input type="text" name="f[anzPlaetze]">
<button type="submit" name="submit">Fahrt anmelden</button>
</form>
</div>
<div><a href="./index.php">Zur&uuml;ck zur &Uuml;bersicht</a></div>
<?php $mysqli->close();?>
</body>
</html>

View File

@@ -0,0 +1,177 @@
<?php
require_once('./local/db.php.inc');
require_once('./local/wkParticipoConf.php.inc');
require_once('./auth.php');
require_once('./lib/wkParticipoLib.php.inc');
$message = array();
// $meldungsBox = array();
$meldungsBox = "";
if( empty($_POST) ){
$message['error'] .= "Weder userId noch eventId übergeben!";
}
else{
if( !isset($_POST['f']['eventId']) ){
$message['error'] .= "Fehlende eventId (".$_POST['f']['eventId'].") (POST: ".var_export($_POST, true).")<br />";
}
else{
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."<br /";
}
else{
$wkEventData = getEventData($mysqlConn, $_POST['f']['eventId']);
if( date("Y-m-d") > $wkEventData['meldefrist']){
$message['error'] .= "Die Meldefrist ist bereits abgelaufen!<br />";
}
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 .= "<div id=\"meldungsBox\">Meldung<ul>";
$meldungsBox .= "<li>F&uuml;r Starter: ".mb_convert_encoding($kind['name'], 'UTF-8', 'ISO-8859-1').", ".mb_convert_encoding($kind['vorname'], 'UTF-8', 'ISO-8859-1')."</li></ul>";
$meldungsBox .= "<form action=\"./addStarter.php\" method=\"post\">";
$meldungsBox .= "<input type=\"hidden\" name=\"f[eventId]\" id=\"eventId\" ".(isset($_POST['f']['eventId']) ? " value=\"" . htmlspecialchars($_POST['f']['eventId']) . "\"" : "") ." />";
$meldungsBox .= "<input type=\"hidden\" name=\"f[userId]\" id=\"userId\" " .(isset($kind['id']) ? " value=\"".htmlspecialchars($kind['id'])."\"" : "")."/>";
$meldungsBox .= "<select name=\"f[type]\"><option value=\"1\" selected>als Starter</option><option value=\"2\">als Zuschauer</option><option value=\"3\">keine Teilnahme</option></select>";
if( getUsersMeldeStatus($mysqlConn, $_POST['f']['eventId'], $kind['id']) ){
$meldungsBox .= "<div>Bereits gemeldet</div>";
}
else{
if( date("Y-m-d") > $wkEventData['meldefrist']){
$meldungsBox .= "<div>Die Meldefrist ist bereits abgelaufen!</div>";
}
else{
$meldungsBox .= "<button type=\"submit\" name=\"submit\">Melden</button>";
}
}
$meldungsBox .= "</form></div><hr />";
}
}
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!<br />";
}
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();
}
}
?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplaner - Meldung</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status; ?>
<hr />
<?php
if( isset($message['success']) ){
?>
<?php echo $userData['name'].", ".$userData['vorname'];?> zum Wettkampf <?php echo mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1');?> gemeldet!<br />
<?php
}
else{
echo htmlRetMessage($message);
}
?>
<h1><?php echo(mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'))?></h1>
<?php if( !empty($meldungsBox) ) echo($meldungsBox);?>
<nav>
<ul>
<li>
<a href="./index.php">
<div>zur Übersicht zurück</div>
</a>
</li>
<?php
if( isset($message['success']) ){
?>
<li>
<a href="./showWkEvent.php?eventId=<?php echo $wkEventData['id'];?>">
<div>
<?php echo "Detailansicht ".mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1');?>
</div>
</a>
</li>
<?php
}
?>
</ul>
</nav>
<!--
<div style="border: solid black"><?php echo var_export($wkEventData, true);?></div>
<div style="border: solid black"><?php echo var_export($userData, true);?></div>
<div style="border: solid black"><?php echo var_export($_SESSION, true);?></div>
<div style="border: solid black"><?php echo var_export($_POST, true);?></div>
<div id="meldungsBox">
Manuelle Meldung
<ul>
<li>F&uuml;r Wettkampf: <?php echo isset($wkEventData['Veranstaltung']) ? mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1') : "<fehlende Wettkampfdaten>" ?></li>
<li>F&uuml;r Starter: <?php echo isset($userData['vorname']) ? mb_convert_encoding($userData['vorname'], 'UTF-8', 'ISO-8859-1') : "<fehlender Vorname>" ?></li>
</ul>
<form action="./addStarterDev.php" method="post">
<fieldset>
<legend>Meldungsdaten</legend>
<div>
<label for="eventId">eventId</label>
<input type="text" name="f[eventId]" id="eventId" <?php echo isset($_POST['f']['eventId']) ? "value=\"".htmlspecialchars($_POST['f']['eventId'])."\"" : "" ?> />
</div>
<div>
<label for="userId">userId</label>
<input type="<?php echo isset($_POST['f']['userId']) ? "disabled" : "text" ?>" name="f[userId]" id="userId" <?php echo isset($_POST['f']['userId']) ? "value=\"".htmlspecialchars($_POST['f']['userId'])."\"" : "" ?> />
</div>
</fieldset>
<fieldset>
<div><button type="submit" name="submit" value="Meldung">Meldung</button></div>
</fieldset>
</form>
</div>
-->
</body>
</html>

View File

@@ -0,0 +1,193 @@
<?php
require_once('./local/db.php.inc');
require_once('./local/wkParticipoConf.php.inc');
require_once('./auth.php');
require_once('./lib/wkParticipoLib.php.inc');
$message = array();
// $meldungsBox = array();
if( empty($_POST) ){
$message['error'] .= "Weder userId noch eventId übergeben!";
}
else{
if( !isset($_POST['f']['eventId']) ){
$message['error'] .= "Fehlende eventId (".$_POST['f']['eventId'].") (POST: ".var_export($_POST, true).")<br />";
}
else{
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."<br /";
}
else{
$wkEventData = getEventData($mysqlConn, $_POST['f']['eventId']);
if( date("Y-m-d") > $wkEventData['meldefrist']){
$message['error'] .= "Die Meldefrist ist bereits abgelaufen!<br />";
}
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!<br />";
}
$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!<br />";
}
if($mysqlConn->affected_rows != 1) $message['warning'] .= "Nicht eindeutige userId!<br />";
$kindDaten = $kinderDaten->fetch_array();
$meldungsBox =
"<div id=\"meldungsBox\">Meldung".
"<ul>".
"<li>F&uuml;r Wettkampf: ".mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8')."</li>".
"<li>F&uuml;r Starter: ".mb_convert_encoding($kindDaten['name'], 'UTF-8').", ".mb_convert_encoding($kindDaten['vorname'], 'UTF-8')."</li>".
"</ul>".
"<form action=\"./addStarter.php\" method=\"post\">".
"<input type=\"hidden\" name=\"f[eventId]\" id=\"eventId\"".(isset($_POST['f']['eventId']) ? " value=\"" . htmlspecialchars($_POST['f']['eventId']) . "\"" : "")." />".
"<input type=\"hidden\" name=\"f[userId]\" id=\"userId\"".(isset($kindId) ? " value=\"".htmlspecialchars($kindId)."\"" : "")." />";
if( getUsersMeldeStatus($mysqlConn, $_POST['f']['eventId'], $kindId) ){
$meldungsBox .= "<div>Bereits gemeldet</div>";
}
else{
if( date("Y-m-d") > $wkEventData['meldefrist']){
$meldungsBox .= "<div>Die Meldefrist ist bereits abgelaufen!</div>";
}
else{
$meldungsBox .= "<button type=\"submit\" name=\"submit\">Melden</button>";
}
}
$meldungsBox .="</form></div>";
}
}
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!<br />";
}
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();
}
}
?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplaner - Meldung</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status; ?>
<hr />
<?php
if( isset($message['success']) ){
?>
<?php echo $userData['name'].", ".$userData['vorname'];?> zum Wettkampf <?php echo $wkEventData['Veranstaltung'];?> gemeldet!<br />
<?php
}
else{
echo htmlRetMessage($message);
}
?>
<?php if(isset($meldungsBox)) echo $meldungsBox;?>
<nav>
<ul>
<li>
<a href="./index.php">
<div>zur Übersicht zurück</div>
</a>
</li>
<?php
if( isset($message['success']) ){
?>
<li>
<a href="./showWkEvent.php?eventId=<?php echo $wkEventData['id'];?>">
<div>
<?php echo "Detailansicht ".$wkEventData['Veranstaltung'];?>
</div>
</a>
</li>
<?php
}
?>
</ul>
</nav>
<!--
<div style="border: solid black"><?php echo var_export($wkEventData, true);?></div>
<div style="border: solid black"><?php echo var_export($userData, true);?></div>
<div style="border: solid black"><?php echo var_export($_SESSION, true);?></div>
<div style="border: solid black"><?php echo var_export($_POST, true);?></div>
<div id="meldungsBox">
Manuelle Meldung
<ul>
<li>F&uuml;r Wettkampf: <?php echo isset($wkEventData['Veranstaltung']) ? mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8') : "<fehlende Wettkampfdaten>" ?></li>
<li>F&uuml;r Starter: <?php echo isset($userData['vorname']) ? mb_convert_encoding($userData['vorname'], 'UTF-8') : "<fehlender Vorname>" ?></li>
</ul>
<form action="./addStarterDev.php" method="post">
<fieldset>
<legend>Meldungsdaten</legend>
<div>
<label for="eventId">eventId</label>
<input type="text" name="f[eventId]" id="eventId" <?php echo isset($_POST['f']['eventId']) ? "value=\"".htmlspecialchars($_POST['f']['eventId'])."\"" : "" ?> />
</div>
<div>
<label for="userId">userId</label>
<input type="<?php echo isset($_POST['f']['userId']) ? "disabled" : "text" ?>" name="f[userId]" id="userId" <?php echo isset($_POST['f']['userId']) ? "value=\"".htmlspecialchars($_POST['f']['userId'])."\"" : "" ?> />
</div>
</fieldset>
<fieldset>
<div><button type="submit" name="submit" value="Meldung">Meldung</button></div>
</fieldset>
</form>
</div>
-->
</body>
</html>

View File

@@ -0,0 +1,6 @@
AuthType Basic
AuthName "wkParticipoAdministration"
AuthUserFile /users/cwsvjudo/www/.htusers
#AuthGroupFile /users/cwsvjudo/www/.htgroups
Require user marko
#Require group admin

View File

@@ -0,0 +1,164 @@
<?php
require_once('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
$message['notice'] = "";
$message['error'] = "";
$message['success'] = "";
$message['wkData'] = "";
$eventWkId = isset($_POST['f']['wkId']) ? $_POST['f']['wkId'] : "";
$eventMeldefrist = isset($_POST['f']['meldefrist']) ? $_POST['f']['meldefrist'] : "";
// echo $_POST['f']['wkId']; echo $eventWkId; echo $eventMeldefrist; die();
/// Abfrage Kommender Wettkämpfe
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if($mysqlConn->connect_error){
$message['notice'] .= "Datenbankverbindung zur Wettkampflistenabfrage fehlgeschlagen: " . $mysqli->connect_error ."<br />";
}
else{
$wkData = getCommingWk($mysqlConn);
$mysqlConn->close();
$message['wkData'] .="<ul>";
foreach($wkData as $wk){
$message['wkData'] .=
"<li>wkId: ".$wk['lfdeNr']."<ul>".
"<li>Datum:".$wk['Datum']."</li>".
"<li>Name:".$wk['Veranstaltung']."</li>".
"<li>AK:".$wk['Altersklassen']."</li>".
"<li><form method=\"post\"><input type=\"hidden\" name=\"f[wkId]\" id=\"wkId\" value=\"".htmlspecialchars($wk['lfdeNr'])."\" /><button>wkId übernehmen</button></form></li>".
"</ul></li>";
}
$message['wkData'] .="</ul><br />";
}
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!<br />";
// 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 ."<br />";
}
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 .")<br />";
}
else{
$eventWkResult = $mysqlResults->fetch_assoc();
$message['notice'] .= "<ul><li>".$eventWkResult['lfdeNr']."<ul>".
"<li>".$eventWkResult['Datum']."</li>".
"<li>".$eventWkResult['Veranstaltung']."</li>".
"<li>".$eventWkResult['Altersklassen']."</li>".
"</ul></li>".
"</ul>";
// $message['notice'] .= "eventWkDatum: ".$eventWkResult['Datum']."<br />";
$meldefrist = date(
"Y-m-d",
strtotime(
"last friday",
strtotime(
"last week",
strtotime( $eventWkResult['Datum'] )
)
)
);
// $message['notice'] .= "meldefrist: ".$meldefrist."<br />";
}
$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!".
"<ul>".
"<li><a href=\".\">Zum Adminbereich</a></li>".
"<li><a href=\"../\">Zum Wettkampfplaner</a></li>".
"</ul>";
// 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.";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>wkParticipo - addEvent.php</title>
<meta name="viewport" content="width=device-width" />
</head>
<body>
<form action="./addEvent.php" method="post">
<?php if ( $message['error'] != "" ): ?>
<fieldset class="error"><legend>Fehler</legend><?php echo $message['error'] ?></fieldset>
<?php endif;
if ( $message['success'] != "" ): ?>
<fieldset class="success"><legend>Erfolg</legend><?php echo $message['success'] ?></fieldset>
<?php endif;
if ( $message['notice'] != "" ): ?>
<fieldset class="notice"><legend>Hinweis</legend><?php echo $message['notice'] ?></fieldset>
<?php endif; ?>
<fieldset>
<legend>Eventdaten</legend>
<div><label for="wkId">wkId</label> <input type="text" name="f[wkId]" id="wkId"<?php echo isset($_POST['f']['wkId']) ? ' value="' . htmlspecialchars($_POST['f']['wkId']) . '"' : "";?> /></div>
<div>
<label for="meldefrist">meldefrist</label>
<input type="text" name="f[meldefrist]" id="meldefrist" <?php echo $meldefrist != "" ? "value=\"".htmlspecialchars($meldefrist)."\" " : "";?> />
</div>
</fieldset>
<fieldset>
<button>Erstellen</button>
</fieldset>
</form>
<?php if ( $message['wkData'] != "" ): ?>
<fieldset class="wkData"><legend>wkData</legend><?php echo $message['wkData'] ?></fieldset>
<?php endif; ?>
</body>
</html>

View File

@@ -0,0 +1,34 @@
<?php
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
if(!empty($_POST)){
if( empty($_POST['f']['fahrtId']) || empty($_POST['f']['starterId']) ){
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
}
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 = addMitfahrerToFahrt($mysqli, $_POST['f']['starterId'], $_POST['f']['fahrtId']);
$mysqli->close();
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Wettkampfplanung - Administration - Hinzufügen eines Mitfahrers</title>
</head>
<body>
<?php echo htmlRetMessage($message);?>
<a href ="./listEvents.php">Zur Eventliste</a>
</body>
</html>

View File

@@ -0,0 +1,198 @@
<?php
require_once('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
// $meldungsBox = array();
if( empty($_POST) ){
$message['error'] .= "Weder userId noch eventId übergeben!";
}
else{
if( !isset($_POST['f']['eventId']) ){
$message['error'] .= "Fehlende eventId (".$_POST['f']['eventId'].") (POST: ".var_export($_POST, true).")<br />";
}
if( !isset($_POST['f']['type']) ){
$message['error'] .= "Fehlender type (".$_POST['f']['type'].") (POST: ".var_export($_POST, true).")<br />";
}
else{
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$message['error'] .= "Datenbankverbindung fehlgeschlagen: ".$mysqlConn->connect_error."<br /";
}
else{
$wkEventData = getEventData($mysqlConn, $_POST['f']['eventId']);
if( date("Y-m-d") > $wkEventData['meldefrist']){
$message['error'] .= "Die Meldefrist ist bereits abgelaufen!<br />";
}
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!<br />";
}
$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!<br />";
}
if($mysqlConn->affected_rows != 1) $message['warning'] .= "Nicht eindeutige userId!<br />";
$kindDaten = $kinderDaten->fetch_array();
$meldungsBox =
"<div id=\"meldungsBox\">Meldung".
"<ul>".
"<li>F&uuml;r Wettkampf: ".mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1')."</li>".
"<li>F&uuml;r Starter: ".mb_convert_encoding($kindDaten['name'], 'UTF-8', 'ISO-8859-1').", ".mb_convert_encoding($kindDaten['vorname'], 'UTF-8', 'ISO-8859-1')."</li>".
"</ul>".
"<form action=\"./addStarter.php\" method=\"post\">".
"<input type=\"hidden\" name=\"f[eventId]\" id=\"eventId\"".(isset($_POST['f']['eventId']) ? " value=\"" . htmlspecialchars($_POST['f']['eventId']) . "\"" : "")." />".
"<input type=\"hidden\" name=\"f[userId]\" id=\"userId\"".(isset($kindId) ? " value=\"".htmlspecialchars($kindId)."\"" : "")." />".
"<select name=\"f[type]\"><option value=\"1\" selected>als Starter</option><option value=\"2\">als Zuschauer</option><option value=\"3\">keine Teilnahme</option></select>";
if( getUsersMeldeStatus($mysqlConn, $_POST['f']['eventId'], $kindId) ){
$meldungsBox .= "<div>Bereits gemeldet</div>";
}
else{
if( date("Y-m-d") > $wkEventData['meldefrist']){
$meldungsBox .= "<div>Die Meldefrist ist bereits abgelaufen!</div>";
}
else{
$meldungsBox .= "<button type=\"submit\" name=\"submit\">Melden</button>";
}
}
$meldungsBox .="</form></div>";
}
}
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!<br />";
// }
// 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();
}
}
}
?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplaner - Meldung</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status; ?>
<hr />
<?php
if( isset($message['success']) ){
?>
<?php echo $userData['name'].", ".$userData['vorname'];?> zum Wettkampf <?php echo $wkEventData['Veranstaltung'];?> gemeldet!<br />
<?php
}
else{
echo htmlRetMessage($message);
}
?>
<?php if(isset($meldungsBox)) echo $meldungsBox;?>
<nav>
<ul>
<li>
<a href="./index.php">
<div>zur Übersicht zurück</div>
</a>
</li>
<?php
if( isset($message['success']) ){
?>
<li>
<a href="./showWkEvent.php?eventId=<?php echo $wkEventData['id'];?>">
<div>
<?php echo "Detailansicht ".$wkEventData['Veranstaltung'];?>
</div>
</a>
</li>
<?php
}
?>
</ul>
</nav>
<!--
<div style="border: solid black"><?php echo var_export($wkEventData, true);?></div>
<div style="border: solid black"><?php echo var_export($userData, true);?></div>
<div style="border: solid black"><?php echo var_export($_SESSION, true);?></div>
<div style="border: solid black"><?php echo var_export($_POST, true);?></div>
<div id="meldungsBox">
Manuelle Meldung
<ul>
<li>F&uuml;r Wettkampf: <?php echo isset($wkEventData['Veranstaltung']) ? mb_convert_encoding($wkEventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1') : "<fehlende Wettkampfdaten>" ?></li>
<li>F&uuml;r Starter: <?php echo isset($userData['vorname']) ? mb_convert_encoding($userData['vorname'], 'UTF-8', 'ISO-8859-1') : "<fehlender Vorname>" ?></li>
</ul>
<form action="./addStarterDev.php" method="post">
<fieldset>
<legend>Meldungsdaten</legend>
<div>
<label for="eventId">eventId</label>
<input type="text" name="f[eventId]" id="eventId" <?php echo isset($_POST['f']['eventId']) ? "value=\"".htmlspecialchars($_POST['f']['eventId'])."\"" : "" ?> />
</div>
<div>
<label for="userId">userId</label>
<input type="<?php echo isset($_POST['f']['userId']) ? "disabled" : "text" ?>" name="f[userId]" id="userId" <?php echo isset($_POST['f']['userId']) ? "value=\"".htmlspecialchars($_POST['f']['userId'])."\"" : "" ?> />
</div>
</fieldset>
<fieldset>
<div><button type="submit" name="submit" value="Meldung">Meldung</button></div>
</fieldset>
</form>
</div>
-->
</body>
</html>

View File

@@ -0,0 +1,64 @@
<?php
require_once('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
if( empty($_POST) ){
$message['error'] = "Leeres POST!";
}
else{
if( empty($_POST['f']['adminFunction']) ){
$message['error'] = "Keine Funktion angegeben!";
}
else{
switch($_POST['f']['adminFunction']){
case "createStarterForEvent":
if( empty($_POST['f']['eventId']) or empty($_POST['f']['userId']) or empty($_POST['f']['type']) ){
$message['error'] .= "Nicht gePOSTete eventId oder userId oder typeID<br />";
}
else{
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->connect_error) {
$message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error . "</br>";
}
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<br />";
}
else{
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->connect_error) {
$message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error . "</br>";
}
else{
$message = updateStarterErgebnis($mysqli, $_POST['f']['starterId'], $_POST['f']['masse'], $_POST['f']['platzierungen']);
$mysqli->close();
}
}
break;
default:
$message['error'] .= "unbekannte Funktion ".$_POST['f']['adminFunction']."</br>";
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Wettkampfplanung - Administration - adminFunctions</title>
</head>
<body>
<?php echo htmlRetMessage($message);?>
<a href ="./listEvents.php">Zur Eventliste</a>
</body>
</html>

View File

@@ -0,0 +1,38 @@
<?php
require_once( $_SERVER['DOCUMENT_ROOT'].'/ressourcen/phpLib/miscAssis.php');
function wkParticipo_admin_createStarterForEvent($aMySqlConn, $anEventId, $anUserId, $aTypeId){
$retMessage = array();
if(!is_positive_integer($anEventId)) $message['error'] .= "ungültige eventID '".$anEventId."'<br />";
if(!is_positive_integer($anUserId)) $message['error'] .= "ungültige userID '".$anUserId."'<br />";
if(!in_array($anUserId, array(0,1,2))) $message['error'] .= "ungültige typeID '".$aTypeId."'<br />";
if(!$aMySqlConn->ping()) $message['error'] .= "ungültige mySqlConn ".$mysqli->error."</ br>";
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<br />";
}
else{
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->connect_error) {
$message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error . "</br>";
}
else{
$message = updateStarterErgebnis($mysqli, $_POST['f']['starterId'], $_POST['f']['masse'], $_POST['f']['platzierungen']);
$mysqli->close();
}
}
break;
default:
$message['error'] .= "unbekannte Funktion ".$_POST['f']['adminFunction']."</br>";
?>

View File

@@ -0,0 +1,55 @@
<?php
require_once('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
$starterInfo = array();
if(!empty($_POST)){
if( empty($_POST['f']['starterId']) ){
$message['error'] .= 'ERR: Fehlende starterId!';
}
else{
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->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!<br />";
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.';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Wettkampfplaner - Ergebnismeldung</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo htmlRetMessage($message); ?>
<?php print_r($starterInfo); ?>
<?php print_r($_POST); ?>
<div id="meldungsBox">
<form action="./adminUpdateStarterErgebnis.php" method="post">
<input type="hidden" name="f[starterId]" id="starterId"<?php echo isset($_POST['f']['starterId']) ? ' value="' . htmlspecialchars($_POST['f']['starterId']) . '"' : '' ?> />
Masse: <input type="text" name="f[masse]">
Platzierungen: <input type="text" name="f[platzierungen]">
<button type="submit" name="submit">Ergebnis eintragen</button>
</form>
</div>
<div><a href="./listEvents.php">Zur&uuml;ck zur &Uuml;bersicht</a></div>
</body>
</html>

View File

@@ -0,0 +1,23 @@
<?php
/// Die Basisdomain, unter der die Hauptseite zu erreichen ist
$baseDomain = "cwsvjudo.bplaced.net";
/// Subdomain, unter dem dieses Verzeichnis zu finden ist (falls der Fall gegeben ist)
$subDomain = "";
/// Basis(/Root)-Verzeichnis auf dem Server (für Dateizugriffe, insbesondere phpIncludes)
$basePath = "/users/cwsvjudo/www";
/// scheme-Part der URL (das Protokol)
$urlScheme = "http";
/// Url zum Zugriff auf "shared Data" unter der Hauptadresse
$baseUrl = $urlScheme."://".$baseDomain;
/// Die kanonische Url dieses Verzeichnisses (unter welcher
/// Domainadresse die Seiten dieses Verzeichnisses bevorzugt zu
/// erreichen seien sollen, also entweder eine SubdomainUrl, oder die
/// baseUrl mit dem Verzeichnis angehängt) evtl. Pfade müssen noch
/// angehangen werden.
/// Achtung: Gedacht für eine einheitliche Bezeichnung bei internem
/// Verlinken. Der canonicalLink im Header ist bei ampSeiten nicht die
/// eigene Adresse, sondern die (kanonische) Adresse der "normalen"
/// Version der Seite.
$canonicalUrlBase = $urlScheme."://".$subDomain.(!empty($subDomain)?".":"").$baseDomain;
?>

View File

@@ -0,0 +1,23 @@
<?php
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Registersystem - index.php</title>
</head>
<body>
<?php echo $login_status; ?>
<h1>Inhalt</h1>
<p><a href="./register.php">Neuen Benutzer anlegen.</a></p>
<p><a href="./addEvent.php">Neuen Event anlegen.</a></p>
<p><a href="./listUsers.php">User anzeigen.</a></p>
<p><a href="./listEvents.php">Events anzeigen.</a></p>
</body>
</html>

View File

@@ -0,0 +1,58 @@
<?php
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplanung - Administration - eventList</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<?php
echo $login_status;
?>
<a class="touchLink" href="./index.php"><div>Zum Adminbereich zurück</div></a>
<hr />
<?php
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->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']);
?>
<div class="wkBox">
[<?php echo $event['id']?>] -- <?php echo mb_convert_encoding($wkData['Veranstaltung'], 'UTF-8', 'ISO-8859-1');?>
<ul>
<li>Meldefrist: <?php echo $event['meldefrist'];?></li>
<li>Datum: <?php echo $wkData['Datum'];?></li>
<li>Altersklassen: <?php echo mb_convert_encoding($wkData['Altersklassen'],'UTF-8');?></li>
<li><?php echo $event['wkId'];?></li>
</ul>
<form action="./showEvent.php" method="post">
<input type="hidden" name="f[eventId]" value="<?php echo (isset( $event['id'] ) ? $event['id'] : "");?>" />
<button type="submit">Event ansehen</button>
</form>
</div>
<hr />
<?php
}
?>
</ul>
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = "Wettkampfplanung - Administration - eventList";
$chCounter_visible=0;
//include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');?>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<?php
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplanung - Administration - userList</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<?php
echo $login_status;
?>
<a class="touchLink" href="./index.php"><div>Zum Adminbereich zurück</div></a>
<hr />
<?php
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->connect_error) {
$message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
echo $message['error']; die();
}
$userList = getAllUsers($mysqli);
foreach($userList as $user){
?>
<div class=wkBox">
<ul>
<li>UserId: <?php echo $user['id']?></li>
<li>loginName: <?php echo $user['loginName']?></li>
<li>name: <?php echo $user['name']?></li>
<li>vorname: <?php echo $user['vorname']?></li>
<li>gebDatum: <?php echo $user['gebDatum']?></li>
<li>kinder: <?php echo $user['kinder']?></li>
<li>eltern: <?php echo $user['eltern']?></li>
<li>eMail: <?php echo $user['eMail']?></li>
<li>Debug: <ul><?php foreach($user as $key=>$value) echo("<li>".$key.": ".$value."</li>");?></ul></li>
</ul>
<form action="./showUser.php" method="post">
<input type="hidden" name="f[userId]" value="<?php echo (isset( $user['id'] ) ? $user['id'] : "");?>" />
<button type="submit">User ansehen</button>
</form>
</div>
<hr />
<?php
}
?>
</ul>
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = "Wettkampfplanung - Administration - userList";
$chCounter_visible=0;
//include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');?>
</body>
</html>

View File

@@ -0,0 +1,123 @@
<?php
require_once('config.inc.php');
require_once('../local/wkParticipoConf.php.inc');
// require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
try{
// Verbinding mit der Datenbank herstellen
$mysqlConn = new PDO('mysql:host='.$db_server.';dbname='.$db_name, $db_user, $db_password);
$queryForEmailAdresses =
"SELECT eMail from cwsvjudo.wkParticipo_Users ".
"WHERE kinder IS NOT NULL AND attribute LIKE '%wantsNewsletter=true%';";
$eMailErgebnis = $mysqlConn->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() . "<br/>";
die();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>wkParticipo -Adminbereich - Newslettertest</title>
</head>
<body>
<?php
// Überschreiben der eMailAdressen für DebuggingZwecke
// $eMailAdresses = array( array('eMail' => "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!";
}
?>
<div style="border: 1px black;">
<?php echo $newsletter['message'];?>
</div>
</body>
</html>

View File

@@ -0,0 +1,91 @@
<?php
require('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
$message = array();
if (!empty($_POST)){
if ( empty($_POST['f']['username']) ){
$message['error'] = "Es muss ein Benutzername angegeben werden!";
}
else{
if ($_POST['f']['password'] != $_POST['f']['password_again']) {
$message['error'] = "Die eingegebenen Passwörter stimmen nicht überein.";
}
else{
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->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, <a href=\"login.php\">weiter zur Anmeldung</a>.";
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.";
}
?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>loginsystem - register.php</title>
</head>
<body>
<form action="./register.php" method="post">
<?php if (isset($message['error'])): ?>
<fieldset class="error"><legend>Fehler</legend><?php echo $message['error'] ?></fieldset>
<?php endif;
if (isset($message['success'])): ?>
<fieldset class="success"><legend>Erfolg</legend><?php echo $message['success'] ?></fieldset>
<?php endif;
if (isset($message['notice'])): ?>
<fieldset class="notice"><legend>Hinweis</legend><?php echo $message['notice'] ?></fieldset>
<?php endif; ?>
<fieldset>
<legend>Benutzerdaten</legend>
<div><label for="username">Benutzername</label> <input type="text" name="f[username]" id="username"<?php echo isset($_POST['f']['username']) ? ' value="' . htmlspecialchars($_POST['f']['username']) . '"' : '' ?> /></div>
<div><label for="password">Kennwort</label> <input type="password" name="f[password]" id="password" /></div>
<div><label for="password_again">Kennwort wiederholen</label> <input type="password" name="f[password_again]" id="password_again" /></div>
</fieldset>
<fieldset>
<div><input type="submit" name="submit" value="Registrieren" /></div>
</fieldset>
</form>
</body>
</html>

View File

@@ -0,0 +1,106 @@
<?php
require('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if($mysqlConn->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.<br />";
}
else{
if($_POST['f']['newPassword'] != $_POST['f']['newPasswordAgain']){
$message['error'] .= "Das neue Passwort stimmt nicht mit seiner Kontrolleingabe überein! Vertippt?<br />";
}
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!<br /><nav><ul><li><a href=\"./index.php\"><div>Zur Übersichtsseite</div></a></li></ul></nav><br />";
}
else{
$message['error'] .= "Fehler beim Neusetzen des Passwortes: ".$mysqlConn->error."<br />";
}
}// Ende des Schleifenzweiges: Neusetzen des Passwortes
}// Ende des Schleifenzweiges: fehlende Eingaben
}// Ende des Schleifenzweiges: leeres POST
$mysqlConn->close();
}// Ende des Schleifenzweiges: Datenbankverbindung erfolgreich
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Passwortänderung</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status;?>
<?php echo htmlRetMessage($message);?>
<nav>
<ul>
<li>
<a href="./index.php">
<div>Zur Übersichtsseite</div>
</a>
</li>
<li>
<a href="./userInfo.php">
<div>
Zur Benutzerübersichtsseite
</div>
</a>
</li>
</ul>
</nav>
<h1>Passwortänderung</h1>
Im folgenden Formular kann das Passwort geändert werden. Man sollte darauf achten, dass man beim <a href="https://www.bsi-fuer-buerger.de/BSIFB/DE/Empfehlungen/Passwoerter/Umgang/umgang_node.html">Umgang mit Passwörtern</a> die nötige Vorsicht walten lässt.
<form action="./resetPassword.php" method="post">
<fieldset>
<legend>Neues Passwort vergeben</legend>
<div>
<label for="userId">userId</label>
<input type="userId" name="f[userId]" id="userId" value="<?php echo( $_POST['f']['userId'] );?>" />
</div>
<div>
<label for="newPassword">neues Passwort</label>
<input type="password" name="f[newPassword]" id="newPassword" />
</div>
<div>
<label for="newPasswordAgain">neues Passwort wiederholen</label>
<input type="password" name="f[newPasswordAgain]" id="newPasswordAgain" />
</div>
</fieldset>
<fieldset>
<div><button type="submit">Passwort neu setzen</button></div>
</fieldset>
</form>
</body>
</html>

View File

@@ -0,0 +1,35 @@
<?php
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
if(!empty($_POST)){
if( empty($_POST['f']['eventId']) ){
print_r($_POST);
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
}
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 = reseteMitfahrer($mysqli, $_POST['f']['eventId']);
$mysqli->close();
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Wettkampfplanung - Administration - Reseten der Mitfahrer</title>
</head>
<body>
<?php echo htmlRetMessage($message);?>
<a href ="./listEvents.php">Zur Eventliste</a>
</body>
</html>

View File

@@ -0,0 +1,228 @@
<?php
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
$eventData = array();
if(empty($_POST)){
$message['error'] = "Fehler: leeres POST!";
}
else{
if( empty($_POST['f']['eventId']) ){
$message['error'] = "Fehler: keine eventId gefunden! <a href=\"./listEvents.php\">zur Eventübersicht</a>";
}
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'].")";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplanung - Administration - Eventdetails</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<?php
echo $login_status;
?>
<a class="touchLink" href="./listEvents.php"><div>Zur Eventliste zurück</div></a>
<a class="touchLink" href="./index.php"><div>Zum Adminbereich zurück</div></a>
<?php
if( empty($eventData) ){
if( !empty($message['error']) ){
echo "<p>".$message['error']."</p>\n";
}
}
else{
?>
<h2>Eventdaten</h2>
<div class=wkBox">
<ul>
<li>EventId: <?php echo $eventData['id']?></li>
<li>wkId: <?php echo $eventData['wkId']?></li>
<li>Meldefrist: <?php echo $eventData['meldefrist']?></li>
</ul>
</div>
<?php
$wkData = array();
if( (string)(int)$eventData['wkId'] == $eventData['wkId'] ){
$wkData = getWkData($mysqli, $eventData['wkId']);
}
else echo "<li>Fehler: wkId \"".$eventData['wkId']."\" scheint kein Int zu sein!</li>";
?>
<h2>Wettkampfdaten:</h2>
<?php
if( empty($wkData) )
echo "<li>Fehler: Wettkampf mit Id ".$eventData['wkId']." nicht gefunden!</li>";
else{
?>
<ul>
<li>wkId: <?php echo $wkData['lfdeNr'] ?></li>
<li>Datum: <?php echo $wkData['Datum'] ?></li>
<li>wkName: <?php echo mb_convert_encoding($wkData['Veranstaltung'], 'UTF-8', 'ISO-8859-1');?></li>
<li>AK: <?php echo mb_convert_encoding($wkData['Altersklassen'], 'UTF-8', 'ISO-8859-1');?></li>
<li>Ort: <?php echo mb_convert_encoding($wkData['Ort'], 'UTF-8', 'ISO-8859-1');?></li>
<li><a href="<?php echo $wkData['Ausschreibung'] ?>">Ausschreibung</a></li>
<li><a href="<?php echo $wkData['Routenplaner'] ?>">Routenplaner</a></li>
<li>Galerie: <?php echo $wkData['galleryLink'] ?></li>
<li>PromoPic: <?php echo $wkData['promoPic'] ?></li>
</ul>
<form action="./verteileMitfahrer.php" method="post">
<input type="hidden" name="f[eventId]" value="<?php echo (isset( $eventData['id'] ) ? $eventData['id'] : "");?>" />
<button type="submit">Mitfahrer verteilen</button>
</form>
<form action="./reseteMitfahrer.php" method="post">
<input type="hidden" name="f[eventId]" value="<?php echo (isset( $eventData['id'] ) ? $eventData['id'] : "");?>" />
<button type="submit">Mitfahrer reseten</button>
</form>
<?php
}
// $starterData = array();
// if( (string)(int)$eventData['id'] == $eventData['id'] ){
// $starterData = getStarterForEvent($mysqli, $eventData['id']);
// }
// else echo "<li>Fehler: eventId \"".$eventData['id']."\" scheint kein Int zu sein!</li>";
?>
<h2>Starter:</h2>
<ul>
<?php
if( empty($starterData) )
echo "<li>Keine Starter für diesen Wettkampf</li>";
else{
?>
<?php
foreach( $startTyp as $typeKey=>$typeValue ){
echo("<h3>".$typeValue."</h3>");
foreach( $starterData as $starter ){
if($starter['type'] != $typeKey) continue;
$userData = getUserData($mysqli, $starter['userId']);
?>
<li>[<?php echo $starter['id'] ?>] -- <?php echo mb_convert_encoding($userData['name'], 'UTF-8', 'ISO-8859-1');?>, <?php echo mb_convert_encoding($userData['vorname'], 'UTF-8', 'ISO-8859-1');?>
<ul>
<li>eventId: <?php echo $starter['eventId'] ?></li>
<li>userId: <?php echo $starter['userId'] ?></li>
<li>type: <?php echo($startTyp[$starter['type']]);?></li>
<li>fahrtId: <?php echo $starter['fahrtId']; ?></li>
<li>
<?php
if(empty($starter['fahrtId'])){
//$fahrten = array();
//$fahrten = getFahrtenForEvent($mysqli, $starter['eventId']);
if(empty($fahrten)){
?>
Keine Fahrten für dieses Event gemeldet!
<?php
}
else{
foreach($fahrten as $fahrt){
?>
<form action="./addMitfahrer.php" method="post">
<input type="hidden" name="f[fahrtId]" value="<?php echo (isset( $fahrt['id'] ) ? $fahrt['id'] : ""); ?>" />
<input type="hidden" name="f[starterId]" value="<?php echo (isset( $starter['id'] ) ? $starter['id'] : ""); ?>" />
<button type="submit">Bei <?php $user = getUserData($mysqli, $fahrt['fahrerId']); echo mb_convert_encoding($user['name'], 'UTF-8', 'ISO-8859-1').", ".mb_convert_encoding($user['vorname'], 'UTF-8', 'ISO-8859-1')." (fahrtId ".$fahrt['id'].")";?> mitfahren lassen</button>
</form>
<?php
}
}
}
else{
?>
Mitfahrt bei fahrtId "<?php echo $starter['fahrtId'];?>"
<?php
}
?>
</li>
<li>Masse: <?php echo $starter['masse'] ?></li>
<li>Platzierung: <?php echo $starter['platz'] ?></li>
</ul>
<form action="./adminUpdateStarterErgebnis.php" method="post">
<input type="hidden" name="f[starterId]" value="<?php echo (isset( $starter['id'] ) ? $starter['id'] : ""); ?>" />
<button>Ergebnis eintragen</button>
</form>
</li>
<?php
}
}
?>
</ul>
<?php
}
// $fahrtenData = array();
// $fahrtenData = getFahrtenForEvent($mysqli, $eventData['id']);
?>
<h2>Fahrten:</h2>
<ul>
<?php
if( empty($fahrtenData) )
echo "<li>Keine Fahrten für dieses Event</li>";
else{
foreach( $fahrtenData as $fahrt ){
$fahrerData = getUserData($mysqli, $fahrt['fahrerId']);
?>
<li>[<?php echo $fahrt['id'] ?>] -- <?php echo mb_convert_encoding($fahrerData['name'], 'UTF-8', 'ISO-8859-1');?>, <?php echo mb_convert_encoding($fahrerData['vorname'], 'UTF-8', 'ISO-8859-1');?>
<ul>
<li>EventId: <?php echo $fahrt['eventId'] ?></li>
<li>FahrerId: <?php echo $fahrt['fahrerId'] ?></li>
<li>AnzPlätze: <?php echo $fahrt['plaetze'] ?></li>
<li>MitfahrerIds: <?php echo $fahrt['mitfahrer'] ?></li>
</ul>
</li>
<?php
}
}
?>
</ul>
<?php
$users = array();
$users = getUsers($mysqli);
?>
<h2>Starter einschreiben:</h2>
<?php
if( empty($users) )
echo "<li>Keine User gefunden</li>";
else{
foreach( $users as $user ){
?>
<form action="./adminFunctions.php" method="post">
<input type="hidden" name="f[adminFunction]" value="createStarterForEvent" />
<input type="hidden" name="f[eventId]" value="<?php echo (isset( $eventData['id'] ) ? $eventData['id'] : "");?>" />
<input type="hidden" name="f[userId]" value="<?php echo $user['id'];?>" />
<select name="f[type]"><option value="1" selected>als Starter</option><option value="2">als Zuschauer</option><option value="3">keine Teilnahme</option></select>
<button type="submit"><?php echo mb_convert_encoding($user['vorname'], 'UTF-8', 'ISO-8859-1')." ".mb_convert_encoding($user['name'], 'UTF-8', 'ISO-8859-1');?></button>
</form>
<hr />
<?php
}
}
$mysqli->close();
}
?>
</body>
</html>

View File

@@ -0,0 +1,204 @@
<?php
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
$fahrt = array();
$event =array();
$wk = array();
if( !empty($_POST) ){
if( empty($_POST['f']['fahrtId']) ){
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if($mysqli->connect_error){
$message['error'] .= "Datenbankverbindung fehlgeschlagen: " . $mysqli->connect_error . "<br/>";
}
$fahrt = getFahrtData($mysqli, $_POST['f']['fahrtId']);
if( empty($fahrt) ){
$message['error'] .= "fahrtId \"".$_POST['f']['fahrtId']."\" nicht gefunden <br />";
}
else{
$event = getEventData($mysqli, $fahrt['eventId']);
if( empty($event) ){
$message['error'] .= "eventId \"".$fahrt['eventId']."\" nicht gefunden <br />";
}
else{
$wk = getWkData($mysqli, $event['wkId']);
if( empty($wk) ){
$message['error'] .= "wkId \"".$event['wkId']."\" nicht gefunden <br />";
}
}
}
}
}
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! <a href=\"./listEvents.php\">zur Eventübersicht</a>";
}
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'].")";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Wettkampfplanung - Administration - Eventdetails</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<?php
echo $login_status;
if( empty($eventData) ){
if( !empty($message['error']) ){
echo "<p>".$message['error']."</p>\n";
}
}
else{
?>
<ul>
<li><?php echo $eventData['id']?></li>
<li><?php echo $eventData['wkId']?></li>
<li><?php echo $eventData['meldefrist']?></li>
<?php
$wkData = array();
if( (string)(int)$eventData['wkId'] == $eventData['wkId'] ){
$wkData = getWkData($mysqli, $eventData['wkId']);
}
else echo "<li>Fehler: wkId \"".$eventData['wkId']."\" scheint kein Int zu sein!</li>";
?>
<li>Wettkampfdaten:<ul>
<?php if( empty($wkData) )
echo "<li>Fehler: Wettkampf mit Id ".$eventData['wkId']." nicht gefunden!</li>";
else{
?>
<li>wkId: <?php echo $wkData['lfdeNr'] ?></li>
<li>Datum: <?php echo $wkData['Datum'] ?></li>
<li><?php echo $wkData['Veranstaltung'] ?></li>
<li><?php echo $wkData['Altersklassen'] ?></li>
<li><?php echo $wkData['Ort'] ?></li>
<li><?php echo $wkData['Ausschreibung'] ?></li>
<li><?php echo $wkData['Routenplaner'] ?></li>
<li>Galerie: <?php echo $wkData['galleryLink'] ?></li>
<li>PromoPic: <?php echo $wkData['promoPic'] ?></li>
<?php
}
?>
</ul></li>
<?php
$starterData = array();
if( (string)(int)$eventData['id'] == $eventData['id'] ){
$starterData = getStarterForEvent($mysqli, $eventData['id']);
}
else echo "<li>Fehler: eventId \"".$eventData['id']."\" scheint kein Int zu sein!</li>";
?>
<li>Starter:<ul>
<?php if( empty($starterData) )
echo "<li>Keine Starter für diesen Wettkampf</li>";
else{
foreach( $starterData as $starter ){
$userData = getUserData($mysqli, $starter['userId']);
?>
<li>[<?php echo $starter['id'] ?>] -- <?php echo $userData['name']?>, <?php echo $userData['vorname']?><ul>
<li>eventId: <?php echo $starter['eventId'] ?></li>
<li>userId: <?php echo $starter['userId'] ?></li>
<li>fahrtId: <?php echo $starter['fahrtId']; ?></li>
<li>
<?php
if(empty($starter['fahrtId'])){
$fahrten = array();
$fahrten = getFahrtenForEvent($mysqli, $starter['eventId']);
if(empty($fahrten)){
?>
Keine Fahrten für dieses Event gemeldet!
<?php
}
else{
foreach($fahrten as $fahrt){
?>
<form action="./addMitfahrer.php" method="post">
<input type="hidden" name="f[fahrtId]" value="<?php echo (isset( $fahrt['id'] ) ? $fahrt['id'] : ""); ?>" />
<input type="hidden" name="f[starterId]" value="<?php echo (isset( $starter['id'] ) ? $starter['id'] : ""); ?>" />
<button type="submit">Bei User "<?php echo (isset( $fahrt['fahrerId'] ) ? $fahrt['fahrerId'] : "");?>" mitfahren lassen</button>
</form>
<?php
}
}
}
else{
?>
Mitfahrt bei fahrtId "<?php echo $starter['fahrtId'];?>"
<?php
}
?>
</li>
<li>Masse: <?php echo $starter['masse'] ?></li>
<li>Platzierung: <?php echo $starter['platz'] ?></li>
</ul></li>
<?php
}
?>
<?php
}
?>
</ul></li>
<?php
$fahrtenData = array();
$fahrtenData = getFahrtenForEvent($mysqli, $eventData['id']);
?>
<li>Fahrten:<ul>
<?php if( empty($fahrtenData) )
echo "<li>Keine Fahrten für dieses Event</li>";
else{
foreach( $fahrtenData as $fahrt ){
$fahrerData = getUserData($mysqli, $fahrt['fahrerId']);
?>
<li>[<?php echo $fahrt['id'] ?>] -- <?php echo $fahrerData['name']?>, <?php echo $fahrerData['vorname']?><ul>
<li><?php echo $fahrt['eventId'] ?></li>
<li><?php echo $fahrt['fahrerId'] ?></li>
<li><?php echo $fahrt['plaetze'] ?></li>
<li><?php echo $fahrt['mitfahrer'] ?></li>
</ul></li>
<?php
}
?>
<?php
}
?>
</ul></li>
</ul>
<?php
$mysqli->close();
}
?>
<a href ="./listEvents.php">Zur Eventliste</a>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<?php
require_once('../local/wkParticipoConf.php.inc');
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
$eventData = array();
if(empty($_POST)){
$message['error'] = "Fehler: leeres POST!";
}
else{
if( empty($_POST['f']['userId']) ){
$message['error'] = "Fehler: keine userId gefunden! <a href=\"./listUsers.php\">zur Userübersicht</a>";
}
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'].")";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplanung - Administration - Userdetails</title>
<link rel="stylesheet" href="../style.css">
</head>
<body>
<?php
echo $login_status;
?>
<a class="touchLink" href="./listUsers.php"><div>Zur Userliste zurück</div></a>
<a class="touchLink" href="./index.php"><div>Zum Adminbereich zurück</div></a>
<?php
if( empty($userData) ){
if( !empty($message['error']) ){
echo "<p>".$message['error']."</p>\n";
}
}
else{
?>
<h2>Userdaten</h2>
<div class=wkBox">
<ul>
<li>UserId: <?php echo $userData['id']?></li>
<li>loginName: <?php echo $userData['loginName']?></li>
<li>name: <?php echo $userData['name']?></li>
<li>vorname: <?php echo $userData['vorname']?></li>
<li>gebDatum: <?php echo $userData['gebDatum']?></li>
<li>kinder: <?php echo $userData['kinder']?></li>
<li>eltern: <?php echo $userData['eltern']?></li>
<li>eMail: <?php echo $userData['eMail']?></li>
<li>
<form action="./resetPassword.php" method="post">
<input type="hidden" name="f[userId]" id="userId" <?php echo( "value=".$userData['id'])?> />
<button class="touchButton" type="submit" name="submit">Passwort neu setzen</button>
</form>
</li>
</ul>
</div>
<h2>kinderDaten</h2>
<?php
$kinderDaten = getUsersKidsData($mysqli, $userData['id']);
foreach($kinderDaten as $kind){
?>
<div class=wkBox">
<ul>
<li>UserId: <?php echo $kind['id']?></li>
<li>loginName: <?php echo $kind['loginName']?></li>
<li>name: <?php echo $kind['name']?></li>
<li>vorname: <?php echo $kind['vorname']?></li>
<li>gebDatum: <?php echo $kind['gebDatum']?></li>
<li>kinder: <?php echo $kind['kinder']?></li>
<li>eltern: <?php echo $kind['eltern']?></li>
<li>eMail: <?php echo $kind['eMail']?></li>
</ul>
</div>
<?php
}
}
?>
</body>
</html>

View File

@@ -0,0 +1,35 @@
<?php
require_once('../auth.php');
require_once('../local/db.php.inc');
require_once('../local/wkParticipoConf.php.inc');
require_once('../lib/wkParticipoLib.php.inc');
$message = array();
if(!empty($_POST)){
if( empty($_POST['f']['eventId']) ){
print_r($_POST);
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
}
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 = verteileMitfahrer($mysqli, $_POST['f']['eventId']);
$mysqli->close();
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Wettkampfplanung - Administration - Verteilen der Mitfahrer</title>
</head>
<body>
<?php echo htmlRetMessage($message);?>
<a href ="./listEvents.php">Zur Eventliste</a>
</body>
</html>

View File

@@ -0,0 +1,17 @@
<?php
session_start();
session_regenerate_id();
// Falls der serverseitige Logincookie nicht gesetzt ist, leite zur
if (empty($_SESSION['login'])) {
header('Location: http://' . $_SERVER['HTTP_HOST'] . $wkParticipoConf['rootDir'] . '/login.php', TRUE, 301);
exit;
} else {
$login_status =
"<div style=\"border: 1px solid black\">".
"Datum: ".date("Y-m-d")."<br />".
"Sie sind als <strong>".htmlspecialchars($_SESSION['user']['username'])."</strong> angemeldet.<br />".
"<a href=\"./logout.php\">Sitzung beenden</a>".
"</div>";
//<div style=\"border: 1px solid black\">".var_export($_SESSION, true)."</div>";
}
?>

View File

@@ -0,0 +1,35 @@
<?php
session_start();
session_regenerate_id();
// Falls der serverseitige Logincookie nicht gesetzt ist, leite zur
if (empty($_SESSION['login'])){
// header('Location: http://' . $_SERVER['HTTP_HOST'] . $wkParticipoConf['rootDir'] . '/login.php', TRUE, 301);
$login_status .=
"<form class=\"loginForm\" action=\"./login.php\" method=\"post\">".
"<fieldset>".
"<legend>Login</legend>".
"<div>".
"<div>".
"<label for=\"username\">Benutzername</label>".
"<input type=\"text\" name=\"f[username]\" id=\"username\"".(!empty($_POST['f']['username']) ? (" value=\"" . htmlspecialchars($_POST['f']['username']) . "\" ") : "")."/>".
"</div>".
"<div>".
"<label for=\"password\">Kennnwort</label>".
"<input type=\"password\" name=\"f[password]\" id=\"password\" />
</div>".
"<hr />".
"<div>".
"<button type=\"submit\" name=\"submit\">Einloggen</button>
</div>".
"</div>".
"</fieldset>".
"</form>";
}else{
$login_status =
"<div style=\"border: 1px solid black\">".
"Datum: ".date("Y-m-d")."<br />".
"Sie sind als <strong>".htmlspecialchars($_SESSION['user']['username'])."</strong> angemeldet.<br />".
"<a href=\"./logout.php\">Sitzung beenden</a>".
"</div>";
}
?>

View File

@@ -0,0 +1,167 @@
<?php
require_once('./local/wkParticipoConf.php.inc');
// require_once('./authLogin.php');
require_once('./lib/wkParticipoLib.php.inc');
// Daten für den Datenbanklogin laden.
//include("$_SERVER[DOCUMENT_ROOT]/bonus/db.inc");
require_once('./local/db.php.inc');
$sqlMessage = array();
$ical = "";
// Für ein einfaches Ändern der Zeilenenden
$eol="\r\n";
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->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;
?>

View File

@@ -0,0 +1,113 @@
<?php
require('./local/db.php.inc');
require_once('./local/wkParticipoConf.php.inc');
require_once('./auth.php');
require_once('./lib/wkParticipoLib.php.inc');
$message = array();
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if($mysqlConn->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.<br />";
}
else{
if($_POST['f']['newPassword'] != $_POST['f']['newPasswordAgain']){
$message['error'] .= "Das neue Passwort stimmt nicht mit seiner Kontrolleingabe überein! Vertippt?<br />";
}
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!<br /><nav><ul><li><a href=\"./index.php\"><div>Zur Übersichtsseite</div></a></li></ul></nav><br />";
}
else{
$message['error'] .= "Fehler beim Neusetzen des Passwortes: ".$mysqlConn->error."<br />";
}
}// 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
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Passwortänderung</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status;?>
<?php echo htmlRetMessage($message);?>
<nav>
<ul>
<li>
<a href="./index.php">
<div>Zur Übersichtsseite</div>
</a>
</li>
<li>
<a href="./userInfo.php">
<div>
Zur Benutzerübersichtsseite
</div>
</a>
</li>
</ul>
</nav>
<h1>Passwortänderung</h1>
Im folgenden Formular kann das Passwort geändert werden. Man sollte darauf achten, dass man beim <a href="https://www.bsi-fuer-buerger.de/BSIFB/DE/Empfehlungen/Passwoerter/Umgang/umgang_node.html">Umgang mit Passwörtern</a> die nötige Vorsicht walten lässt.
<form action="./changePassword.php" method="post">
<fieldset>
<legend>Neues Passwort vergeben</legend>
<div>
<label for="oldPassword">bisheriges Passwort</label>
<input type="password" name="f[oldPassword]" id="oldPassword" />
</div>
<div>
<label for="newPassword">neues Passwort</label>
<input type="password" name="f[newPassword]" id="newPassword" />
</div>
<div>
<label for="newPasswordAgain">neues Passwort wiederholen</label>
<input type="password" name="f[newPasswordAgain]" id="newPasswordAgain" />
</div>
</fieldset>
<fieldset>
<div><button type="submit">Passwort neu setzen</button></div>
</fieldset>
</form>
</body>
</html>

View File

@@ -0,0 +1,79 @@
<?php
require_once('./local/wkParticipoConf.php.inc');
require_once('./authLogin.php');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.php.inc');
$sqlMessage = array();
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplanung der Judoka des CWSV</title>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<?php echo $login_status;?>
<?php echo htmlRetMessage($sqlMessage);?>
<h1>Wettkampfplanung - Kalender</h1>
<style>
.navBar{
display: flex;
flex-flow: column;
}
</style>
<div class="navBar">
<a class="touchLink" href="./index.php">
<div>Zur Übersicht zurück</div>
</a>
<a class="touchLink" href="http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/calendar.php">
<div>die geplanten Wettkämpfe als iCal</div>
</a>
<a class="touchLink" href="https://www.google.com/calendar/render?cid=http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/calendar.php">
<div>alle geplanten Wettkämpfe in den Google Kalender übernehmen</div>
</a>
</div>
<h2 id="wettkaempfen">Anstehende Wettkämpfe</h2>
<?php
$wkEvents = getCommingWkEvents($mysqlConn);
if( empty($wkEvents) ){
?>
<p>Momentan befinden sich anscheinend keine Wettkämpfe in Planung!</p>
<?php
}
else{
foreach( $wkEvents as $wk){
$wkEvent = getWkEventData($mysqlConn, $wk['id']);
echo htmlWkEvent($wkEvent, getStarterForEvent($mysqlConn, $wkEvent['id']), getFahrtenForEvent($mysqlConn, $wkEvent['id']));
?>
<hr />
<?php
}
}
?>
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = "Wettkampfplaner -- Eventkalender";
$chCounter_page_url = $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI] . "?user=".$_SESSION['user']['username'];
$chCounter_visible=0;
// include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');
?>
</body>
</html>

View File

@@ -0,0 +1,194 @@
<?php
require_once('./local/wkParticipoConf.php.inc');
require_once('./auth.php');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.php.inc');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Bilderauswahl für die Galerien</title>
<meta name="description" content="App zum Auswählen der besten Bilder der Galerien">
<link rel="icon" href="/ressourcen/graphiken/icons/cwsv.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status; ?>
<?php echo htmlRetMessage( $message );?>
<nav>
<ul>
<li>
<a href="./index.php">
<div>Zur Übersichtsseite</div>
</a>
</li>
</ul>
</nav>
<h1>Bilderauswahl</h1>
<?php
$galJahr = isset($_GET["jahr"]) ? $_GET["jahr"] : "";
$message['error'] = "";
// Daten der Datenbank laden
require_once($_SERVER['DOCUMENT_ROOT']."/bonus/db.inc");
// Datenbankverbindung herstellen
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if($mysqlConn->connect_error){
$message['error'] += "Datenbankverbindung fehlgeschlagen: " . $mysqlConn->connect_error . "<br />";
}
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."'<br />";
}
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."'<br />";
}
else{
while( $mysqlResult = $mysqlResults->fetch_assoc() ){
array_push( $galListe, $mysqlResult);
}
}
$mysqlConn->close();
}
?>
<?php echo htmlRetMessage( $message );?>
Jahresauswahl:
<form class="yearSelector">
<select name="jahr" onchange="javascript: this.form.submit();" >
<optgroup label="Jahresauswahl">
<option value=""<?php echo $galJahr!="" ? "" : " selected";?> >Neueste</option>
<?php
foreach($galJahresListe as $jahr){
?>
<option value="<?php echo $jahr?>"<?php echo $galJahr==$jahr ? " selected" : "";?>><?php echo $jahr?></option>
<?php
}
?>
</optgroup>
</select>
<noscript>
<button type="submit">Submit</button>
</noscript>
</form>
<h1>
<?php echo $galJahr != "" ? "Wettkampfgalerien ".$galJahr : "Die neuesten Wettkampfgalerien"?>
</h1>
<style type="text/css">
.galleryTable{
width: 100%;
}
.galleryTable th{
background-color: #666;
color: #fff;
}
.galleryTable tr{
/* background-color: #FFAE00;*/
color: #000;
}
.galleryTable tr:nth-child(odd){
background-color: #FF8100 ;
}
</style>
<table class="galleryTable">
<thead><tr><th>Datum</th><th>Link zur Bildauswahl</th></tr></thead>
<tbody>
<?php
// Jede Galerie ausgeben
foreach($galListe as $gal){
?>
<tr onclick="window.document.location='<?php echo mb_convert_encoding($gal['url'], 'UTF-8', 'ISO-8859-1') . "?chooseMode=true&galId=" . mb_convert_encoding($gal['id'], 'UTF-8', 'ISO-8859-1');?>';">
<td class="noWrap">
<time datetime="<?php echo mb_convert_encoding($gal['datum'], 'UTF-8', 'ISO-8859-1');?>"><?php echo mb_convert_encoding($gal['datum'], 'UTF-8', 'ISO-8859-1');?></time>
</td>
<td class="floatClearBoth">
<a href="<?php echo( mb_convert_encoding($gal['url'], 'UTF-8', 'ISO-8859-1') . "?chooseMode=true&galId=" . mb_convert_encoding($gal['id'], 'UTF-8', 'ISO-8859-1') );?>">
<?php if( $gal['teaserBildUrl'] != "" ){
?>
<div>
<img title="<?php echo mb_convert_encoding($gal['name'], 'UTF-8', 'ISO-8859-1');?> - Bilder der Judoka des Chemnitzer WSV" alt="Teaserbild <?php echo mb_convert_encoding($gal['name'], 'UTF-8', 'ISO-8859-1');?>" src="<?php echo mb_convert_encoding($gal['teaserBildUrl'], 'UTF-8', 'ISO-8859-1');?>"/>
</div>
<?php
}?>
<div>
<?php echo mb_convert_encoding($gal['name'], 'UTF-8', 'ISO-8859-1');?> (<?php echo mb_convert_encoding($gal['typ'], 'UTF-8', 'ISO-8859-1');?>)
</div>
</a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<nav>
<ul>
<li>
<a href="./index.php">
<div>Zur Übersichtsseite</div>
</a>
</li>
</ul>
</nav>
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = "Wettkampfplaner -- Bilderauswahlübersicht";
$chCounter_page_url = $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI] . "?user=".$_SESSION['user']['username'];
$chCounter_visible=0;
// include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');
?>
</body>
</html>

View File

@@ -0,0 +1,70 @@
<?php
require_once('./local/wkParticipoConf.php.inc');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.php.inc');
// Authentifizierung checken und evtl auf die Loginseite weiterleiten
require_once('./auth.php');
require_once($wkParticipoConf['basePath']."/ressourcen/phpLib/parsedown/Parsedown.php");
$sqlMessage = array();
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error;
}
$fileList = glob($wkParticipoConf['basePath']."/horstWolfJudosport/*.md");
rsort($fileList);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wurflexikon</title>
<meta name="description" content="Die Würfe des Go-Kyu nach dem Buch Judosport von Horst Wolf">
<link rel="icon" href="/ressourcen/graphiken/icons/cwsv.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status; ?>
<style>
.navBar{
display: flex;
flex-flow: column;
}
.infoZettel{
width: 100%;
background-color: #FFAE00;
box-shadow: 0 1px 2px 0 rgba(0,0,0,.5);
}
img{
max-width: 100%;
}
</style>
<div class="navBar">
<a class="touchLink" href=".">
<div>zurück zum Wettkampfplaner</div>
</a>
</div>
<?php
foreach($fileList as $file){
echo("<div class=\"infoZettel\">" . Parsedown::instance()->text( file_get_contents($file) ) . "</div><hr />");
}
?>
<!--Beginn der Einbindung des Counters-->
<?php
// $chCounter_page_title = "Wettkampfplaner -- Wurflexikon";
// $chCounter_page_url = $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI] . "?user=".$_SESSION['user']['username'];
// $chCounter_visible=0;
// include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');
?>
</body>
</html>

View File

@@ -0,0 +1,260 @@
<?php
require_once('./local/wkParticipoConf.php.inc');
require_once('./auth.php');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.php.inc');
$sqlMessage = array();
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error;
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplanung der Judoka des CWSV</title>
<meta name="description" content="App zum Planen anstehender Wettkämpfe für die Judoka des Chemnitzer WSV">
<link rel="icon" href="/ressourcen/graphiken/icons/cwsv.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="http://cwsvjudo.bplaced.net/ressourcen/css/cwsvJudoNavBar.css">
</head>
<body>
<?php echo $login_status; ?>
<h1>Wettkampfplanung - Übersicht</h1>
<nav class="navBar">
<ul>
<li>
<a href ="./eventKalender.php">alle geplanten Wettkämpfe als Liste</a>
</li>
<li>
<a href="http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/calendar.php">die geplanten Wettkämpfe als iCal</a>
</li>
<li>
<a href="https://www.google.com/calendar/render?cid=http://cwsvjudo.bplaced.net/pages/desktop/wkParticipo/calendar.php">alle geplanten Wettkämpfe in den Google Kalender übernehmen</a>
</li>
</ul>
</nav>
<h2>Springe zu den ...</h2>
<nav class="navBar">
<ul>
<li>
<a href="#meldungen">einge&shy;schriebenen Wettkämpfen.</a>
</li>
<li>
<a href="#mitfahrgelegenheiten">ange&shy;botene Mitfahr&shy;gelegen&shy;heiten.</a>
</li>
<li>
<a href="#wettkaempfen">kommenden Wett&shy;kämpfen.</a>
</li>
<li>
<a href="#hilfe">Erklärungen</a>
</li>
<li>
<a href="#menue">Menü</a>
</li>
</ul>
</nav>
<hr />
<?php
$mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqli->connect_error) {
$message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
echo $message['error']; die();
}
?>
<h2 id="meldungen">Eingeschrieben zu kommenden Wettkämpfen:</h2>
<?php
foreach( explode( ',', getUserData($mysqli, $_SESSION['user']['userId'])['kinder']) as $kindId){
$kindDaten = getUserData($mysqli, $kindId);
?>
<h3><?php echo( mb_convert_encoding($kindDaten['name'].", ".$kindDaten['vorname'].": ", 'UTF-8', 'ISO-8859-1') );?></h3>
<?php
$wkEventData = getUsersCommingWkEvents($mysqli, $kindId);
if(empty($wkEventData)){
?>
<?php echo mb_convert_encoding($kindDaten['name'].", ".$kindDaten['vorname'], 'UTF-8', 'ISO-8859-1');?> ist derzeit bei keinem Wettkampf eingetragen!
<?php
}
else{
foreach($wkEventData as $wkEvent){
?>
<h4><?php echo mb_convert_encoding($wkEvent['Veranstaltung'], 'UTF-8', 'ISO-8859-1');?></h4>
<div class="wkBox">
<div class="wkInfo"><ul>
<li>Datum: <time datetime="<?php echo mb_convert_encoding($wkEvent['Datum'], 'UTF-8', 'ISO-8859-1');?>"><?php echo mb_convert_encoding($wkEvent['Datum'], 'UTF-8', 'ISO-8859-1');?></time></li>
<li>Altersklassen: <?php echo mb_convert_encoding($wkEvent['Altersklassen'], 'UTF-8', 'ISO-8859-1');?></li>
<li>Eingeschrieben als: <?php echo($startTyp[$wkEvent['type']]);?></li>
</ul></div>
<nav>
<ul>
<li>
<a href ="./showWkEvent.php?eventId=<?php echo $wkEvent['eventId']?>">
<div>Detailansicht</div>
</a>
</li>
<li>
<a href ="/ressourcen/phpLib/calendar.php?wkID=<?php echo $wkEvent['lfdeNr']?>">
<div>Termin als iCal</div>
</a>
</li>
<li>
<a href ="<?php echo(addToGcalUrl(mb_convert_encoding($wkEvent['Veranstaltung'], 'UTF-8', 'ISO-8859-1'), mb_convert_encoding($wkEvent['Datum'], 'UTF-8', 'ISO-8859-1') ));?>">
<div>In den Google Calendar</div>
</a>
</li>
</ul>
</nav>
</div>
<?php
}
echo "</ul>";
}
}
?>
<hr />
<h2 id="mitfahrgelegenheiten">Angebotene Mitfahrgelegenheiten</h2>
<?php
$fahrten = array();
$fahrten = getUsersCommingFahrten($mysqli, $_SESSION['user']['userId']);
if( empty($fahrten) ){
?>
Keine Mitfahrangebote gefunden
<?php
}
else{
foreach($fahrten as $fahrt){
$mitfahrerData = getMitfahrer($mysqli, $fahrt['id']);
?>
<h3><?php echo (isset($fahrt['Veranstaltung']) ? mb_convert_encoding($fahrt['Veranstaltung'], 'UTF-8', 'ISO-8859-1') : "<fehlender Wettkampfname>" );?></h3>
<div class="wkBox">
<div class="wkInfo"><ul>
<li>Datum: <?php echo (isset($fahrt['Datum']) ? "<time datetime=\"".mb_convert_encoding($fahrt['Datum'], 'UTF-8', 'ISO-8859-1')."\">".mb_convert_encoding($fahrt['Datum'], 'UTF-8', 'ISO-8859-1')."</time>" : "<fehlendes Datum>" );?></li>
<li>Einschreibefrist: <?php echo (isset($fahrt['meldefrist']) ? "<time datetime=\"".mb_convert_encoding($fahrt['meldefrist'], 'UTF-8', 'ISO-8859-1')."\">".mb_convert_encoding($fahrt['meldefrist'], 'UTF-8', 'ISO-8859-1')."</time>" : "<fehlende Meldefrist>" );?></li>
<li>Altersklassen: <?php echo (isset($fahrt['Altersklassen']) ? mb_convert_encoding($fahrt['Altersklassen'], 'UTF-8', 'ISO-8859-1') : "<fehlende Altersklassen>" );?></li>
<li>Ort: <a href="<?php echo (isset($fahrt['Routenplaner']) ? mb_convert_encoding($fahrt['Routenplaner'], 'UTF-8', 'ISO-8859-1') : "" );?>"><?php echo (isset($fahrt['Ort']) ? mb_convert_encoding($fahrt['Ort'], 'UTF-8', 'ISO-8859-1') : "<fehlender Ort>" );?></a></li>
<li>Anzahl Plätze: <?php echo count($mitfahrerData)."/".$fahrt['plaetze'];?><ul><?php foreach($mitfahrerData as $mitfahrer){echo "<li>".mb_convert_encoding($mitfahrer['name'], 'UTF-8', 'ISO-8859-1').", ".mb_convert_encoding($mitfahrer['vorname'], 'UTF-8', 'ISO-8859-1')."</li>";};?></ul></li>
</ul></div>
<nav>
<ul>
<li>
<a href ="./showWkEvent.php?eventId=<?php echo $fahrt['eventId']?>">
<div>Detailansicht</div>
</a>
</li>
<li>
<a href ="/ressourcen/phpLib/calendar.php?wkID=<?php echo $fahrt['lfdeNr']?>">
<div>Termin in Kalender übernehmen</div>
</a>
</li>
</ul>
</nav>
</div>
<hr />
<?php
}
}
?>
<hr />
<h2 id="wettkaempfen">Anstehende Wettkämpfe</h2>
<?php
$wkEvents = getCommingWkEvents($mysqli);
if( empty($wkEvents) ){
?>
<p>Momentan befinden sich anscheinend keine Wettkämpfe in Planung!</p>
<?php
}
else{
foreach( $wkEvents as $wk){
//print_r($wk);
$wkEvent = getWkEventData($mysqlConn, $wk['id']);
?>
<h3><?php echo( $wkEvent['Veranstaltung'] );?></h3>
<?php
echo(
htmlWkEvent(
$wkEvent,
getStarterForEvent($mysqlConn, $wkEvent['id']),
getFahrtenForEvent($mysqlConn, $wkEvent['id'])
)
);
?>
<hr />
<?php
}
}
?>
<h2 id="hilfe">Erklärungen</h2>
<h3>Fristen</h3>
<p>
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.
</p>
<h2 id="menue">Menü</h2>
<nav class="navBar">
<ul >
<li><a href="./userInfo.php">Zur Benutzer&shy;übersichts&shy;seite</a></li>
<li><a href="./galImgPicker.php">Bilder&shy;auswahl</a></li>
<li><a href="./infoZettel.php">Infozettel</a></li>
<li><a href="./horstWolfJudosport.php">Wurflexikon</a></li>
<li><a href="./logout.php">Abmelden</a></li>
</ul>
</nav>
<!--
<h2 id="ergebnisse">Letzte Ergebnisse</h2>
<ul>
<?php
foreach( explode( ',', getUserData($mysqli, $_SESSION['user']['userId'])['kinder']) as $kindId){
$kindDaten = getUserData($mysqli, $kindId);
echo "<li>".$kindDaten['name'].", ".$kindDaten['vorname'].":<ul>";
$ergebnisse = getUsersErgebnisse($mysqli, $kindId);
foreach( $ergebnisse as $ergebnis ){
?>
<li>Datum: <?php echo (isset($ergebnis['Datum']) ? "<time datetime=\"".mb_convert_encoding($ergebnis['Datum'], 'UTF-8', 'ISO-8859-1')."\">".mb_convert_encoding($ergebnis['Datum'], 'UTF-8', 'ISO-8859-1')."</time>" : "<fehlendes Datum>" );?></li>
<li><?php echo mb_convert_encoding($ergebnis['Veranstaltung'], 'UTF-8', 'ISO-8859-1');?></li>
<li>Platz: <?php echo mb_convert_encoding($ergebnis['platz'], 'UTF-8', 'ISO-8859-1'); ?></li>
<?php
}
?>
</ul></li>
<?php
}
?>
</ul>
<?php
$mysqli->close();
$mysqlConn->close();
?>
-->
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = "Wettkampfplaner -- Übersicht";
$chCounter_page_url = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . "?user=".$_SESSION['user']['username'];
$chCounter_visible=0;
// include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');
?>
</body>
</html>

View File

@@ -0,0 +1,69 @@
<?php
require_once('./local/wkParticipoConf.php.inc');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.php.inc');
// Authentifizierung checken und evtl auf die Loginseite weiterleiten
require_once('./auth.php');
require_once($wkParticipoConf['basePath']."/ressourcen/phpLib/parsedown/Parsedown.php");
$sqlMessage = array();
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if ($mysqlConn->connect_error) {
$sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error;
}
$fileList = glob($wkParticipoConf['basePath']."/infoZettel/*.md");
rsort($fileList);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Infozettel der Judoka des CWSV</title>
<meta name="description" content="Onlineversion der Handzettel für die Judoka des Chemnitzer WSV">
<link rel="icon" href="/ressourcen/graphiken/icons/cwsv.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status; ?>
<h1>Infozettel</h1>
<style>
.navBar{
display: flex;
flex-flow: column;
}
.infoZettel{
width: 100%;
background-color: #FFAE00;
box-shadow: 0 1px 2px 0 rgba(0,0,0,.5);
}
} </style>
<div class="navBar">
<a class="touchLink" href=".">
<div>zurück zum Wettkampfplaner</div>
</a>
</div>
<?php
foreach($fileList as $file){
echo("<div class=\"infoZettel\">" . Parsedown::instance()->text( file_get_contents($file) ) . "</div><hr />");
}
?>
<!--Beginn der Einbindung des Counters-->
<?php
// $chCounter_page_title = "Wettkampfplaner -- Infozettel";
// $chCounter_page_url = $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI] . "?user=".$_SESSION['user']['username'];
// $chCounter_visible=0;
// include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');
?>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
Deny from all
Allow from localhost
Allow from cwsvjudo.bplaced.net

View File

@@ -0,0 +1,6 @@
<?php
$db_server='localhost';
$db_user='cwsvjudo';
$db_password='***REMOVED***';
$db_name='cwsvjudo';
?>

View File

@@ -0,0 +1,10 @@
<?php
// Die Domains, Basedomain und Subdomain sind nicht wörtlich zu nehmen
// effektiv ist es einfach eine Zweiteilung des Domainnamens
$wkParticipoConf['baseDomain'] = "cwsvjudo.bplaced.net";
$wkParticipoConf['subDomain'] = "";
/// Basis(/Root)-Verzeichnis auf dem Server (für Dateizugriffe, insbesondere phpIncludes)
$wkParticipoConf['basePath'] = "/users/cwsvjudo/www";
$wkParticipoConf['rootDir'] = "/pages/desktop/wkParticipo";
$wkParticipoConf['adminEmail'] = "cwsvjudo@arcor.de";
?>

View File

@@ -0,0 +1,109 @@
<?php
require_once('./local/db.php.inc');
require_once('./local/wkParticipoConf.php.inc');
// require_once('./auth.php');
require_once('./lib/wkParticipoLib.php.inc');
if (isset($_SESSION['login'])) {
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/index.php');
} else {
if (!empty($_POST)) {
if (
empty($_POST['f']['username']) ||
empty($_POST['f']['password'])
) {
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
} 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(
"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, <a href="index.php">weiter zum Inhalt.';
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'] =
"<ul>".
"<li>Dies ist die Wettkampf<em>planung</em> speziell für die Wettkämpfe der Judoka des Chemnitzer WSV. Es gibt auch noch einen <a title=\"Kalender mit Terminen und Ausschreibungen kommender Judowettkämpfe\" href=\"/pages/desktop/verein.wettkampfkalender.php\" >allgemeinen Wettkampf<em>kalender</em></a>, in dem kommende Wettkämpfe aufgelistet sind.</li>".
"<li>Die Zugangsdaten solltet Ihr von Eurem Trainer erhalten haben. Wenn nicht, erinnert ihn daran!</li>".
"<li>Für den Wettkampfplaner müssen die <a href=\"https://de.wikipedia.org/wiki/Cookie\">Cookies im Browser aktiviert sein.</a> Mit dem Einloggen akzeptiert der Nutzer, das die Cookies für Authentifizierungszwecke gesetzt werden.</li>".
"</ul>".
"<em>Anmerkung des Autors</em>: Die online Wettkampfplanung befindet sich in einem <em>experimentellem Stadium</em>. ".
"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.";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Wettkampfplanung - Login</title>
<meta name="description" content="Loginseite des Wettkampfplaners der Judoka des Chemnitzer WSV">
<link rel="stylesheet" href="style.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
<h1>Wettkampfplanung der Judoka des CWSV</h1>
<?php echo htmlRetMessage($message);?>
<form class="loginForm" action="./login.php" method="post">
<fieldset>
<legend>Benutzerdaten</legend>
<div>
<label for="username">Benutzername</label>
<input id="username"type="text" name="f[username]" <?php echo isset($_POST['f']['username']) ? ' value="' . htmlspecialchars($_POST['f']['username']) . '"' : '' ?> />
</div>
<div>
<label for="password">Kennnwort</label>
<input id="password" type="password" name="f[password]" />
</div>
</fieldset>
<fieldset>
<div>
<button type="submit" name="submit" value="Anmelden">Anmelden</button>
</div>
</fieldset>
<fieldset class="notice"><legend>Hinweise</legend>
<ul>
<li>Änderungen von bereits abgegebenen Meldungen (Starts und Mitfahrgelegenheiten) gehen derzeit nur über einen Administrator.</li>
<li>Man erhält derzeit bei jeder Meldung eine Bestätigungsmail. Dies ist vor allem eine Sicherheitsmaßnahme damit auffällt, wenn etwas falsches (oder der/die falsche) gemeldet wurde.</li>
<li>Dieses Projekt ist in mehr oder weniger aktiven Entwicklung. Sollte mal was nicht funktionieren, kann es sein, dass ich gerade daran herumschreibe. Also ruhig zu einem späteren Zeitpunkt noch einmal probieren.</li>
</ul>
</fieldset>
</form>
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = 'Wettkampfplaner - Login';
$chCounter_visible=0;
//include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');?>
</body>
</html>

View File

@@ -0,0 +1,207 @@
<?php
require_once('./local/db.php.inc');
require_once('./local/wkParticipoConf.php.inc');
// require_once('./auth.php');
require_once('./lib/wkParticipoLib.php.inc');
if (isset($_SESSION['login'])) {
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/index.php');
} else {
if (!empty($_POST)) {
if (
empty($_POST['f']['username']) ||
empty($_POST['f']['password'])
) {
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
} 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(
"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, <a href="index.php">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'] =
"<ul>".
"<li>Dies ist die Wettkampf<em>planung</em> speziell für die Wettkämpfe der Judoka des Chemnitzer WSV. Es gibt auch noch einen <a title=\"Kalender mit Terminen und Ausschreibungen kommender Judowettkämpfe\" href=\"/pages/desktop/verein.wettkampfkalender.php\" >allgemeinen Wettkampf<em>kalender</em></a>, in dem kommende Wettkämpfe aufgelistet sind.</li>".
"<li>Die Zugangsdaten solltet Ihr von Eurem Trainer erhalten haben. Wenn nicht, erinnert ihn daran!</li>".
"<li>Für den Wettkampfplaner müssen die <a href=\"https://de.wikipedia.org/wiki/Cookie\">Cookies im Browser aktiviert sein.</a> Mit dem Einloggen akzeptiert der Nutzer, das die Cookies für Authentifizierungszwecke gesetzt werden.</li>".
"</ul>".
"<em>Anmerkung des Autors</em>: Die online Wettkampfplanung befindet sich in einem <em>experimentellem Stadium</em>. ".
"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.";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Wettkampfplanung - Login</title>
<meta name="description" content="Loginseite des Wettkampfplaners der Judoka des Chemnitzer WSV">
<link rel="stylesheet" href="style.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
<h1>Wettkampfplanung der Judoka des CWSV</h1>
<?php echo htmlRetMessage($message);?>
<style>
</style>
<form action=""./login.php" method="post">
<!-- <div class="imgcontainer">
<img src="img_avatar2.png" alt="Avatar" class="avatar">
</div>-->
<div class="container">
<label><b>Username</b></label>
<input type="text" placeholder="Enter Username" name="uname" required />
<label><b>Password</b></label>
<input type="password" placeholder="Enter Password" name="psw" required />
<button type="submit">Login</button>
<!-- <input type="checkbox" checked="checked"> Remember me-->
</div>
<div class="container" style="background-color:#f1f1f1">
<button type="button" class="cancelbtn">Cancel</button>
<span class="psw">Forgot <a href="#">password?</a></span>
</div>
</form>
<style>
/* Bordered form */
.loginForm {
border: 3px solid #f1f1f1;
}
/* Full-width inputs */
inputField[type=text], inputField[type=password] {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
box-sizing: border-box;
}
/* Set a style for all buttons */
loginFormButton {
background-color: #4CAF50;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
cursor: pointer;
width: 100%;
}
/* Add a hover effect for buttons */
loginFormButton:hover {
opacity: 0.8;
}
/* Extra style for the cancel button (red) */
.cancelbtn {
width: auto;
padding: 10px 18px;
background-color: #f44336;
}
/* Center the avatar image inside this container */
.imgcontainer {
text-align: center;
margin: 24px 0 12px 0;
}
/* Avatar image */
img.avatar {
width: 40%;
border-radius: 50%;
}
/* Add padding to containers */
.container {
padding: 16px;
}
/* The "Forgot password" text */
span.psw {
float: right;
padding-top: 16px;
}
/* Change styles for span and cancel button on extra small screens */
@media screen and (max-width: 300px) {
span.psw {
display: block;
float: none;
}
.cancelbtn {
width: 100%;
}
}
</style>
<form class="loginForm" action="./login.php" method="post">
<fieldset>
<legend>Benutzerdaten</legend>
<div>
<label for="username">Benutzername</label>
<input class="inputField" id="username" type="text" name="f[username]" <?php echo isset($_POST['f']['username']) ? ' value="' . htmlspecialchars($_POST['f']['username']) . '"' : '' ?> />
</div>
<div>
<label for="password">Kennnwort</label>
<input class="inputField" id="password" type="password" name="f[password]" />
</div>
</fieldset>
<fieldset>
<div>
<button class="loginFormButton" type="submit" name="submit" value="Anmelden">Anmelden</button>
</div>
</fieldset>
<fieldset class="notice"><legend>Hinweise</legend>
<ul>
<li>Änderungen von bereits abgegebenen Meldungen (Starts und Mitfahrgelegenheiten) gehen derzeit nur über einen Administrator.</li>
<li>Man erhält derzeit bei jeder Meldung eine Bestätigungsmail. Dies ist vor allem eine Sicherheitsmaßnahme damit auffällt, wenn etwas falsches (oder der/die falsche) gemeldet wurde.</li>
<li>Dieses Projekt ist in mehr oder weniger aktiven Entwicklung. Sollte mal was nicht funktionieren, kann es sein, dass ich gerade daran herumschreibe. Also ruhig zu einem späteren Zeitpunkt noch einmal probieren.</li>
</ul>
</fieldset>
</form>
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = 'Wettkampfplaner - Login';
$chCounter_visible=0;
//include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');?>
</body>
</html>

View File

@@ -0,0 +1,18 @@
<?php
session_start();
$_SESSION = array();
if (ini_get('session.use_cookies')) {
$params = session_get_cookie_params();
setcookie(
session_name(),
'',
time() - 42000,
$params['path'],
$params['domain'],
$params['secure"'],
$params['httponly']
);
}
session_destroy();
header('Location: ./login.php');
?>

View File

@@ -0,0 +1,237 @@
<?php
require_once('./local/wkParticipoConf.php.inc');
require_once('./authLogin.php');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.php.inc');
$message = array();
$eventData = array();
if(empty($_GET)){
$message['error'] = "Fehler: leeres POST!";
}
else{
if( empty($_GET['eventId']) ){
$message['error'] .= "Fehler: keine eventId gefunden! <a href=\"./index.php\">zur Eventübersicht</a>";
}
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'].")";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wettkampfplanung - Wettkampfdetails<?php echo (empty($eventData) ? "" : " ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'));?></title>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<?php
echo $login_status;
?>
<hr />
<?php
if (!empty($_SESSION['login'])) echo "<a class=\"touchLink\" href=\"./index.php\">Zur Übersicht zurück</a>";
echo htmlRetMessage($message);
if( empty($eventData) ){
?>
Keine Eventdaten zum Anzeigen gefunden!<br />
<a class="touchLink" href="./index.php"><div>Zur Übersicht zurück</div></a>
<?php
}
else{
?>
<h1><?php echo (empty($eventData) ? "" : " ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'));?></h1>
<h2>Wettkampfdaten</h2>
<ul>
<li>Wettkampfname: <?php echo mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1');?></li>
<li>Datum: <time datetime="<?php echo mb_convert_encoding($eventData['Datum'], 'UTF-8', 'ISO-8859-1');?>"><?php echo mb_convert_encoding($eventData['Datum'], 'UTF-8', 'ISO-8859-1');?></time></li>
<li>Frist zum Einschreiben: <time datetime="<?php echo mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1');?>"><?php echo mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1');?></time> <a class="touchLink" href ="<?php echo(addToGcalUrl(mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'), mb_convert_encoding($eventData['meldefrist'], 'UTF-8', 'ISO-8859-1') ));?>">Einschreibefrist in den Google Calendar eintragen</a></li>
<li>Altersklassen: <?php echo mb_convert_encoding($eventData['Altersklassen'], 'UTF-8', 'ISO-8859-1');?></li>
<li>Ort: <a class="touchLink" href="<?php echo $eventData['Routenplaner'];?>"><?php echo mb_convert_encoding($eventData['Ort'], 'UTF-8', 'ISO-8859-1');?></a></li>
</ul>
<nav>
<ul>
<li>
<a href ="<?php echo $eventData['Ausschreibung'];?>">
<div>Link zur Ausschreibung</div>
</a>
</li>
<li>
<a href="<?php echo $eventData['Routenplaner'];?>">
<div>Link zum Routenplaner</div>
</a>
</li>
<li>
<a href ="/ressourcen/phpLib/calendar.php?wkID=<?php echo $eventData['wkId']?>">
<div>Termin als iCal</div>
</a>
</li>
<li>
<a href ="<?php echo(addToGcalUrl(mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'), mb_convert_encoding($eventData['Datum'], 'UTF-8', 'ISO-8859-1') ));?>">
<div>Termin in den Google Calendar übernehmen</div>
</a>
</li>
</ul>
</nav>
<h2>Einschreibungen:</h2>
<?php if( !empty($_SESSION['login']) ){
?>
<?php $wkEventStarterData = getEventsStarterData($mysqli, $eventData['id']);?>
<li>Eingeschrieben:
<?php
$starters = getStarterForEvent($mysqli, $eventData['id']);
if( empty($starters) ){
?>
Noch hat sich niemand für diesen Wettkampf gemeldet!
<?php
}
else{
echo count($starters);
}
?>
<ul>
<li>Kämpfer:
<?php
$kaempfer = getKaempferForEvent($mysqli, $eventData['id']);
if( empty($kaempfer) ){
?>
Keine
<?php
}
else{
echo count($kaempfer);
}
?>
</li>
<li>Zuschauer:
<?php
$zuschauer = getZuschauerForEvent($mysqli, $eventData['id']);
if( empty($zuschauer) ){
?>
Keine
<?php
}
else{
echo count($zuschauer);
}
?>
</li>
</ul>
</li>
<p>Es sind momentan <?php echo (count($wkEventStarterData) == 0 ? "keine" : count($wkEventStarterData));?> Starter eingeschrieben.</p>
<?php
}
?>
<p>Jemanden einschreiben:
<?php
if (empty($_SESSION['login'])){
echo( "Nur eingeloggt möglich!");
}
else{
$kinderDaten = getUsersKidsData($mysqli, $_SESSION['user']['userId']);
foreach($kinderDaten as $kind){
?>
<div style="border: 1px solid black;">
<?php echo mb_convert_encoding( $kind['name'].", ".$kind['vorname'], 'UTF-8', 'ISO-8859-1');?></li>
<form action="./addStarter.php" method="post">
<input type="hidden" name="f[eventId]" id="eventId"<?php echo isset($eventData['id']) ? ' value="' . htmlspecialchars($eventData['id']) . '"' : '' ?> />
<input type="hidden" name="f[userId]" id="userId" <?php echo isset($kind['id']) ? ' value="' . htmlspecialchars($kind['id']) . '"' : '' ?> />
<?php
if( getUsersMeldeStatus($mysqli, $eventData['id'], $kindId) ){
echo("<div>Bereits eingeschrieben!</div>");
}
else{
if( date("Y-m-d") > $eventData['meldefrist']){
echo "<button class=\"touchButton\" type=\"submit\" disabled>Die Frist zum Einschreiben (".$eventData['meldefrist'].") ist bereits abgelaufen!</button>";
if (!empty($_SESSION['login'])){
echo( "<p>Frist für das Einschreiben verpasst? Für ein nachträgliches Eintragen mit dem Admin verständigen (<a href=\"mailto:cwsvjudo@arcor.de?Subject=".rawurlencode("Meldefrist ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1'))."\" target=\"_top\">Email an cwsvjudo@arcor.de</a>).</p>" );
}
}
else{
echo "<button class=\"touchButton\" type=\"submit\" name=\"submit\">Einschreiben</button>";
}
}
?>
</form>
</div>
<?php
}
}
?>
</p>
<h2>Mitfahrangebote</h2>
<?php
if (empty($_SESSION['login'])){
echo "Nur eingeloggt einsehbar!";
}
else{
$wkEventsFahrerData = getFahrtenForEvent($mysqli, $eventData['id']);
?>
<ul>
<?php
foreach( $wkEventsFahrerData as $fahrt ){
?>
<li><?php echo mb_convert_encoding($fahrt['name'], 'UTF-8', 'ISO-8859-1').", ".mb_convert_encoding($fahrt['vorname'], 'UTF-8', 'ISO-8859-1');?> (<?php echo $fahrt['plaetze'];?> Plätze)</li>
<?php
}
?>
</ul>
<form action="./addFahrt.php" method="post">
<input type="hidden" name="f[eventId]" value="<?php echo ( isset( $eventData['id'] ) ? $eventData['id'] : "" );?>" />
<?php
if($eventData['Datum'] > date("Y-m-d")){
?>
<button class="touchButton" type="submit">ein Mitfahrangebot abgeben.</button>
<?php
}
else{
?>
<button class="touchButton" type="submit" disabled>es ist leider zu spät, noch Mitfahrangebote hinzuzufügen.</button>
<?php
}
?>
</form>
<?php
}
}
if($mysqli) $mysqli->close();
?>
<!--Beginn der Einbindung des Counters-->
<?php
$chCounter_page_title = "Wettkampfplaner -- Eventansicht -- ".mb_convert_encoding($eventData['Veranstaltung'], 'UTF-8', 'ISO-8859-1');
$chCounter_page_url = $_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
$chCounter_visible =0 ;
// include( $_SERVER['DOCUMENT_ROOT'].'/expCounter/counter.php');
?>
</body>
</html>

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,86 @@
<?php
require_once('./local/wkParticipoConf.php.inc');
require_once('./auth.php');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.php.inc');
$mysqlConn = @new mysqli($db_server, $db_user, $db_password, $db_name);
if($mysqlConn->connect_error){
$message['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
}
$userInfo = getUserData( $mysqlConn, $_SESSION['user']['userId'] );
$kinderInfo = getUsersKidsData( $mysqlConn, $_SESSION['user']['userId'] );
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Userinfo</title>
<meta name="description" content="Übersicht des Users">
<link rel="icon" href="/ressourcen/graphiken/icons/cwsv.ico" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="stylesheet" href="style.css">
</head>
<body>
<?php echo $login_status; ?>
<?php echo htmlRetMessage( $message );?>
<nav>
<ul>
<li>
<a href="./index.php">
<div>Zur Übersichtsseite</div>
</a>
</li>
</ul>
</nav>
<h1>Wettkampfplanung - Userinfo</h1>
<?php //print_r( $userInfo );?>
<h2>Benutzerdaten</h2>
<ul>
<li>
Login: <?php echo mb_convert_encoding( $userInfo['loginName'], 'UTF-8' );?>
</li>
<li>
Name, Vorname: <?php echo mb_convert_encoding( $userInfo['name'].", ".$userInfo['vorname'], 'UTF-8');?>
</li>
<li>E-Mail: <?php echo mb_convert_encoding( $userInfo['eMail'], 'UTF-8', 'ISO-8859-1');?></li>
<li>
Meldeberechtigt für:
<ul>
<?php foreach( $kinderInfo as $kind) echo mb_convert_encoding( "<li>".$kind['name'].", ".$kind['vorname']." (".$kind['gebDatum'].")</li>", 'UTF-8');?>
</ul>
</li>
</ul>
<h2>Aktionen</h2>
<nav>
<ul>
<li>
<a href="./userInfo.php">
<div>
Zur Benutzerübersichtsseite
</div>
</a>
</li>
<li>
<a href="./changePassword.php">
<div>
Passwort ändern
</div>
</a>
</li>
</ul>
</nav>
</body>
</html>