As used in Tübingen Convention 2023

This commit is contained in:
Florian Pesth 2024-01-14 10:52:09 +01:00
parent f76c5c1db5
commit 9800495f5f
55 changed files with 5702 additions and 1018 deletions

2
html/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
scheduler
scheduler-6.0.5

117
html/Admin4-ori.php Normal file
View File

@ -0,0 +1,117 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link=ConnectDB();
include '_login.php';
if($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
<!doctype html>
<head>
<title>Admin Stochercon</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
DatenbankAufDeutsch($db_link);
$AliasHelferID=0;
//echo "AliasHelfer=$AliasHelferID <br>";
if(isset($_SESSION["AliasHelferID"]))
{
$AliasHelferID = $_SESSION["AliasHelferID"];
}
//echo "AliasHelfer=$AliasHelferID <br>";
if(isset($_POST["AliasHelfer"]))
{
$AliasHelferID = $_POST["AliasHelfer"];
//echo "post<br>";
}
if($AliasHelferID!=0)
{
$_SESSION["AliasHelferID"]=$AliasHelferID;
}
//echo "AliasHelfer=$AliasHelferID <br>";
$db_erg = Helferdaten($db_link,$HelferID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName=$zeile['Name'];
$HelferIsAdmin=$zeile['Admin'];
}
?>
<div style="width: 100%;">
<table id="customers" >
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button> &nbsp; <b>Admin Stochercon 2023</b>
</th>
</tr>
<tr>
<td><b>Helfer &auml;ndern:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;font-size:20" name="AliasHelfer" id="AliasHelfer" onchange="submit()">
<?php
$db_erg = HelferListe($db_link);
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($AliasHelferID!=$zeile['HelferID'])
{
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
}
else
{
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
}
}
?>
</select></form>
</td>
</tr>
<tr onclick="window.location.href='AdminUserdaten4.php';">
<td><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Helferdaten &auml;ndern</b></td>
</tr>
<tr onclick="window.location.href='AdminMeineSchichten4.php';">
<td><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Schichten Anzeigen/Löschen</b></td>
</tr>
<tr onclick="window.location.href='AdminAlleSchichten4.php';">
<td><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Schichten Hinzufügen</b></td>
</tr>
<tr><th>Weiters</th></tr>
<tr onclick="window.location.href='EmailZuToken.php';">
<td>
<img src="Bilder/More.jpeg" style="width:30px;height:30px;"><b>Einladungs-Links erstellen/versenden</b>
</td>
</tr>
<tr onclick="window.location.href='Ausdrucke4.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;">
<b>Ausdrucke</b>
</td>
</tr>
<tr onclick="window.location.href='AdminDienste4.php';">
<td><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Dienste und Schichten</b></td>
</tr>
</table>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
</body>
</html>

141
html/Admin4.php Normal file
View File

@ -0,0 +1,141 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link=ConnectDB();
include '_login.php';
if($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
<!doctype html>
<html>
<head>
<title>Admin Stochercon</title>
<link rel="stylesheet" href="style_common.css"/>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
DatenbankAufDeutsch($db_link);
$AliasHelferID=0;
//echo "AliasHelfer=$AliasHelferID <br>";
if(isset($_SESSION["AliasHelferID"]))
{
$AliasHelferID = $_SESSION["AliasHelferID"];
}
//echo "AliasHelfer=$AliasHelferID <br>";
if(isset($_POST["AliasHelfer"]))
{
$AliasHelferID = $_POST["AliasHelfer"];
//echo "post<br>";
}
if($AliasHelferID!=0)
{
$_SESSION["AliasHelferID"]=$AliasHelferID;
}
//echo "AliasHelfer=$AliasHelferID <br>";
$db_erg = Helferdaten($db_link,$HelferID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName=$zeile['Name'];
$HelferIsAdmin=$zeile['Admin'];
}
?>
<div style="width: 100%;">
<table class="commontable">
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button> &nbsp; <b>Admin HelferDB</b>
</th>
<tr>
<tr onclick="window.location.href='AdminDienste4.php';">
<td>
<a class="fallbacklink" href='AdminDienste4.php'><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Dienste und Schichten verwalten</b></a>
</td>
</tr>
<tr onclick="window.location.href='CreateHelfer4.php';"> <td>
<img src="Bilder/More.jpeg" style="width:30px;height:30px;"><b>Seite zur Helfer selbst-Registrierung</b>
</td> </tr>
<tr onclick="window.location.href='EmailZuToken.php';"> <td>
<img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b>Helfer per Link einladen</b>
</td> </tr>
<tr onclick="window.location.href='AdminHelferUebersicht.php';">
<td>
<a class="fallbacklink" href='AdminHelferUebersicht.php'><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b>Helfer&uuml;bersicht</b></a>
</td>
</tr>
<th><b>Helfer als Admin &auml;ndern:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;font-size:20" name="AliasHelfer" id="AliasHelfer" onchange="submit()">
<?php
$db_erg = HelferListe($db_link);
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($AliasHelferID!=$zeile['HelferID'])
{
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
}
else
{
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
}
}
?>
</select></form>
</b>
</td>
</th>
<tr><!--td-->
<!--<table class="innertable" style="padding:15px"><!-
- inner table for indent-->
<tr onclick="window.location.href='AdminUserdaten4.php';">
<!--td class="invis"></td-->
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Helferdaten &auml;ndern</b></td>
</tr>
<tr onclick="window.location.href='AdminMeineSchichten4.php';">
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Schichten Anzeigen/Löschen</b></td>
</tr>
<tr onclick="window.location.href='AdminAlleSchichten4.php';">
<td><img src="Bilder/dot.png" width="30px" height="2px"><img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"><b> Schichten Hinzufügen</b></td>
</tr>
<!--</table></td> </tr> inner table for indent end-->
<!--<tr><th>Weiteres</th></tr>-->
<tr onclick="window.location.href='Kalender-all.html';">
<td><img src="Bilder/More.jpeg" style="width:30px;height:30px"><b> Admin Kalenderansicht</b> </td>
</tr>
<tr onclick="window.location.href='Ausdrucke4.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdrucke</b> </td>
</tr>
<tr onclick="window.location.href='Ausdrucke5.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdrucke mit Abreißzetteln</b> </td>
</tr>
<tr onclick="window.location.href='TeilnehmerSchichtenAusdruck4.php';">
<td > <img src="Bilder/More.jpeg" style="width:30px;height:30px;"> <b>Ausdruck Schichten</b> </td>
</tr>
</table>
<p> <img src="Bilder/Info.jpeg" width="25px" height="25px"> Dienst: z.B. Badgekontrolle Eingang A. Schicht: ein Dienst zu einer bestimmten Zeit zB 9-12 Uhr
</p>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
</body>
</html>

View File

@ -0,0 +1,501 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link=ConnectDB();
include '_login.php';
if($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
<html>
<head>
<title>Helfer Stochercon Alle Schichten</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button>
<div style="width: 100%;">
<?php
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if(isset($_POST['CloseInfo']))
{
UNSET($InfoMeineSchichtID);
UNSET($InfoAlleSchichtID);
}
if(isset($_POST['InfoMeineSchichtID']))
{
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
UNSET($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
}
if(isset($_GET['InfoAlleSchichtID']))
{
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
UNSET($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoAlleSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer=$zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
// Beteiligte Helfer Holen
$db_erg = BeteiligteHelfer($db_link,$InfoAlleSchichtID);
$x=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$MitHelferID[$x] = $zeile['HelferID'];
$MitHelfer[$x] = $zeile['Name'];
$MitHelferHandy[$x]= $zeile['Handy'];
$x++;
}
}
if(isset($_GET['ZeitBereich']))
{
$ZeitBereich = $_GET['ZeitBereich'];
}
else
{
$ZeitBereich = 1;
}
function HelferAuswahlButton($db_link,$AliasHelferID){
echo '<b>Helfer w&auml;hlen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">';
$db_erg = HelferListe($db_link);
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($AliasHelferID!=$zeile['HelferID'])
{
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
}
else
{
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
}
}
echo '</select></form>';
}
if(isset($_POST['AliasHelfer'])) {
$AliasHelferID=$_POST['AliasHelfer'];
}elseif(isset($_SESSION["AliasHelferID"])){
$AliasHelferID = $_SESSION["AliasHelferID"];
}else{
HelferAuswahlButton($db_link,$AliasHelferID);
exit;
}
HelferAuswahlButton($db_link,$AliasHelferID);
$_SESSION["AliasHelferID"]=$AliasHelferID;
$AdminID = $_SESSION["AdminID"];
$db_erg=Helferdaten($db_link,$HelferID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName=$zeile['Name'];
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
<form method="post" action="AdminAlleSchichten4.php#Info">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if(isset($_POST['plusschicht'])) {
$messages = [];
$SchichtId = $_POST['plusschicht'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
if(empty($messages))
{
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($db_link,$AliasHelferID,$SchichtId,$AdminID);
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
//die('<div class="Helfer wurde angelegt.</div>');
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message)
{
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
if(isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$messages = [];
$SchichtID = $_POST['minusschicht'];
if(empty($messages))
{
// Helfer aus Schicht entfernen
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link,$AliasHelferID,$SchichtID,$AdminID);
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message)
{
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
// Zusammenfassung Eigener Schichten
$db_erg = SchichtenSummeEinesHelfers($db_link,$AliasHelferID);
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
echo '<table id="customers"><tr class="header"><th onclick="window.location.href=\'AdminMeineSchichten4.php\'">';
echo " Dienstplan von $HelferName (Zusammenfassung)<br>";
echo $zeile['Anzahl'];
echo " Schichten insgesamt ";
echo $zeile['Dauer']/3600;
echo " Stunden";
echo '</th></tr></table><br><br>';
/// Schichten Auswahl
////////////////////////////////////////////////////////
$addschicht =$_SESSION["addschicht"];
$dienstsort =$_SESSION["dienstsort"];
if(isset($_POST['addschicht']) && $_POST['addschicht']=='1')
{
$addschicht='1';
$dienstsort='1';
}
if(isset($_POST['addschicht']) && $_POST['addschicht']=='2')
{
$addschicht='2';
$dienstsort='2';
}
if(isset($_POST['addschicht']) && $_POST['addschicht']=='0')
{
$addschicht='0';
}
$_SESSION["addschicht"] =$addschicht;
$_SESSION["dienstsort"] =$dienstsort;
//echo "<br>Detail=".$addschicht."<br>";
if($addschicht=='0')
{
echo "<p><b>Schichten Hinzufügen geordnet nach</b>";
echo "<button name='addschicht' value='1'>Tage</button>";
echo "<button name='addschicht' value='2'>Dienste</button></p>";
}
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
if($addschicht!='0')
{
//$db_erg = AlleSchichten($db_link,$dienstsort);
//$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00");
if ($ZeitBereich==1) // Alle
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-09-15 00:00:00","2200-05-19 00:00:00",-1);
}
if ($ZeitBereich==2) // Davor
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2023-09-15 00:00:00",-1);
}
if ($ZeitBereich==3) // Fr
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-15 00:00:00","2023-09-16 00:00:00",-1);
}
if ($ZeitBereich==4) // Sa
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-16 00:00:00","2023-09-17 00:00:00",-1);
}
if ($ZeitBereich==5) // So
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-17 00:00:00","2023-09-18 00:00:00",-1);
}
if ($ZeitBereich==6) // So
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-17 00:00:00","2023-09-18 00:00:00",-1);
}
if ($ZeitBereich==7) // Danach
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-18 00:00:00","2223-09-22 00:00:00",-1);
}
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
//echo "<p><button name='addschicht' value='0'><b>&larrhk;</b></button></p>";
echo '<table id="customers">';
echo "<thead>";
echo "<tr>";
echo "</tr><th colspan='7'>". "Alle Schichten der Con (" . $iBelegteSchichtenCount."/".$iAlleSchichtenCount. ")</th></tr>";
/*
if ($dienstsort=='1')
{
echo "<th>". "Dienst" . "</th>";
}
else
{
echo "<th>". "Von" . "</th>";
}
*/
if ($ZeitBereich==1)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=1\"'>". "Alle" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=1\"'>". "Alle" . "</th>";
}
if ($ZeitBereich==2)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
}
if ($ZeitBereich==3)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=3\"'>". "Do" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=3\"'>". "Do" . "</th>";
}
if ($ZeitBereich==4)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=4\"'>". "Fr" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=4\"'>". "Fr" . "</th>";
}
if ($ZeitBereich==5)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=5\"'>". "Sa" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=5\"'>". "Sa" . "</th>";
}
if ($ZeitBereich==6)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=6\"'>". "So" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=6\"'>". "So" . "</th>";
}
if ($ZeitBereich==7)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=7\"'>". "Danach" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=7\"'>". "Danach" . "</th>";
}
//echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
//echo "<th style='width:50px'>". "Do" . "</th>";
//echo "<th style='width:50px'>". "Fr" . "</th>";
//echo "<th style='width:50px'>". "Sa" . "</th>";
//echo "<th style='width:50px'>". "So" . "</th>";
//echo "<th style='width:100px'>". "Danach" . "</th>";
echo "</tr>";
echo "</thead>";
$OldTag = "";
$OldWas = "";
# um Zeilen mit von mir belegten Schichten hervorzuheben
$MeineDienste = SchichtIdArrayEinesHelfers($db_link,$AliasHelferID);
//print_r($MeineDienste);
echo '</table>';
echo '<table id="customers">';
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($dienstsort=='1')
{
$Tag = $zeile['Tag'];
if ($Tag!=$OldTag)
{
echo "<tr class='header'><th colspan='5' >";
echo $Tag;
echo "</th></tr>";
$OldTag = $Tag;
}
}
else
{
$Was = $zeile['Was'];
if ($Was!=$OldWas)
{
echo "<tr class='header'><th colspan='7' style='width:100%'>";
echo $Was;
echo "</th>";
/*
echo "<th style='width:100px'>". "Von" . "</th>";
echo "<th style='width:130px'>". "Bis" . "</th>";
echo "<th style='width:90px'>". "Ist/Soll" . "</th>";
echo "<th style='width:90px'>". "Add" . "</th>";
*/
echo "</tr>";
$OldWas = $Was;
}
}
$Color="red";
if ( $zeile['Ist'] > 0 )
{
$Color="yellow";
}
if ( $zeile['Ist'] >= $zeile['Soll'] )
{
$Color="green";
}
$Von = $zeile['Ab'];
$Bis = $zeile['Bis'];
if ( substr($Von,0,2) == substr($Bis,0,2))
{
$Bis = substr($Bis,2);
}
$Von = substr($Von,2);
// Meine Schichten gruen einfaerben
if(in_array($zeile['SchichtID'], $MeineDienste)) {
$rowstyle = ' style="background-color:lightgreen" ';
$regtext = 'Meine!';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'style="dummy:'.$zeile['SchichtID'].'"';
$regtext = '';
}
echo '<tr '.$rowstyle.'onclick="window.location.href=\'DetailsSchichten4.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
if ($dienstsort=='1')
{
echo "<td>". $zeile['Was'] . "</td>";
}
else
{
echo "<td>". $zeile['Tag'] . "</td>";
}
echo "<td>". $Von . "</td>";
echo "<td>". $Bis . "</td>";
echo "<td bgcolor='".$Color."'>". $zeile['Ist'] . "/";
echo "". $zeile['Soll'] . "</td>";
# buttons sind in der selben Zelle
echo "<td width='30px'>" . "<button width='20px' name='plusschicht' value='". $zeile['SchichtID'] ."'>+</button>" ."";
echo "" . "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='". $zeile['SchichtID'] ."'>&ndash;</button> $regtext" ."</td>";
//echo "<td>$regtext</td>";
echo "</tr>\n";
}
echo "</table>";
}
mysqli_free_result( $db_erg );
?>
</form>
</div>
</body>
</html>

361
html/AdminDienste4.php Normal file
View File

@ -0,0 +1,361 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link=ConnectDB();
include '_login.php';
if($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
<!doctype html>
<html>
<head>
<title>Admin Stochercon</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div style="width: 100%;">
<?php
DatenbankAufDeutsch($db_link);
$DienstID =$_SESSION["DienstID"];
$SchichtID =$_SESSION["SchichtID"];
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
if(isset($_POST['HelferID']))
{
$HelferID = $_POST['HelferID'];
}
if(isset($_POST['ShowHelfer'])) {
$HelferID=$_POST['HelperSearch'];
}
$_SESSION["HelferID"] = $HelferID;
if(isset($_POST['ChangeDienst'])) {
$Was=$_POST['Dienst-Was'];
$Wo=$_POST['Dienst-Wo'];
$Info=$_POST['Dienst-Info'];
$Leiter=$_POST['Dienst-Leiter'];
$Gruppe=$_POST['Dienst-Gruppe'];
$HelferLevel=$_POST['HelferLevel'];
ChangeDienst($db_link,$DienstID,$Was,$Wo,$Info,$Leiter,$Gruppe,$HelferLevel);
}
if(isset($_POST['NewDienst'])) {
$Was=$_POST['Dienst-Was'];
$Wo=$_POST['Dienst-Wo'];
$Info=$_POST['Dienst-Info'];
$Leiter=$_POST['Dienst-Leiter'];
$Gruppe=$_POST['Dienst-Gruppe'];
$HelferLevel=$_POST['HelferLevel'];
NewDienst($db_link,$DienstID,$Was,$Wo,$Info,$Leiter,$Gruppe,$HelferLevel);
}
if(isset($_POST['DeleteDienst']))
{
if (!DeleteDienst($db_link,$DienstID,false))
{
echo "Erst Schichten des Dienstes Löschen!";
}
}
if(isset($_POST['ChangeSchicht'])) {
$Von=$_POST['Schicht-Von'];
$Bis=$_POST['Schicht-Bis'];
$Soll=$_POST['Schicht-Soll'];
ChangeSchicht($db_link,$SchichtID,$Von,$Bis,$Soll);
}
if(isset($_POST['NewSchicht'])) {
$Von=$_POST['Schicht-Von'];
$Bis=$_POST['Schicht-Bis'];
$Soll=$_POST['Schicht-Soll'];
NewSchicht($db_link,$DienstID,$Von,$Bis,$Soll);
}
if(isset($_POST['DeleteSchicht'])) {
if(!DeleteSchicht($db_link,$SchichtID,false))
{
echo "Erst Helfer aus Schicht austragen<br>";
}
}
if(isset($_POST['ShowSchicht'])) {
$SchichtID=$_POST['SchichtSearch'];
}
if(isset($_POST['SchichtSearch'])) {
$SchichtID=$_POST['SchichtSearch'];
}
if(isset($_POST['ShowSchichten'])) {
$DienstID=$_POST['DienstSearch'];
}
if(isset($_POST['DienstSearch'])) {
$DienstID=$_POST['DienstSearch'];
$SchichtID=0;
}
// Dienste Anzeigen
////////////////////////////////////////////////////////
?>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button>
<form method="post">
<table border="0" id='customers'>
<tr><th> Dienst</th><th><select name="DienstSearch" id="DienstSearch" onchange="submit()">
<?php
$db_erg = GetDienste($db_link);
$Was="";
$Wo="";
$Info="";
$Leiter="";
$Gruppe="";
$HelferLevel="";
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($zeile['DienstID']!=$DienstID)
{
echo "<option value='".$zeile['DienstID']."'>".$zeile['Was']."</option>";
}
else
{
echo "<option value='".$zeile['DienstID']."' selected='selected'>".$zeile['Was']."</option>";
$Was=$zeile['Was'];
$Wo=$zeile['Wo'];
$Info=$zeile['Info'];
$Leiter=$zeile['Leiter'];
$Gruppe=$zeile['ElternDienstID'];
$HelferLevel=$zeile['HelferLevel'];
}
}
echo "</select>";
echo "</th></tr>";
echo " </table>";
echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</button></noscript>";
//echo "<button name='DeleteDienst' value='1'>Dienst löschen</button>";
// Aktueller Dienst und dessen Schichten Anzeigen
////////////////////////////////////////////////////////
?>
<table border="0" id="customers">
<tr>
<td style="border: 0px solid black;">Was</td></tr><tr><td style="border: 0px solid black;">
<input name="Dienst-Was" type="text" value="<?=htmlspecialchars($Was??'')?>">
</td>
</tr>
<tr>
<td style="border: 0px solid black;">Wo</td></tr><tr><td style="border: 0px solid black;">
<input name="Dienst-Wo" type="text " value="<?=htmlspecialchars($Wo??'')?>">
</td>
</tr>
</tr>
<td style="border: 0px solid black;">Info</td></tr><tr><td style="border: 0px solid black;">
<input name="Dienst-Info" type="text" value="<?=htmlspecialchars($Info??'')?>" >
</td>
</tr>
<tr>
<td style="border: 0px solid black;">Leiter</td></tr><tr><td style="border: 0px solid black;">
<!-- <input name="Dienst-Leiter" type="text" value="<?=htmlspecialchars($Leiter??'')?>" > -->
<?php
echo "<select name='Dienst-Leiter'>";
$db_erg = HelferListe($db_link);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($zeile['HelferID']!=$Leiter)
{
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</option>";
}
else
{
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</option>";
}
}
echo "</select>";
?>
</td>
</tr>
<tr>
<td style="border: 0px solid black;">Gruppe</td></tr><tr><td style="border: 0px solid black;">
<?php
//echo "#####".$Gruppe."#####";
echo "<select name='Dienst-Gruppe'>";
$db_erg = GetDiensteChilds($db_link,0);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($zeile['DienstID']!=$Gruppe && $DienstID!=$zeile['DienstID'])
{
echo "<option value='".$zeile['DienstID']."'>".$zeile['Was']."</option>";
}
else
{
echo "<option value='".$zeile['DienstID']."' selected='selected'>".$zeile['Was']."</option>";
}
}
echo "<option value=''>[Neue Gruppe]</option>";
echo "</select>";
?>
</td>
</td>
</tr>
<tr><td style="border: 0px solid black;">HelferLevel</td></tr>
<tr><td style="border: 0px solid black;">
<select name="HelferLevel">
<option value="1" <?php if($HelferLevel==1){echo "selected";};?> >Dauerhelfer</option>
<option value="2" <?php if($HelferLevel==2){echo "selected";};?> >Teilnehmer</option>
<?php //todo: Name aus HelferLevel-Tabelle erhalten?>
</select>
</td></tr>
</table>
<p><button name="ChangeDienst" value="1">Ändern</button><button name="NewDienst" value="1">Neue</button><button name='DeleteDienst' value='1'>Löschen</button></p>
</form>
<form method="post">
<table border="0" id='customers'">
<tr><th>Schicht</th><th><select name="SchichtSearch" id="SchichtSearch" onchange="submit()">
<?php
$Soll=1;
$db_erg = GetSchichtenEinesDienstes($db_link,$DienstID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($SchichtID == 0)
{
$SchichtID=$zeile['SchichtID'];
}
if ($zeile['SchichtID']!=$SchichtID)
{
echo "<option value='".$zeile['SchichtID']."'>".$zeile['TagVon']."</option>";
}
else
{
echo "<option value='".$zeile['SchichtID']."' selected='selected'>".$zeile['TagVon']."</option>";
$Von=$zeile['Von'];
$Bis=$zeile['Bis'];
$Soll=(int)$zeile['Soll'];
}
}
echo "</select>";
echo "</th></tr>";
echo " </table>";
echo "<p><noscript><button name='ShowSchicht' value='1'>Schicht Anzeigen</button></noscript>";
//echo "<button name='DeleteSchicht' value='1'>Schicht löschen</button>";
?>
<!-- <table border="0" style="border: 0px solid black;"> -->
<table border="0" id='customers'">
<tr>
<td style="border: 0px solid black;">Von</td></tr><tr><td style="border: 0px solid black;">
<input name="Schicht-Von" type="datetime-local" value="<?=htmlspecialchars($Von??'')?>" required>
</td>
<tr>
</tr>
<td style="border: 0px solid black;">Bis</td></tr><tr><td style="border: 0px solid black;">
<input name="Schicht-Bis" type="datetime-local" value="<?=htmlspecialchars($Bis??'')?>" required>
</td>
<tr>
</tr>
<td style="border: 0px solid black;">Soll</td></tr><tr><td style="border: 0px solid black;">
<input name="Schicht-Soll" type="number" min=1 value="<?=htmlspecialchars((int)$Soll??'')?>" required>
</td>
<tr>
</tr>
</table>
<p><button name="ChangeSchicht" value="1">Ändern</button><button name="NewSchicht" value="1">Neue</button><button name='DeleteSchicht' value='1'>Löschen</button></p>
</form>
<button class=back name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b><b>&larrhk;</b></b></button>
<?php
mysqli_free_result( $db_erg );
$_SESSION["DienstID"] = $DienstID;
$_SESSION["SchichtID"] = $SchichtID;
?>
</div>
</body>
</html>

View File

@ -0,0 +1,112 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link=ConnectDB();
include '_login.php';
// das hier muss nicht unbedingt eine Adminseite sein
if($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
<!doctype html>
<html>
<head>
<title>Admin Stochercon</title>
<link rel="stylesheet" href="style_common.css"/>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div style="width: 100%;">
<?php
DatenbankAufDeutsch($db_link);
$DienstID =$_SESSION["DienstID"];
$SchichtID =$_SESSION["SchichtID"];
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
$_SESSION["HelferID"] = $HelferID;
if(isset($_POST['ShowSchicht'])) {
$SchichtID=$_POST['SchichtSearch'];
}
if(isset($_POST['SchichtSearch'])) {
$SchichtID=$_POST['SchichtSearch'];
}
if(isset($_POST['ShowSchichten'])) {
$DienstID=$_POST['DienstSearch'];
}
if(isset($_POST['DienstSearch'])) {
$DienstID=$_POST['DienstSearch'];
$SchichtID=0;
}
// Dienste Anzeigen
////////////////////////////////////////////////////////
?>
<table border="0" class='commontable'>
<tr><th>ID</th><th>Dienst</th><th>Wo</th><th>Leiter</th><th>Gruppe</th><th>Stunden(Soll/Haben)</th><th>Helferlevel</th><th>Info</th></tr>
<?php
$db_erg = GetDienste($db_link);
$Was="";
$Wo="";
$Info="";
$Leiter="";
$Gruppe="";
$HelferLevel="";
$i=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$DienstID=$zeile['DienstID'];
$Was=$zeile['Was'];
$Wo=$zeile['Wo'];
$Info=$zeile['Info'];
$Leiter=$zeile['Leiter'];
$Gruppe=$zeile['ElternDienstID'];
$HelferLevel=$zeile['HelferLevel'];
echo "<tr><td>$DienstID</td><td>$Was</td><td>$Wo</td><td>$Leiter</td><td>$Gruppe</td><td>TODO:Stunden</td><td>$HelferLevel</td><td>";
// display:none ist eigentlich im css definiert, wird aber von irgend etwas ueberschrieben
echo "
<input type='checkbox' id='spoiler$i' style='display:none'/>
<label for='spoiler$i'>Info</label>
<div class='spoiler'>";
echo "$Info";
echo "</td></tr>";
$i+=1;
}
mysqli_free_result( $db_erg );
//$_SESSION["DienstID"] = $DienstID;
//$_SESSION["SchichtID"] = $SchichtID;
?>
</div>
</body>
</html>

View File

@ -0,0 +1,288 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link=ConnectDB();
include '_login.php';
if($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>
<!doctype html>
<html>
<head>
<title>Admin Stochercon - Schichten editieren</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button> <h4 style="display: inline;">Admin: Schichten editieren</h4>
<div style="width: 100%;">
<?php
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if(isset($_POST['CloseInfo']))
{
UNSET($InfoMeineSchichtID);
UNSET($InfoAlleSchichtID);
}
if(isset($_POST['InfoMeineSchichtID']))
{
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
UNSET($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
}
if(isset($_GET['InfoAlleSchichtID']))
{
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
UNSET($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoAlleSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer=$zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
// Beteiligte Helfer Holen
$db_erg = BeteiligteHelfer($db_link,$InfoAlleSchichtID);
$x=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$MitHelferID[$x] = $zeile['HelferID'];
$MitHelfer[$x] = $zeile['Name'];
$MitHelferHandy[$x]= $zeile['Handy'];
$x++;
}
}
function HelferAuswahlButton($db_link,$AliasHelferID){
echo '<b>Helfer w&auml;hlen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">';
$db_erg = HelferListe($db_link);
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($AliasHelferID!=$zeile['HelferID'])
{
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
}
else
{
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
}
}
echo '</select></form>';
}
if(isset($_POST['AliasHelfer'])) {
$AliasHelferID=$_POST['AliasHelfer'];
echo "AliasHelfer: $AliasHelferID<br>";
}elseif(isset($_SESSION["AliasHelferID"])){
$AliasHelferID = $_SESSION["AliasHelferID"];
}else{
HelferAuswahlButton($db_link,$AliasHelferID);
exit;
}
HelferAuswahlButton($db_link,$AliasHelferID);
$_SESSION["AliasHelferID"]=$AliasHelferID;
$AdminID = $_SESSION["AdminID"];
$db_erg=Helferdaten($db_link,$AliasHelferID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName=$zeile['Name'];
}
/// Schicht Löschen
////////////////////////////////////////////////////////
if(isset($_POST['Del'])) {
$messages = [];
$EinzelSchichtID = $_POST['Del'];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
if(empty($messages)) {
$db_erg = HelferVonSchichtLoeschen($db_link,$AliasHelferID,$EinzelSchichtID,$HelferID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
<form method="post" action="AdminMeineSchichten4.php#Info">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if(isset($_POST['sent'])) {
$messages = [];
$SchichtId = $_POST['sent'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
if(empty($messages))
{
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($db_link,$AliasHelferID,$SchichtId,$HelferID);
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
//die('<div class="Helfer wurde angelegt.</div>');
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message)
{
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
/// Alle Schichten Des Helfers Anzeigen
////////////////////////////////////////////////////////
$db_erg = AlleSchichtenEinesHelfers($db_link,$AliasHelferID);
if ( ! $db_erg )
{
echo "AlleSchichten des Helfes ungültige Abfrage";
die('Ungültige Abfrage: ' . mysqli_error());
}
$iSQLCount = mysqli_num_rows($db_erg);
//$iSQLCount = 3;
echo '<table id="customers">';
echo "<thead>";
echo "<tr>";
echo "<th colspan=1>". "Schichten von $HelferName (".$iSQLCount." Schichten)</th>";
//echo "</tr><tr>";
//echo "<th></th>";
echo "<th style='width:180px'>". "Von" . "</th>";
echo "<th style='width:180px'>". "Bis" . "</th>";
echo "<th style='width:90px'>". "Del" . "</th>";
echo "</tr>";
echo "</thead>";
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
//echo '<tr title="Details anzeigen" onclick="parent.DetailsSchichten.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
echo '<tr title="Details anzeigen" onclick="window.location.href=\'DetailsSchichten4.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
echo "<td>". $zeile['Was'] . "</td>";
echo "<td>". $zeile['Ab'] . "</td>";
echo "<td>". $zeile['Bis'] . "</td>";
echo "<td>". "<p><button title='Schicht entfernen' name='Del' value='". $zeile['EinzelSchichtID'] ."'>-</button></p>" . "</td>";
echo "</tr>";
}
echo "</table>";
echo "<br><br>";
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
echo '<table id="customers" onclick="window.location.href=\'AdminAlleSchichten4.php\'">';
echo "<tr>";
echo "<th>". "Alle Schichten der Con (".$iBelegteSchichtenCount."/".$iAlleSchichtenCount.")</th>";
echo "</tr>";
echo "</table>";
mysqli_free_result( $db_erg );
?>
</form>
</div>
</body>
</html>

188
html/AdminUserdaten4.php Normal file
View File

@ -0,0 +1,188 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link=ConnectDB();
include '_login.php';
if($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
function HelferAuswahlButton($db_link,$AliasHelferID){
echo '<b>Helfer w&auml;hlen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">';
$db_erg = HelferListe($db_link);
while($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($AliasHelferID!=$zeile['HelferID'])
{
echo "<option value='".$zeile['HelferID']."'>".$zeile['Name']."</optionen>";
}
else
{
echo "<option value='".$zeile['HelferID']."' selected='selected'>".$zeile['Name']."</optionen>";
}
}
echo '</select></form>';
}
if(isset($_POST['AliasHelfer'])) {
$AliasHelferID=$_POST['AliasHelfer'];
}elseif(isset($_SESSION["AliasHelferID"])){
$AliasHelferID = $_SESSION["AliasHelferID"];
}else{
HelferAuswahlButton($db_link,$AliasHelferID);
exit;
}
HelferAuswahlButton($db_link,$AliasHelferID);
$_SESSION["AliasHelferID"]=$AliasHelferID;
$AdminID = $_SESSION["AdminID"];
echo "Admin=$AdminID<br>";
echo "Helfer=$HelferID<br>";
echo "Alias=$AliasHelferID<br>";
?>
<!doctype html>
<html>
<head>
<title>Stochercon Helferdaten ändern</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
/// Helferdaten Aendern
////////////////////////////////////////////////////////
if(isset($_POST['change'])) {
$messages = [];
// Eingaben überprüfen:
if(strlen($_POST['helfer-newpasswort'])<8 and $_POST['helfer-newpasswort']!="")
{
$messages[] = 'Neues Passwort zu kurz';
}
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferHandy = $_POST['helfer-handy'];
$HelferNewPasswort = $_POST['helfer-newpasswort'];
if ($_POST['IsAdmin'])
{
$HelferIsAdmin=1;
//echo "is Admin<br>";
}
else
{
$HelferIsAdmin=0;
}
if(empty($messages)) {
// Helferdaten Ändern
HelferdatenAendern($db_link,$HelferName,$HelferEmail,$HelferHandy,$HelferNewPasswort,$AliasHelferID,$HelferIsAdmin,$HelferID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
///////////////////////////////////////////////////////////////
// Helfer Loeschen
///////////////////////////////////////////////////////////////
if(isset($_POST['del']))
{
HelferLoeschen($db_link,$AliasHelferID,$AdminID);
}
////////////////////////////////////////////////////////////////
// Helferdate holen
///////////////////////////////////////////////////////////////
$db_erg = Helferdaten($db_link,$AliasHelferID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName = $zeile['Name'];
$HelferEmail = $zeile['Email'];
$HelferHandy = $zeile['Handy'];
$HelferIsAdmin = $zeile['Admin'];
}
?>
<table id="customers">
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button> Helferdaten</th>
</tr>
<form method="post">
<tr>
<td>Name</td></tr><tr><td>
<input name="helfer-name" type="text" value="<?=htmlspecialchars($HelferName??'')?>" required>
</td>
</tr>
<tr>
<td>Email</td></tr><tr><td>
<input name="helfer-email" type="email " value="<?=htmlspecialchars($HelferEmail??'')?>" required>
</td>
</tr>
<tr>
<td>Handy</td></tr><tr><td>
<input name="helfer-handy" type="tel" value="<?=htmlspecialchars($HelferHandy??'')?>" >
</td>
</tr>
<tr>
<td>Admin Passwort</td></tr><tr><td>
<input name="helfer-passwort" type="password" value="<?=htmlspecialchars($HelferPasswort??'')?>" >
</td>
</tr>
<tr>
<td>Neues Helfer Passwort</td></tr><tr><td>
<input name="helfer-newpasswort" type="text" value="<?=htmlspecialchars($HelferPasswort??'')?>" >
</td>
</tr>
</table>
<table id="customers">
<col style="width:20px">
<tr>
<td><input type="checkbox" name="IsAdmin" value=1 align="right" <?php if($HelferIsAdmin==1){echo" checked";}?>></td>
<td>ist Admin</td>
</tr>
</table>
<p><button name="change" style="width:150px !important" value="1">&Auml;ndern</button></p>
<p><button name="del" style="width:150px !important" value="1">Helfer L&ouml;schen</button></p>
</form>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button>
</body>
</html>

View File

@ -0,0 +1,467 @@
<!doctype html>
<head>
<title>Helfer Stochercon Alle Schichten</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
<div style="width: 100%;">
<?php
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
include '_login.php';
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if(isset($_POST['CloseInfo']))
{
UNSET($InfoMeineSchichtID);
UNSET($InfoAlleSchichtID);
}
if(isset($_POST['InfoMeineSchichtID']))
{
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
UNSET($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
}
if(isset($_GET['InfoAlleSchichtID']))
{
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
UNSET($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoAlleSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer=$zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
// Beteiligte Helfer Holen
$db_erg = BeteiligteHelfer($db_link,$InfoAlleSchichtID);
$x=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$MitHelferID[$x] = $zeile['HelferID'];
$MitHelfer[$x] = $zeile['Name'];
$MitHelferHandy[$x]= $zeile['Handy'];
$x++;
}
}
if(isset($_GET['ZeitBereich']))
{
$ZeitBereich = $_GET['ZeitBereich'];
}
else
{
$ZeitBereich = 1;
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
<form method="post" action="AlleSchichten4.php#Info">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if(isset($_POST['plusschicht'])) {
$messages = [];
$SchichtId = $_POST['plusschicht'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
if(empty($messages))
{
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($db_link,$HelferID,$SchichtId);
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
//die('<div class="Helfer wurde angelegt.</div>');
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message)
{
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
if(isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$messages = [];
$SchichtID = $_POST['minusschicht'];
if(empty($messages))
{
// Helfer aus Schicht entfernen
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link,$HelferID,$SchichtID);
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message)
{
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
// Zusammenfassung Eigener Schichten
$db_erg = SchichtenSummeEinesHelfers($db_link,$HelferID);
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
echo '<table id="customers"><tr><th onclick="window.location.href=\'MeineSchichten4.php\'">';
echo " Mein Dienstplan (Zusammenfassung)<br>";
echo $zeile['Anzahl'];
echo " Schichten insgesamt ";
echo $zeile['Dauer']/3600;
echo " Stunden";
echo '</th></tr></table><br><br>';
/// Schichten Auswahl
////////////////////////////////////////////////////////
$addschicht =$_SESSION["addschicht"];
$dienstsort =$_SESSION["dienstsort"];
if(isset($_POST['addschicht']) && $_POST['addschicht']=='1')
{
$addschicht='1';
$dienstsort='1';
}
if(isset($_POST['addschicht']) && $_POST['addschicht']=='2')
{
$addschicht='2';
$dienstsort='2';
}
if(isset($_POST['addschicht']) && $_POST['addschicht']=='0')
{
$addschicht='0';
}
$_SESSION["addschicht"] =$addschicht;
$_SESSION["dienstsort"] =$dienstsort;
//echo "<br>Detail=".$addschicht."<br>";
if($addschicht=='0')
{
echo "<p><b>Schichten Hinzufügen geordnet nach</b>";
echo "<button name='addschicht' value='1'>Tage</button>";
echo "<button name='addschicht' value='2'>Dienste</button></p>";
}
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
if($addschicht!='0')
{
//$db_erg = AlleSchichten($db_link,$dienstsort);
//$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00",$HelferLevel);
if ($ZeitBereich==1) // Alle
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2200-05-19 00:00:00",$HelferLevel);
}
if ($ZeitBereich==2) // Davor
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2023-09-15 00:00:00",$HelferLevel);
}
if ($ZeitBereich==3) // Do
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-15 00:00:00","2023-09-16 00:00:00",$HelferLevel);
}
if ($ZeitBereich==4) // Fr
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-16 00:00:00","2023-09-17 00:00:00",$HelferLevel);
}
if ($ZeitBereich==5) // Sa
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-17 00:00:00","2023-09-18 00:00:00",$HelferLevel);
}
if ($ZeitBereich==6) // So
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-17 00:00:00","2023-09-18 00:00:00",$HelferLevel);
}
if ($ZeitBereich==7) // Danach
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-18 00:00:00","2223-05-22 00:00:00",$HelferLevel);
}
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
//echo "<p><button name='addschicht' value='0'><b>&larrhk;</b></button></p>";
echo '<table id="customers">';
echo "<thead>";
echo "<tr>";
echo "</tr><th colspan='7'>". "Alle Schichten der Con (" . $iBelegteSchichtenCount."/".$iAlleSchichtenCount. ")</th></tr>";
/*
if ($dienstsort=='1')
{
echo "<th>". "Dienst" . "</th>";
}
else
{
echo "<th>". "Von" . "</th>";
}
*/
if ($ZeitBereich==1)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=1\"'>". "Alle" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=1\"'>". "Alle" . "</th>";
}
if ($ZeitBereich==2)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
}
if ($ZeitBereich==3)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=3\"'>". "Do" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=3\"'>". "Do" . "</th>";
}
if ($ZeitBereich==4)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=4\"'>". "Fr" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=4\"'>". "Fr" . "</th>";
}
if ($ZeitBereich==5)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=5\"'>". "Sa" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=5\"'>". "Sa" . "</th>";
}
if ($ZeitBereich==6)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=6\"'>". "So" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=6\"'>". "So" . "</th>";
}
if ($ZeitBereich==7)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=7\"'>". "Danach" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=7\"'>". "Danach" . "</th>";
}
//echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
//echo "<th style='width:50px'>". "Do" . "</th>";
//echo "<th style='width:50px'>". "Fr" . "</th>";
//echo "<th style='width:50px'>". "Sa" . "</th>";
//echo "<th style='width:50px'>". "So" . "</th>";
//echo "<th style='width:100px'>". "Danach" . "</th>";
echo "</tr>";
echo "</thead>";
$OldTag = "";
$OldWas = "";
# um Zeilen mit von mir belegten Schichten hervorzuheben
$MeineDienste = SchichtIdArrayEinesHelfers($db_link,$HelferID);
//print_r($MeineDienste);
echo '</table>';
echo '<table id="customers">';
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($dienstsort=='1')
{
$Tag = $zeile['Tag'];
if ($Tag!=$OldTag)
{
echo "<tr><th colspan='5' >";
echo $Tag;
echo "</th></tr>";
$OldTag = $Tag;
}
}
else
{
$Was = $zeile['Was'];
if ($Was!=$OldWas)
{
echo "<thead>";
echo "<tr><th colspan='7' style='width:100%'>";
echo $Was;
echo "</th>";
/*
echo "<th style='width:100px'>". "Von" . "</th>";
echo "<th style='width:130px'>". "Bis" . "</th>";
echo "<th style='width:90px'>". "Ist/Soll" . "</th>";
echo "<th style='width:90px'>". "Add" . "</th>";
*/
echo "</tr>";
echo "</thead>";
$OldWas = $Was;
}
}
$Color="red";
if ( $zeile['Ist'] > 0 )
{
$Color="yellow";
}
if ( $zeile['Ist'] >= $zeile['Soll'] )
{
$Color="green";
}
$Von = $zeile['Ab'];
$Bis = $zeile['Bis'];
if ( substr($Von,0,2) == substr($Bis,0,2))
{
$Bis = substr($Bis,2);
}
$Von = substr($Von,2);
// Meine Schichten gruen einfaerben
if(in_array($zeile['SchichtID'], $MeineDienste)) {
$rowstyle = ' style="background-color:lightgreen" ';
$regtext = 'Meine!';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'style="SchichtID:'.$zeile['SchichtID'].';helferlvl:'.$HelferLevel.'"';
$regtext = '';
}
echo '<tr '.$rowstyle.'onclick="window.location.href=\'DetailsSchichten4.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
if ($dienstsort=='1')
{
echo "<td>". $zeile['Was'] . "</td>";
}
else
{
echo "<td>". $zeile['Tag'] . "</td>";
}
echo "<td>". $Von . "</td>";
echo "<td>". $Bis . "</td>";
echo "<td bgcolor='".$Color."'>". $zeile['Ist'] . "/";
echo "". $zeile['Soll'] . "</td>";
# buttons sind in der selben Zelle
echo "<td width='30px'>" . "<p><button width='20px' name='plusschicht' value='". $zeile['SchichtID'] ."'>+</button>" ."";
echo "" . "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='". $zeile['SchichtID'] ."'>&ndash;</button> $regtext</p>" ."</td>";
//echo "<td>$regtext</td>";
echo "</tr>\n";
}
echo "</table>";
}
mysqli_free_result( $db_erg );
?>
</form>
</div>
</body>
</html>

464
html/AlleSchichten4.php Normal file
View File

@ -0,0 +1,464 @@
<html>
<head>
<title>Helfer Stochercon Alle Schichten</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
<div style="width: 100%;">
<?php
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
include '_login.php';
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if(isset($_POST['CloseInfo']))
{
UNSET($InfoMeineSchichtID);
UNSET($InfoAlleSchichtID);
}
if(isset($_POST['InfoMeineSchichtID']))
{
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
UNSET($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
}
if(isset($_GET['InfoAlleSchichtID']))
{
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
UNSET($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoAlleSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer=$zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
// Beteiligte Helfer Holen
$db_erg = BeteiligteHelfer($db_link,$InfoAlleSchichtID);
$x=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$MitHelferID[$x] = $zeile['HelferID'];
$MitHelfer[$x] = $zeile['Name'];
$MitHelferHandy[$x]= $zeile['Handy'];
$x++;
}
}
if(isset($_GET['ZeitBereich']))
{
$ZeitBereich = $_GET['ZeitBereich'];
}
else
{
$ZeitBereich = 1;
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
<form method="post" action="AlleSchichten4.php#Info">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if(isset($_POST['plusschicht'])) {
$messages = [];
$SchichtId = $_POST['plusschicht'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
if(empty($messages))
{
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($db_link,$HelferID,$SchichtId);
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
//die('<div class="Helfer wurde angelegt.</div>');
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message)
{
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
if(isset($_POST['minusschicht'])) {
// Mich aus Schicht entfernen
$messages = [];
$SchichtID = $_POST['minusschicht'];
if(empty($messages))
{
// Helfer aus Schicht entfernen
$db_erg = HelferVonSchichtLoeschen_SchichtID($db_link,$HelferID,$SchichtID);
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message)
{
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
// Zusammenfassung Eigener Schichten
$db_erg = SchichtenSummeEinesHelfers($db_link,$HelferID);
$zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC);
echo '<table id="customers"><tr><th onclick="window.location.href=\'MeineSchichten4.php\'">';
echo " Mein Dienstplan (Zusammenfassung)<br>";
echo $zeile['Anzahl'];
echo " Schichten insgesamt ";
echo $zeile['Dauer']/3600;
echo " Stunden";
echo '</th></tr></table><br><br>';
/// Schichten Auswahl
////////////////////////////////////////////////////////
$addschicht =$_SESSION["addschicht"];
$dienstsort =$_SESSION["dienstsort"];
if(isset($_POST['addschicht']) && $_POST['addschicht']=='1')
{
$addschicht='1';
$dienstsort='1';
}
if(isset($_POST['addschicht']) && $_POST['addschicht']=='2')
{
$addschicht='2';
$dienstsort='2';
}
if(isset($_POST['addschicht']) && $_POST['addschicht']=='0')
{
$addschicht='0';
}
$_SESSION["addschicht"] =$addschicht;
$_SESSION["dienstsort"] =$dienstsort;
//echo "<br>Detail=".$addschicht."<br>";
if($addschicht=='0')
{
echo "<p><b>Schichten Hinzufügen geordnet nach</b>";
echo "<button name='addschicht' value='1'>Tage</button>";
echo "<button name='addschicht' value='2'>Dienste</button></p>";
}
//echo "InfoAlleSchichtID ".$InfoAlleSchichtID;
if($addschicht!='0')
{
//$db_erg = AlleSchichten($db_link,$dienstsort);
//$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-05-18 00:00:00","2023-05-19 00:00:00",$HelferLevel);
if ($ZeitBereich==1) // Alle
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2200-05-19 00:00:00",$HelferLevel);
}
if ($ZeitBereich==2) // Davor
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2023-09-15 00:00:00",$HelferLevel);
}
if ($ZeitBereich==3) // Do
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-15 00:00:00","2023-09-16 00:00:00",$HelferLevel);
}
if ($ZeitBereich==4) // Fr
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-16 00:00:00","2023-09-17 00:00:00",$HelferLevel);
}
if ($ZeitBereich==5) // Sa
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-17 00:00:00","2023-09-18 00:00:00",$HelferLevel);
}
if ($ZeitBereich==6) // So
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-17 00:00:00","2023-09-18 00:00:00",$HelferLevel);
}
if ($ZeitBereich==7) // Danach
{
$db_erg = AlleSchichtenImZeitbereich($db_link,"2023-09-18 00:00:00","2223-05-22 00:00:00",$HelferLevel);
}
// fuer Anzahlanzeige in Ueberschrift
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
echo "<button type='button' onclick='expand_all_table_rows();'>Expand all</button>";
//echo "<p><button name='addschicht' value='0'><b>&larrhk;</b></button></p>";
echo '<table id="customers">';
echo "<tr class='header'>";
echo "<th colspan='7'>". "Alle Schichten der Con (" . $iBelegteSchichtenCount."/".$iAlleSchichtenCount. ")</th></tr>";
/*
if ($dienstsort=='1')
{
echo "<th>". "Dienst" . "</th>";
}
else
{
echo "<th>". "Von" . "</th>";
}
*/
echo "<tr class='header'>"; // Zeitbereich tr
if ($ZeitBereich==1)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=1\"'>". "Alle" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=1\"'>". "Alle" . "</th>";
}
if ($ZeitBereich==2)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
}
if ($ZeitBereich==3)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=3\"'>". "Do" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=3\"'>". "Do" . "</th>";
}
if ($ZeitBereich==4)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=4\"'>". "Fr" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=4\"'>". "Fr" . "</th>";
}
if ($ZeitBereich==5)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=5\"'>". "Sa" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=5\"'>". "Sa" . "</th>";
}
if ($ZeitBereich==6)
{
echo "<th style='width:50px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=6\"'>". "So" . "</th>";
}
else
{
echo "<th style='width:50px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=6\"'>". "So" . "</th>";
}
if ($ZeitBereich==7)
{
echo "<th style='width:100px; background-color:#0000FF' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=7\"'>". "Danach" . "</th>";
}
else
{
echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=7\"'>". "Danach" . "</th>";
}
//echo "<th style='width:100px' onclick='window.location.href=\"AlleSchichten4.php?ZeitBereich=2\"'>". "Davor" . "</th>";
//echo "<th style='width:50px'>". "Do" . "</th>";
//echo "<th style='width:50px'>". "Fr" . "</th>";
//echo "<th style='width:50px'>". "Sa" . "</th>";
//echo "<th style='width:50px'>". "So" . "</th>";
//echo "<th style='width:100px'>". "Danach" . "</th>";
echo "</tr>"; //Zeitbereich tr
$OldTag = "";
$OldWas = "";
# um Zeilen mit von mir belegten Schichten hervorzuheben
$MeineDienste = SchichtIdArrayEinesHelfers($db_link,$HelferID);
//print_r($MeineDienste);
echo '</table>';
echo '<table id="customers">';
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
if ($dienstsort=='1')
{
$Tag = $zeile['Tag'];
if ($Tag!=$OldTag)
{
echo "<tr class='header'><th colspan='5' >";
echo $Tag;
echo "</th></tr>";
$OldTag = $Tag;
}
}
else
{
$Was = $zeile['Was'];
if ($Was!=$OldWas)
{
echo "<tr class='header'><th colspan='7' style='width:100%'>";
echo $Was;
echo "</th>";
/*
echo "<th style='width:100px'>". "Von" . "</th>";
echo "<th style='width:130px'>". "Bis" . "</th>";
echo "<th style='width:90px'>". "Ist/Soll" . "</th>";
echo "<th style='width:90px'>". "Add" . "</th>";
*/
echo "</tr>";
$OldWas = $Was;
}
}
$Color="red";
if ( $zeile['Ist'] > 0 )
{
$Color="yellow";
}
if ( $zeile['Ist'] >= $zeile['Soll'] )
{
$Color="green";
}
$Von = $zeile['Ab'];
$Bis = $zeile['Bis'];
if ( substr($Von,0,2) == substr($Bis,0,2))
{
$Bis = substr($Bis,2);
}
$Von = substr($Von,2);
// Meine Schichten gruen einfaerben
if(in_array($zeile['SchichtID'], $MeineDienste)) {
$rowstyle = ' style="background-color:lightgreen" ';
$regtext = 'Meine!';
} else {
// dummy-style, um SchichtID unsichtbar im Tag anzuzeigen
$rowstyle = 'dbinfo="SchichtID:'.$zeile['SchichtID'].';helferlvl:'.$HelferLevel.'" ';
$regtext = '';
}
echo '<tr '.$rowstyle.'onclick="window.location.href=\'DetailsSchichten4.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
if ($dienstsort=='1')
{
echo "<td>". $zeile['Was'] . "</td>";
}
else
{
echo "<td>". $zeile['Tag'] . "</td>";
}
echo "<td>". $Von . "</td>";
echo "<td>". $Bis . "</td>";
echo "<td bgcolor='".$Color."'>". $zeile['Ist'] . "/";
echo "". $zeile['Soll'] . "</td>";
# buttons sind in der selben Zelle
echo "<td width='30px'>" . "<button width='20px' name='plusschicht' value='". $zeile['SchichtID'] ."'>+</button>" ."";
echo "" . "&nbsp;&nbsp;<button width='120px' name='minusschicht' value='". $zeile['SchichtID'] ."'>&ndash;</button> $regtext" ."</td>";
//echo "<td>$regtext</td>";
echo "</tr>\n";
}
echo "</table>";
}
mysqli_free_result( $db_erg );
?>
</form>
</div>
</body>
</html>

166
html/Ausdrucke4.php Normal file
View File

@ -0,0 +1,166 @@
<html>
<head>
<title>Admin Stochercon</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<link rel="stylesheet" href="style_print.css" media="print"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div style="width: 100%;">
<?php
SESSION_START();
require_once('../hidden/konfiguration.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
DatenbankAufDeutsch($db_link);
include '_login.php';
?>
<table id="customers" >
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button> &nbsp; <b>Übersicht Dienst Stochercon 2023</b></th>
</tr>
</table>
<?php
echo '<table id="customers" >';
$db_erg = GetDiensteChilds($db_link,0);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
echo "<tr><th>";
echo $zeile["Was"];
echo "</th></tr>";
$db_erg2 = GetDiensteChilds($db_link,$zeile["DienstID"]);
while ($zeile = mysqli_fetch_array( $db_erg2, MYSQLI_ASSOC))
{
echo "<tr><td>";
echo $zeile["Was"];
echo "</td></tr>";
}
}
echo "</table>";
$db_erg = AlleSchichtenImZeitbereich($db_link,"2000-05-18 00:00:00","2200-05-19 00:00:00");
$OldWas="";
echo "<br><br><table id='customers' style='page-break-before:always'>";
?>
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button> &nbsp; <b>Übersicht Schichten der Dienste Stochercon 2023</b></th>
</tr>
<?php
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$Was = $zeile["Was"];
if($Was!= $OldWas)
{
echo "</table>";
//echo '<table id="customers" style="page-break-before:always">';
echo '<table id="customers">';
echo "<tr><th colspan=3>";
echo $Was;
echo "</th></tr>";
$OldWas=$Was;
}
echo "<tr><td style='width:100px'>";
echo $zeile["Ab"];
echo "</td><td style='width:100px'>";
echo $zeile["Bis"];
echo "</td><td>";
$db_erg2 = BeteiligteHelfer($db_link,$zeile["SchichtID"]);
while ($zeile = mysqli_fetch_array( $db_erg2, MYSQLI_ASSOC))
{
echo $zeile["Name"];
echo " ";
echo $zeile["Handy"];
echo ",";
}
echo "</td></tr>";
}
echo "</table>";
$OldHelferName="";
echo "<br><br><table id='customers' style='page-break-before:always'>";
?>
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button> &nbsp; <b>Übersicht Helfer und Ihre Schichten Stochercon 2023</b></th>
</tr>
<?php
$db_erg = AlleHelferSchichtenUebersicht($db_link);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName = $zeile["Name"];
if($HelferName!= $OldHelferName)
{
echo "</table>";
//echo '<table id="customers" style="page-break-before:always">';
echo '<table id="customers">';
echo "<tr><th colspan=3>";
echo $HelferName;
echo "</th></tr>";
$OldHelferName=$HelferName;
}
echo "<tr><td style='width:100px'>";
echo (int)$zeile["Dauer"];
echo "</td><td>";
echo $zeile["Was"];
echo "</td></tr>";
}
echo "</table>";
?>
<?php
mysqli_free_result( $db_erg );
?>
</body>
</html>

172
html/Ausdrucke5.php Normal file
View File

@ -0,0 +1,172 @@
<html>
<head>
<title>Admin Stochercon</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<link rel="stylesheet" href="style_print.css" media="print"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div style="width: 100%;">
<?php
SESSION_START();
require_once('../hidden/konfiguration.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
DatenbankAufDeutsch($db_link);
include '_login.php';
?>
<?php
setlocale (LC_ALL, 'de_DE.UTF-8') or die("Locale not installed");
$unixtime=strtotime('2023-09-15');
for($day=0; $day<3; $day++)
{
$datestring=date('Y-m-d',$unixtime+$day*24*60*60);
echo "<h1>".strftime('%A, %e. %B %Y',$unixtime+$day*24*60*60)."</h1>";
$db_erg = GetDiensteForDay($db_link,2,$datestring);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$db_erg2 = GetSchichtenForDienstForDay($db_link,$zeile["DienstId"],$datestring);
echo "<table id='customers'>";
echo "<tr><th colspan=3>".$zeile["Was"]."</th></tr>";
$schichten=0;
$OldVon=0;
$OldSoll=0;
while($zeile2 = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC))
{
if($zeile2["Von"]!=$OldVon && $schichten!=0)
{
while($schichten<$OldSoll)
{
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>".$schichten."/".$OldSoll."</strong> ".date('H:i',strtotime($OldVon))." - ".date('H:i',strtotime($OldBis))."</td>";
echo "<td rowspan='3' valign='top'></td>";
echo "<td width='50%'>".strftime('%a %H:%M',strtotime($OldVon))." <strong>".$zeile["Was"]."</strong></td>";
echo "</tr>";
echo "<tr><td><i>".$zeile["Wo"]."</i></td></tr>";
echo "<tr><td>".$zeile["Info"]."</td></tr>";
echo "<tr height='10mm'></tr>";
}
$schichten=0;
}
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>".$schichten."/".$zeile2["Soll"]."</strong> ".date('H:i',strtotime($zeile2["Von"]))." - ".date('H:i',strtotime($zeile2["Bis"]))."</td>";
echo "<td rowspan='3' valign='top'><strong>".$zeile2["Name"]."</strong> ".$zeile2["Handy"]."</td>";
echo "<td width='50%'>".strftime('%a %H:%M',strtotime($zeile2["Von"]))." <strong>".$zeile["Was"]."</strong></td>";
echo "</tr>";
echo "<tr><td><i>".$zeile["Wo"]."</i></td></tr>";
echo "<tr><td>".$zeile["Info"]."</td></tr>";
echo "<tr height='10mm'></tr>";
$OldVon = $zeile2["Von"];
$OldBis = $zeile2["Bis"];
$OldSoll = $zeile2["Soll"];
if(empty($zeile2["Name"]))
{
while($schichten<$OldSoll)
{
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>".$schichten."/".$OldSoll."</strong> ".date('H:i',strtotime($OldVon))." - ".date('H:i',strtotime($OldBis))."</td>";
echo "<td rowspan='3' valign='top'></td>";
echo "<td width='50%'>".strftime('%a %H:%M',strtotime($OldVon))." <strong>".$zeile["Was"]."</strong></td>";
echo "</tr>";
echo "<tr><td><i>".$zeile["Wo"]."</i></td></tr>";
echo "<tr><td>".$zeile["Info"]."</td></tr>";
echo "<tr height='10mm'></tr>";
}
}
}
echo "</table>";
}
}
$unixtime=strtotime('2023-09-15');
for($day=0; $day<3; $day++)
{
$datestring=date('Y-m-d',$unixtime+$day*24*60*60);
echo "<h1>".strftime('%A, %e. %B %Y',$unixtime+$day*24*60*60)."</h1>";
$db_erg = GetDiensteForDay($db_link,1,$datestring);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$db_erg2 = GetSchichtenForDienstForDay($db_link,$zeile["DienstId"],$datestring);
echo "<table id='customers'>";
echo "<tr><th colspan=3>".$zeile["Was"]."</th></tr>";
$schichten=0;
$OldVon=0;
$OldSoll=0;
while($zeile2 = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC))
{
if($zeile2["Von"]!=$OldVon && $schichten!=0)
{
while($schichten<$OldSoll)
{
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>".$schichten."/".$OldSoll."</strong> ".date('H:i',strtotime($OldVon))." - ".date('H:i',strtotime($OldBis))."</td>";
echo "<td rowspan='3' valign='top'></td>";
echo "<td width='50%'>".strftime('%a %H:%M',strtotime($OldVon))." <strong>".$zeile["Was"]."</strong></td>";
echo "</tr>";
echo "<tr><td><i>".$zeile["Wo"]."</i></td></tr>";
echo "<tr><td>".$zeile["Info"]."</td></tr>";
echo "<tr height='10mm'></tr>";
}
$schichten=0;
}
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>".$schichten."/".$zeile2["Soll"]."</strong> ".date('H:i',strtotime($zeile2["Von"]))." - ".date('H:i',strtotime($zeile2["Bis"]))."</td>";
echo "<td rowspan='3' valign='top'><strong>".$zeile2["Name"]."</strong> ".$zeile2["Handy"]."</td>";
echo "<td width='50%'>".strftime('%a %H:%M',strtotime($zeile2["Von"]))." <strong>".$zeile["Was"]."</strong></td>";
echo "</tr>";
echo "<tr><td><i>".$zeile["Wo"]."</i></td></tr>";
echo "<tr><td>".$zeile["Info"]."</td></tr>";
echo "<tr height='10mm'></tr>";
$OldVon = $zeile2["Von"];
$OldBis = $zeile2["Bis"];
$OldSoll = $zeile2["Soll"];
if(empty($zeile2["Name"]))
{
while($schichten<$OldSoll)
{
$schichten++;
echo "<tr>";
echo "<td rowspan='3' style='width:0.1%; white-space:nowrap;' valign='top'><strong>".$schichten."/".$OldSoll."</strong> ".date('H:i',strtotime($OldVon))." - ".date('H:i',strtotime($OldBis))."</td>";
echo "<td rowspan='3' valign='top'></td>";
echo "<td width='50%'>".strftime('%a %H:%M',strtotime($OldVon))." <strong>".$zeile["Was"]."</strong></td>";
echo "</tr>";
echo "<tr><td><i>".$zeile["Wo"]."</i></td></tr>";
echo "<tr><td>".$zeile["Info"]."</td></tr>";
echo "<tr height='10mm'></tr>";
}
}
}
echo "</table>";
}
}
?>
</body>
</html>

View File

@ -3,8 +3,8 @@
<svg
version="1.0"
width="145"
height="129"
width="580.61249"
height="517.08826"
viewBox="0 0 580.6125 517.08825"
id="svg2283"
xml:space="preserve"

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
html/Bilder/Home.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
html/Bilder/OK.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
html/Bilder/Plus.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
html/Bilder/Ralf.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
html/Bilder/Tennishalle.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

BIN
html/Bilder/Turnerheim.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

177
html/CreateHelfer4.php Normal file
View File

@ -0,0 +1,177 @@
<html>
<head>
<title>Stochercon 2023</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
SESSION_START();
//$HelferID = $_SESSION["HelferId"];
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
if(isset($_POST['sent'])) {
$messages = [];
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferHandy = $_POST['helfer-handy'];
$HelferLevel = $_POST['helfer-level'];
$HelferPasswort = $_POST['helfer-passwort'];;
$HelferPasswort2 = $_POST['helfer-passwort2'];;
//echo $HelferName;
//echo $HelferEmail;
//echo $HelferHandy;
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
if(!filter_var($HelferEmail, FILTER_VALIDATE_EMAIL)) {
$messages[] = 'Bitte prüfen Sie die eingegebene E-Mail-Adresse.';
}
//if(!filter_var($HelferHandy, FILTER_VALIDATE_INT)) {
// $messages[] = 'Bitte prüfen Sie die eingegebene Handynummer';
//}
if($HelferPasswort!=$HelferPasswort2)
{
$messages[] = 'Passwörter stimmen nicht überein';
$HelferPasswort ="";
$HelferPasswort2 = "";
}
if(strlen($HelferPasswort)<8)
{
$messages[] = 'Passwörter zu kurz';
$HelferPasswort ="";
$HelferPasswort2 = "";
}
if(empty($messages))
{
$db_erg = CreateHelfer($db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);
if ( $db_erg )
{
//$insertID = mysql_insert_id();
//echo "InserId = ".$insertID;
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
echo "Helfer mit Emailadresse ".$HelferEmail." Angelegt.<br><br>";
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
$HelferPasswort = '';
$HelferPasswort2 = '';
//die('<div class="Helfer wurde angelegt.</div>');
}
else
{
echo "Helfer konnte nicht Angelegt werden, möglichweise exisistiert die Emailadresse ".$HelferEmail." bereits.<br><br>";
}
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
?>
<p>Hier k&ouml;nnen Sie sich selbst einen Account als Helfer anlegen.</p>
<form method="post">
<table id="customers">
<tr>
<th>Helferdaten</th>
</tr>
<tr>
<td>Name</td>
</tr>
<tr><td>
<input name="helfer-name" type="text" value="<?=htmlspecialchars($HelferName??'')?>" required>
</td></tr>
<tr>
<td>Email</td>
</tr>
<tr><td>
<input name="helfer-email" type="email " value="<?=htmlspecialchars($HelferEmail??'')?>" required>
</td></tr>
<tr>
<td>Handy</td>
</tr>
<tr><td>
<input name="helfer-handy" type="tel" value="<?=htmlspecialchars($HelferHandy??'')?>" >
</td>
</tr>
<tr>
<td>Passwort</td></tr>
<tr><td>
<input name="helfer-passwort" type="password" value="<?=htmlspecialchars($HelferPasswort??'')?>" required>
</td>
</tr>
<tr><td>Passwort wiederholen </td></tr>
<tr><td>
<input name="helfer-passwort2" type="password" value="<?=htmlspecialchars($HelferPasswort2??'')?>" required>
</td>
</tr>
<tr><td>Helferlevel </td></tr>
<tr><td>
<select name="helfer-level">
<?php
$db_erg = HelferLevel($db_link);
$selected="";
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC)) {
$HelferLevel = $zeile['HelferLevel'];
$HelferLevelBeschreibung = $zeile['HelferLevelBeschreibung'];
if($HelferLevel==1){ $selected = " selected " ;};
echo "<option value='$HelferLevel' $selected>$HelferLevelBeschreibung</option>";
$selected="";
}
?>
</select>
</td>
</tr>
</table>
<br>
<button name="sent" value="1">Helfer Anlegen</button>
</form>
<?php
mysqli_free_result( $db_erg );
?>
</body>
</html>

Binary file not shown.

View File

@ -1,47 +1,45 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
?>
<!doctype html>
<html>
<head></head>
<body>
<?php
require_once ('tokenkonfiguration.php');
if (isset($_GET['token'])) {
// E-Mail-Adresse des Nutzers
$encrypted_data = $_GET['token'];
$encrypted_iv = $_GET['iv'];
echo "token: $encrypted_data<br> \n";
echo "iv: $encrypted_iv<br> \n";
if(isset($_GET['token']) ) {
// Erstellen eines Cipher-Objekts für die Verschlüsselung
$cipher_method = "AES-256-CBC";
$iv_length = openssl_cipher_iv_length($cipher_method);
$iv = base64_decode($encrypted_iv);
$cipher_options = OPENSSL_RAW_DATA;
$cipher_key = openssl_digest($secret_key, 'SHA256', true);
// E-Mail-Adresse des Nutzers
$encrypted_data = $_GET['token'];
$encrypted_iv = $_GET['iv'];
echo "token: $encrypted_data<br> \n";
echo "iv: $encrypted_iv<br> \n";
// Entschlüsseln des verschlüsselten Textes
$decoded_cipher_text = base64_decode($encrypted_data);
$iv = base64_decode($encrypted_iv);
$iv = substr($decoded_cipher_text, 0, $iv_length);
$cipher_text = substr($decoded_cipher_text, $iv_length);
$decrypted_email = openssl_decrypt($cipher_text, $cipher_method, $cipher_key, $cipher_options, $iv);
// Erstellen eines Cipher-Objekts für die Verschlüsselung
$cipher_method = "AES-256-CBC";
$iv_length = openssl_cipher_iv_length($cipher_method);
$iv = base64_decode($encrypted_iv);
$cipher_options = OPENSSL_RAW_DATA;
$cipher_key = openssl_digest($secret_key, 'SHA256', true);
// Verifikationsstring überprüfen und entfernen
$verification_length = strlen($secret_verification);
if (substr($decrypted_email, -$verification_length) == $secret_verification) {
// Entschlüsseln des verschlüsselten Textes
$decoded_cipher_text = base64_decode($encrypted_data);
$iv = base64_decode($encrypted_iv);
$iv = substr($decoded_cipher_text, 0, $iv_length);
$cipher_text = substr($decoded_cipher_text, $iv_length);
$decrypted_email = openssl_decrypt($cipher_text, $cipher_method, $cipher_key, $cipher_options, $iv);
// Verifikationsstring überprüfen und entfernen
$verification_length = strlen($secret_verification);
if(substr($decrypted_email, -$verification_length) == $secret_verification) {
$decrypted_email = substr($decrypted_email, 0, -$verification_length);
}
}
// Ausgabe der entschlüsselten E-Mail-Adresse
echo "E-Mail-Adresse: ", $decrypted_email, "<br>\n";
// Ausgabe der entschlüsselten E-Mail-Adresse
echo "E-Mail-Adresse: ", $decrypted_email, "<br>\n";
} else {
echo "Kein g&uuml;ltiges Token!<br>";
echo "Kein g&uuml;ltiges Token!<br>";
}
?>

178
html/DetailsSchichten4.php Normal file
View File

@ -0,0 +1,178 @@
<html>
<head>
<title>Helfer Stochercon</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
//<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button><br>
?>
<div style="width: 100%;">
<?php
SESSION_START();
require_once ('../hidden/konfiguration.php');
//require_once ('SQL.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if(isset($_GET['InfoAlleSchichtID']))
{
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
UNSET($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoAlleSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer=$zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
// Beteiligte Helfer Holen
$db_erg = BeteiligteHelfer($db_link,$InfoAlleSchichtID);
$x=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$MitHelferID[$x] = $zeile['HelferID'];
$MitHelfer[$x] = $zeile['Name'];
$MitHelferHandy[$x]= $zeile['Handy'];
$x++;
}
}
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
if(isset($_POST['HelferID']))
{
$HelferID = $_POST['HelferID'];
}
if(isset($_POST['ShowHelfer'])) {
$HelferID=$_POST['HelperSearch'];
}
$_SESSION["HelferID"] = $HelferID;
?>
<form method="post" action="DetailsSchichten.php#Info">
<?php
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
/// Alle Schichten Des Helfers Anzeigen
////////////////////////////////////////////////////////
echo '<table id="customers">';
echo "<th>".$Was."</th>";
echo "<tr><td>";
//echo "<p><button name='Del' value='CloseInfo'><b>&larrhk;</b></button><br>";
echo "<b>Beschreibung:</b><br>";
echo $Info . "<br><br>";
echo "<b>Ort:</b><br>". $Wo . "<br><br>";
echo "<b>Dauer:</b><br>". $Dauer . "<br><br>";
echo "<b>Ansprechparter:</b><br>". $Leiter .", ";
echo $LeiterHandy.", ";
echo $LeiterEmail . "<br><br>";
echo "<b>Helfer der Schicht:</b><br>";
$x=0;
$arrayLength = count($MitHelfer);
while ($x<$arrayLength)
{
echo "ID:".$MitHelferID[$x].", ";
echo $MitHelfer[$x].", ";
echo $MitHelferHandy[$x]."<br>";
$x++;
}
echo "</td></tr>\n";
echo "</table>";
mysqli_free_result( $db_erg );
?>
</form>
</div>
</body>
</html>

View File

@ -1,20 +1,19 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
require '_crypt.php';
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link=ConnectDB();
include '_login.php';
include '_crypt.php';
if ($AdminStatus != 1) {
if($AdminStatus != 1) {
//Seite nur fuer Admins. Weiter zu index.php und exit, wenn kein Admin
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
function validate_email($email)
{
function validate_email($email) {
// Prüfen, ob die Email-Adresse syntaktisch gültig ist
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return false;
@ -39,27 +38,28 @@ function validate_email($email)
// wird immer auf 2 (Teilnehmer) gesetzt und wird auch nicht gespeichert, wenn anders gesetzt
// andere level muessen jedes Mal gesetzt werden
$level = 2;
$level=2;
if (isset($_POST['helfer-status'])) {
$level = $_POST['helfer-status'];
if(isset($_POST['helfer-status'])) {
$level=$_POST['helfer-status'];
}
// nicht sicher, wo so ein default-text herkommen sollte
// oder ob es tatsächlich einen geben sollte
$email_subject = EVENTNAME . " beginnt bald!";
if (isset($_POST['email-subject'])) {
$email_subject = $_POST['email-subject'];
$email_subject="Stochercon Helferschichten";
if(isset($_POST['email-subject'])) {
$email_subject=$_POST['email-subject'];
}
$email_cc = "drophelfer@gmail.com";
if (isset($_POST['email-cc'])) {
$email_cc = $_POST['email-cc'];
$email_cc="helfer@jonglaria.org";
if(isset($_POST['email-cc'])) {
$email_cc=$_POST['email-cc'];
}
$email_text = "
Lieber Teilnehmer,
trage dich bitte mit folgendem Link für eine Stunde pro Person als Helfer bei uns ein.Wir verschicken eine Mail pro Emailaddresse, also bitte für alle, die mit dieser Emailaddresse angemeldet sind.
$email_text="
Lieber Teilnehmer der Stochercon,
trage dich bitte mit folgendem Link für eine Stunde pro Person als Helfer bei uns ein. Wir verschicken eine Mail pro Emailaddresse, also bitte für alle, die mit dieser Emailaddresse angemeldet sind.
Danke für deine Mithilfe!
@ -68,26 +68,26 @@ XXtokenXX
Du kannst dich auch später wieder über den Link einloggen und die Schicht ändern.
Viele Grüße,
dein " . EVENTNAME . " Team
dein Stocherconteam
";
if (isset($_POST['email-text'])) {
$email_text = $_POST['email-text'];
if(isset($_POST['email-text'])) {
$email_text=$_POST['email-text'];
}
$sendmail = 0;
if (isset($_POST['sendmail'])) {
$sendmail = $_POST['sendmail'];
$sendmail=0;
if(isset($_POST['sendmail'])) {
$sendmail=$_POST['sendmail'];
}
?>
<!doctype html>
<head>
<title>Helfer <?php echo EVENTNAME ?>: Email Tokens generieren</title>
<title>Helfer Stochercon: Email Tokens generieren</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
@ -96,7 +96,7 @@ if (isset($_POST['sendmail'])) {
?>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button>
<div style="width: 100%;">
<p>
<h2> Emails mit Login-Link zur HelferDB generieren </h2>
@ -113,24 +113,20 @@ Als Passwort wird das Token gesetzt. Man kann sich mit dem Link danach wieder in
<label for="helfer-status">Status des Accounts, den der Link erstellt:</label>
<select style="width:260px" id="helfer-status" name="helfer-status">
<!-- TODO: aus DB abfragen -->
<option value="2"<?php if ($level == 2) {
echo "selected";
}?>>Teilnehmer</option>
<option value="1" <?php if ($level == 1) {
echo "selected";
}?>>Dauerhelfer</option>
<option value="2"<?php if($level==2){echo "selected";}?>>Teilnehmer</option>
<option value="1" <?php if($level==1){echo "selected";}?>>Dauerhelfer</option>
</select>
</p><p>
Subject der Email: <br>
<input id="email-subject" name="email-subject" type="textbox" value="<?php echo htmlspecialchars($email_subject ?? '');?>">
<input id="email-subject" name="email-subject" type="textbox" value="<?=htmlspecialchars($email_subject??'');?>">
</p><p>
CC (Kopie) der Email geht an: <br>
<input id="email-cc" name="email-cc" type="textbox" value="drophelfer@gmail.com">
<input id="email-cc" name="email-cc" type="textbox" value="helfer@jonglaria.org">
</p><p>
Emailtext (XXtokenXX an die Stelle schreiben, an der der Link im Emailtext stehen soll):
</p><p>
<textarea id="email-text" name="email-text" rows="20" cols="80">
<?php echo htmlspecialchars($email_text ?? '');?>
<?=htmlspecialchars($email_text??'');?>
</textarea>
</p>
<p>
@ -146,8 +142,10 @@ Liste von Emails, an die Anschreiben verschickt wird (Eine Email pro Zeile, nur
</form>
</p>
<?php
require_once ('tokenkonfiguration.php');
if (isset($_POST['email-liste'])) {
if(isset($_POST['email-liste'])) {
// TODO: check if email-text contains tokentext to substitute
// TODO: check if subject is set
// get email addresses from textarea
@ -160,30 +158,30 @@ if (isset($_POST['email-liste'])) {
//preg_split, um bei allen Leerzeichen zu trennen
$email_array = preg_split('/\s+/', $email_list); // Trennzeichen: 1 oder mehr Whitespace-Zeichen
foreach ($email_array as $email) {
$email = trim($email);
$encrypted_data = encode_string($secret_key, $email, $level, $secret_verification);
$email=trim($email);
$encrypted_data=encode_string($secret_key, $email,$level,$secret_verification);
$token_url = "$urlprefix?token=$encrypted_data";
// Ausgabe des verschluesselten Textes in der URL
$decrypted_data = decode_string($secret_key, urldecode($encrypted_data), $secret_verification);
$decrypted_data = decode_string($secret_key, urldecode($encrypted_data),$secret_verification);
$email_subst_text = str_replace('XXtokenXX', $token_url, $email_text);
if ($sendmail != 1) {
if($sendmail != 1){
// keine Emails verschicken, wir gebeben die Inhalte unten als Text aus
echo "Verschicken nicht ausgew&auml;hlt. Zeige Emails an:<br>";
echo $sendmail . "<br>";
echo $sendmail ."<br>";
echo "=======================================<br>";
echo "To: " . $decrypted_data['email'] . " (level: " . $decrypted_data['level'] . "):<br>";
echo "CC: " . $email_cc . "<br>";
echo "<pre>" . $email_subst_text . "</pre><br>";
echo "$email: <a href='$token_url'> $token_url</a> (check: " . $decrypted_data['email'] . ", lv: " . $decrypted_data['level'] . ")<br>";
echo "To: ".$decrypted_data['email']." (level: ".$decrypted_data['level']."):<br>";
echo "CC: ".$email_cc."<br>";
echo "<pre>".$email_subst_text."</pre><br>";
echo "$email: <a href='$token_url'> $token_url</a> (check: ".$decrypted_data['email'].", lv: ".$decrypted_data['level'].")<br>";
} else {
// Email verschicken - send mail
$to = $decrypted_data['email'];
$from = "root";
$to=$decrypted_data['email'];
$from="helfer@jonglaria.org";
$headers = 'From: ' . $from . "\r\n";
$headers .= 'CC: ' . $email_cc . "\r\n";
if (mail($to, $email_subject, $email_subst_text, $headers)) {
if (mail($to, $email_subject, $email_subst_text, $headers, '-fhelfer@jonglaria.org')) {
echo "Die E-Mail an $to wurde erfolgreich versendet.";
error_log(date('Y-m-d H:i') . "(AdminID:$AdminID) Name: $HelferName (HelferID:$HelferID) hat Email mit Link verschickt an: $to mit CC an: $email_cc\n", 3, LOGFILE);
error_log(date('Y-m-d H:i') . "(AdminID:$AdminID) Name: $HelferName (HelferID:$HelferID) hat Email mit Link verschickt an: $to mit CC an: $email_cc\n",3,LOGFILE);
} else {
echo "Beim Versenden der E-Mail an $to ist ein Fehler aufgetreten.";
}
@ -201,7 +199,7 @@ if (isset($_POST['email-liste'])) {
<!--Einzelne Email
<p>
<form method="GET">
<input id="helfer-email" name="helfer-email" type="textbox" value="<?php echo htmlspecialchars($HelferEmail ?? '')?>">
<input id="helfer-email" name="helfer-email" type="textbox" value="<?=htmlspecialchars($HelferEmail??'')?>">
<button name="sent" value="1">Token generieren</button>
</form>
</p>
@ -209,15 +207,15 @@ if (isset($_POST['email-liste'])) {
<?php
//single email
// if(isset($_GET['helfer-email'])) {
// $email = $_GET['helfer-email'];
// echo "email: $email <br> \n";
// // encode
// $encrypted_data=encode_string($secret_key, $email,$secret_verification);
// $decrypted_data = decode_string($secret_key, $encrypted_data,$secret_verification);
// // Ausgabe des verschlüsselten Textesin der URL
// echo "$email: <a href='$linktext'> $urlprefix/$linktext</a>(check: $decrypted_data ) <br>";
// exit;
// }
#if(isset($_GET['helfer-email'])) {
# $email = $_GET['helfer-email'];
# echo "email: $email <br> \n";
# // encode
# $encrypted_data=encode_string($secret_key, $email,$secret_verification);
# $decrypted_data = decode_string($secret_key, $encrypted_data,$secret_verification);
# // Ausgabe des verschlüsselten Textesin der URL
# echo "$email: <a href='$linktext'> $urlprefix/$linktext</a>(check: $decrypted_data ) <br>";
# exit;
#}
?>

16
html/Erklaer.html Normal file
View File

@ -0,0 +1,16 @@
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="style_common.css"/>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
</head>
<body>
<table class="commontable">
<tr><th>Begriff</th><th>Definition</th></tr>
<tr><td>Dienst </td><td> Eine Aufgabe, z.B Badgekontrolle Haupteingang </td></tr>
<tr><td>Schicht</td><td> Ein bestimmter Zeitsslot eines Dienstes, z.B. 14-16 Uhr </td></tr>
<tr><td>Einzelschicht</td><td> Die Schicht eines einzelnen Helfers in der Schicht</td></tr>
</body>
</html>

238
html/Home4.php Normal file
View File

@ -0,0 +1,238 @@
<html>
<html>
<head>
<title>Helfer Stochercon Home</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<script src=js/helferdb.js></script>
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
DatenbankAufDeutsch($db_link);
/// Logout
////////////////////////////////////////////////////////
if(isset($_GET['logout']))
{
unset($_SESSION["HelferID"]);
//$_POST['login'] = 1;
}
/// Login
////////////////////////////////////////////////////////
if(isset($_POST['login']))
{
$messages = [];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
if (isset ($_POST['helfer-name'])) {
$HelferName = $_POST['helfer-name'];
}
$HelferEmail = $_POST['helfer-email'];
$HelferPasswort = $_POST['helfer-passwort'];
if(empty($messages))
{
HelferLogin($db_link,$HelferEmail,$HelferPasswort, 0 );
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
if(!isset($_SESSION["HelferID"]))
{
?>
<form method="post" action="#Info">
<fieldset>
<legend>Login</legend>
<table border="0" style="border: 0px solid black;">
<tr>
<td style="border: 0px solid black;">Email</td></tr><tr><td style="border: 0px solid black;">
<input name="helfer-email" type="text" size=35 value="<?=htmlspecialchars($HelferEmail??'')?>" required>
</td>
<tr>
<tr>
<td style="border: 0px solid black;">Passwort</td></tr>
<tr><td style="border: 0px solid black;">
<input name="helfer-passwort" id="helfer-passwort" type="password" size=35 value="<?=htmlspecialchars($HelferHandy??'')?>" required>
</td><td style="border: 0px solid black;">
<input type="button" value="Passwort zeigen" style="width:180px !important" onclick="showPassword('helfer-passwort')">
</td>
<tr>
</table>
</fieldset>
<p><button style="width: 100px" name="login" value="1">Login</button></p>
</form>
<?php
exit;
}
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
$db_erg = Helferdaten($db_link,$HelferID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName=$zeile['Name'];
$HelferIsAdmin=$zeile['Admin'];
}
?>
<div style="width: 100%;">
<table id="customers" >
<tr onclick="window.location.href='Info4.php';">
<th><img src="Bilder/Info.jpeg" style="width:30px;height:30px;"> &nbsp; <b>Stochercon 2023</b></th>
</tr>
<tr onclick="window.location.href='Userdaten4.php';">
<td > <img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;">
<b>
<?php
if($HelferIsAdmin)
{
echo "Admin ";
}
else
{
echo "Helfer ";
}
echo $HelferName;
?>
</b> </td>
</tr>
<tr onclick="window.location.href='MeineSchichten4.php';">
<td>
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Helferschichten:</b>
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
<?php
//<li>Fr 08:00 Leitung Halle</li>
//<li>So 12:00 Abbau</li>
/// Die 3 nächsten Schichten Des Helfers Anzeigen
////////////////////////////////////////////////////////
//$HelferID=72;
$db_erg = AlleSchichtenEinesHelfersVonJetzt($db_link,$HelferID);
$iSQLCount = mysqli_num_rows($db_erg);
//$iSQLCount = 3;
$iCount=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC) and $iCount<3)
{
echo "<li>". $zeile['Ab'] . " ". $zeile['Was'] . "</li>";
$iCount++;
}
?>
</ul>
</td>
</tr>
<!--
<tr onclick="window.location.href='Ereignisse.php';">
<td>
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Ereignisse:</b>
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
<li>Sa 20:00 Show im Milchwerk</li>
<li>So 15:00 Gaukelgames</li>
</ul>
</td>
</tr>
<tr onclick="window.location.href='Workshop.php';">
<td>
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Workshops:</b>
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
<li>Sa 14:00 8 Bälle für Anfänger</li>
<li>Sa 15:00 Devilstick Hubschrauber beidseitig</li>
</ul>
</td>
</tr>
<tr onclick="window.location.href='Wichtig.php';">
<td>
<img src="Bilder/PfeilRunter.jpeg" style="width:30px;height:30px;"> <b>Wichtig:</b>
<ul style="display: block; list-style-type: none; margin-left: 20px;margin-top: 0px;margin-bottom: 0px">
<li>Warnung vor Sturm ab 21 Uhr</li>
</ul>
</td>
</tr>
-->
<tr onclick="window.location.href='AlleSchichten4.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b>Schicht Hinzufügen</b></td>
</tr>
<tr onclick="window.location.href='Kalender.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Kalenderansicht</b></td>
</tr>
<tr onclick="window.location.href='ReadLog.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Logs</b></td>
</tr>
<?php
if ($HelferIsAdmin)
{
?>
<tr onclick="window.location.href='Admin4.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Admin</b></td>
</tr>
<?php
}
?>
</tr>
<tr onclick="window.location.href='index.php?logout=1';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Logout</b></td>
</tr>
</table>
</body>
</html>

26
html/Info4.php Normal file
View File

@ -0,0 +1,26 @@
<html>
<html>
<head>
<title>Helfer Stochercon Home</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<table id="customers" >
<tr>
<th><b>Turnerheim</b></th>
</tr>
<tr>
<td><img src="Bilder/Turnerheim.jpg" style="width:640px;height:480px;"></b></td>
</tr>
<tr>
<th><b>Tennishalle</b></th>
</tr>
<tr>
<td><img src="Bilder/Tennishalle.jpg" style="width:640px;height:480px;"></b></td>
</tr>
</table>
</body>
</html>

View File

@ -1,83 +1,84 @@
<!DOCTYPE html>
<html>
<head>
<title> Helferdienste </title>
<meta charset="utf-8">
<!--meta name="viewport" content="width=device-width, initial-scale=1 ,user-scalable=1"-->
<script src="scheduler/codebase/dhtmlxscheduler.js"></script>
<!--link href="scheduler/codebase/dhtmlxscheduler.css" rel="stylesheet" type="text/css" charset="utf-8"-->
<link href="scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8">
<style>
<title> Helferdienste </title>
<meta charset="utf-8">
<!--meta name="viewport" content="width=device-width, initial-scale=1 ,user-scalable=1"-->
<script src="../scheduler/codebase/dhtmlxscheduler.js"></script>
<!--link href="../scheduler/codebase/dhtmlxscheduler.css" rel="stylesheet" type="text/css" charset="utf-8"-->
<link href="../scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8">
<link rel="stylesheet" href="../scheduler/samples/common/controls_styles.css">
<style>
html, body{
margin:0px;
padding:0px;
height:100%;
overflow:hidden;
}
.dhx_cal_event_line,.dhx_body,.dhx_cal_event .dhx_footer,.dhx_cal_event .dhx_header,.dhx_cal_event .dhx_title{
border:none !important;
html, body{
margin:0px;
padding:0px;
height:100%;
overflow:hidden;
}
.dhx_cal_event_line,.dhx_body,.dhx_cal_event .dhx_footer,.dhx_cal_event .dhx_header,.dhx_cal_event .dhx_title{
border:none !important;
border-radius:3px 3px 3px 3px !important;
}
.dhx_scale_holder {background-image: url('Bilder/calendar_lines1.png') !important; background-blend-mode:color-dodge;}
}
.dhx_scale_holder {background-image: url('Bilder/calendar_lines1.png') !important; background-blend-mode:color-dodge;}
</style>
<!-- darkstyle
style type="text/css" >
.filters_wrapper {
</style>
<!-- darkstyle
style type="text/css" >
.filters_wrapper {
background-color: black;
color: white;
font: 500 14px Roboto;
color: white;
font: 500 14px Roboto;
padding-left: 15px;
padding-right: 15px;
}
.filters_wrapper span {
}
.filters_wrapper span {
font-weight: bold;
padding-left: 15px;
padding-right: 15px;
color: rgba(0,0,0,0.7);
}
.filters_wrapper label {
color: rgba(0,0,0,0.7);
}
.filters_wrapper label {
padding-left: 15px;
padding-right: 15px;
}
</style-->
}
</style-->
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>&larrhk;</b></button><br>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button><br>
<div class="filters_wrapper" id="filters_wrapper">
&nbsp;
Mehrtagesdienste anzeigen: <input id="multidaycheck" class="sch_radio" type="checkbox" checked onchange="toggleMultiday(this)">
Einfärben: <input type="text" id="colorize"> <!--onchange="markEntries(this.value);" onpaste = "this.onchange();" onsubmit="markEntries(this.value);"-->
Filtern: <input type="text" id="filterWrap">
<br/>
<!--Achtung: Ende Nachtdienste wird falsch angezeigt (immer Mitternacht) - Popup-Fenster zeigt richtige Zeiten-->
Mehrtagesdienste anzeigen: <input id="multidaycheck" class="sch_radio" type="checkbox" checked onchange="toggleMultiday(this)">
Einfärben: <input type="text" id="colorize"> <!--onchange="markEntries(this.value);" onpaste = "this.onchange();" onsubmit="markEntries(this.value);"-->
Filtern: <input type="text" id="filterWrap">
<br/>
<!--Achtung: Ende Nachtdienste wird falsch angezeigt (immer Mitternacht) - Popup-Fenster zeigt richtige Zeiten-->
</div>
<div id="scheduler_here" class="dhx_cal_container" style='width:100%; height:100%;'>
<div class="dhx_cal_navline">
<div class="dhx_cal_prev_button">&nbsp;</div>
<div class="dhx_cal_next_button">&nbsp;</div>
<div class="dhx_cal_today_button"></div>
<div class="dhx_cal_date"></div>
<div class="dhx_cal_tab" name="day_tab"></div>
<div class="dhx_cal_tab" name="week_tab"></div>
<div class="dhx_cal_tab" name="month_tab"></div>
<div class="dhx_cal_tab" data-tab="con" style="right:280px;"></div>
<div class="dhx_cal_tab" data-tab="prep" style="right:280px;" ></div>
<div class="dhx_cal_navline">
<div class="dhx_cal_prev_button">&nbsp;</div>
<div class="dhx_cal_next_button">&nbsp;</div>
<div class="dhx_cal_today_button"></div>
<div class="dhx_cal_date"></div>
<div class="dhx_cal_tab" name="day_tab"></div>
<div class="dhx_cal_tab" name="week_tab"></div>
<div class="dhx_cal_tab" name="month_tab"></div>
<div class="dhx_cal_tab" data-tab="con" style="right:280px;"></div>
<div class="dhx_cal_tab" data-tab="prep" style="right:280px;" ></div>
</div>
<div class="dhx_cal_header"></div>
<div class="dhx_cal_data"></div>
</div>
<script>
</div>
<div class="dhx_cal_header"></div>
<div class="dhx_cal_data"></div>
</div>
<script>
//https://docs.dhtmlx.com/scheduler/filtering.html
var filter = document.querySelector("#filterWrap");
filter.addEventListener("input", function(){
scheduler.setCurrentView();
})
})
scheduler.filter_month = scheduler.filter_day = scheduler.filter_week = scheduler.filter_con = scheduler.filter_prep = function(id, event) {
if(filter.value == ""){
return true;
@ -158,7 +159,7 @@ function colorize (e){ //KS
scheduler.date.get_con_end=function(date){ return scheduler.date.add(date,4,"day"); }
//preparation phase 2 days
function setprep(){scheduler.setCurrentView(new Date(2023,4,16));}
function setprep(){scheduler.setCurrentView(new Date(2023,8,13));}
scheduler.date.prep_start = function(date){return date};
scheduler.templates.prep_date = scheduler.templates.week_date;
scheduler.templates.prep_scale_date = scheduler.templates.week_scale_date;
@ -185,7 +186,7 @@ function colorize (e){ //KS
};
// actual init
scheduler.init('scheduler_here', new Date(2023,4,18), "con");
scheduler.init('scheduler_here', new Date(2023,8,14), "con");
scheduler.load("data/api-full.php");
//https://docs.dhtmlx.com/scheduler/api__scheduler_createdataprocessor.html
//var dp = scheduler.createDataProcessor("data/api.php"); // this would be for saving

View File

@ -1,13 +1,3 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
?>
<!DOCTYPE html>
<html>
<head>
@ -15,9 +5,9 @@ require '_login.php';
<meta charset="utf-8">
<!--meta name="viewport" content="width=device-width, initial-scale=1 ,user-scalable=1"-->
<script src="scheduler/codebase/dhtmlxscheduler.js"></script>
<!-- link href="scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8"-->
<!-- link href="../scheduler/codebase/dhtmlxscheduler_contrast_black.css" rel="stylesheet" type="text/css" charset="utf-8"-->
<link href="scheduler/codebase/dhtmlxscheduler.css" rel="stylesheet" type="text/css" charset="utf-8">
<link rel="stylesheet" href="../scheduler/samples/common/controls_styles.css">
<link rel="stylesheet" href="scheduler/samples/common/controls_styles.css">
<style>
html, body{
@ -48,6 +38,7 @@ require '_login.php';
padding-left: 15px;
padding-right: 15px;
}
</style-->
</head>
<body>
@ -143,7 +134,7 @@ function colorize (e){ //KS
});
scheduler.config.full_day=false;
scheduler.config.xml_date="%Y-%m-%d %H:%i"; // deprecated but needed for database format
scheduler.config.first_hour = 0; // only show from this hour on
scheduler.config.first_hour = 8; // only show from this hour on
scheduler.config.last_hour = 24; // last hour
scheduler.setLoadMode("day"); // dynamic loading loads only current day if needed
scheduler.config.details_on_create=true; // ???
@ -164,7 +155,7 @@ function colorize (e){ //KS
scheduler.date.get_con_end=function(date){ return scheduler.date.add(date,4,"day"); }
//preparation phase 2 days
function setprep(){scheduler.setCurrentView(new Date(2023,4,16));}
function setprep(){scheduler.setCurrentView(new Date(2023,8,13));}
scheduler.date.prep_start = function(date){return date};
scheduler.templates.prep_date = scheduler.templates.week_date;
scheduler.templates.prep_scale_date = scheduler.templates.week_scale_date;
@ -191,7 +182,7 @@ function colorize (e){ //KS
};
// actual init
scheduler.init('scheduler_here', new Date(2023,4,18), "con");
scheduler.init('scheduler_here', new Date(2023,8,14), "con");
scheduler.load("data/api-helfer.php");
//https://docs.dhtmlx.com/scheduler/api__scheduler_createdataprocessor.html
//var dp = scheduler.createDataProcessor("data/api.php"); // this would be for saving

352
html/MeineSchichten4.php Normal file
View File

@ -0,0 +1,352 @@
<html>
<head>
<title>Admin Stochercon</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
<div style="width: 100%;">
<?php
SESSION_START();
require_once ('../hidden/konfiguration.php');
//require_once ('SQL.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
/// Detailinformation zu ausgewaehlten Schicht Holen
////////////////////////////////////////////////////////
if(isset($_POST['CloseInfo']))
{
UNSET($InfoMeineSchichtID);
UNSET($InfoAlleSchichtID);
}
if(isset($_POST['InfoMeineSchichtID']))
{
$InfoMeineSchichtID = $_POST['InfoMeineSchichtID'];
UNSET($InfoAlleSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoMeineSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer = $zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
}
if(isset($_GET['InfoAlleSchichtID']))
{
$InfoAlleSchichtID = $_GET['InfoAlleSchichtID'];
UNSET($InfoMeineSchichtID);
//echo "<b>". $SchichtID . "</b><br>";
$zeile = DetailSchicht($db_link,$InfoAlleSchichtID);
$Was = $zeile['Was'];
$Wo = $zeile['Wo'];
$Dauer=$zeile['Dauer'];
$Leiter = $zeile['Name'];
$LeiterHandy = $zeile['Handy'];
$LeiterEmail = $zeile['Email'];
$Info = $zeile['Info'];
// Beteiligte Helfer Holen
$db_erg = BeteiligteHelfer($db_link,$InfoAlleSchichtID);
$x=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$MitHelferID[$x] = $zeile['HelferID'];
$MitHelfer[$x] = $zeile['Name'];
$MitHelferHandy[$x]= $zeile['Handy'];
$x++;
}
}
/// Logout
////////////////////////////////////////////////////////
if(isset($_POST['logout']))
{
unset($_SESSION["HelferID"]);
//$_POST['login'] = 1;
}
/// Login
////////////////////////////////////////////////////////
if(isset($_POST['login']))
{
$messages = [];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferPasswort = $_POST['helfer-passwort'];
if(empty($messages))
{
HelferLogin($db_link,$HelferEmail,$HelferPasswort, 0 );
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
if(!isset($_SESSION["HelferID"]))
{
?>
<form method="post" action="#Info">
<fieldset>
<legend>Login</legend>
<table border="0" style="border: 0px solid black;">
<tr>
<td style="border: 0px solid black;">Email</td></tr><tr><td style="border: 0px solid black;">
<input name="helfer-email" type="text" value="<?=htmlspecialchars($HelferEmail??'')?>" required>
</td>
<tr>
<tr>
<td style="border: 0px solid black;">Passwort</td></tr><tr><td style="border: 0px solid black;">
<input name="helfer-passwort" type="password" value="<?=htmlspecialchars($HelferHandy??'')?>" required>
</td>
<tr>
</table>
</fieldset>
<p><button name="login" value="1">Login</button></p>
</form>
<?php
exit;
}
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
if(isset($_POST['HelferID']))
{
$HelferID = $_POST['HelferID'];
}
if(isset($_POST['ShowHelfer'])) {
$HelferID=$_POST['HelperSearch'];
}
$_SESSION["HelferID"] = $HelferID;
/// Schicht Löschen
////////////////////////////////////////////////////////
if(isset($_POST['Del'])) {
$messages = [];
$EinzelSchichtID = $_POST['Del'];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
if(empty($messages)) {
$db_erg = HelferVonSchichtLoeschen($db_link,$HelferID,$EinzelSchichtID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
// Helferliste Anzeigen
////////////////////////////////////////////////////////
?>
<form method="post" action="MeineSchichten4.php#Info">
<?php
// Neu Schicht fuer Helfer Eintragen
///////////////////////////////////////////////////////////
if(isset($_POST['sent'])) {
$messages = [];
$SchichtId = $_POST['sent'];
// Eingaben überprüfen:
// if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
// }
if(empty($messages))
{
// Helfer Schicht zuweisen
$db_erg = HelferSchichtZuweisen($db_link,$HelferID,$SchichtId);
// Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird
$HelferName = '';
$HelferEmail = '';
$HelferHandy = '';
//die('<div class="Helfer wurde angelegt.</div>');
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message)
{
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
/// Ausgabe auf Deutsch umstellen
/////////////////////////////////////////////////////////////////////////
DatenbankAufDeutsch($db_link);
/// Alle Schichten Des Helfers Anzeigen
////////////////////////////////////////////////////////
$db_erg = AlleSchichtenEinesHelfers($db_link,$HelferID);
if ( ! $db_erg )
{
echo "AlleSchichten des Helfes ungültige Abfrage";
die('Ungültige Abfrage: ' . mysqli_error());
}
$iSQLCount = mysqli_num_rows($db_erg);
//$iSQLCount = 3;
echo '<table id="customers">';
echo "<thead>";
echo "<tr>";
echo "<th colspan=4>". "Meine Schichten (".$iSQLCount." Schichten)</th>";
echo "</tr><tr>";
echo "<th></th>";
echo "<th style='width:180px'>". "Von" . "</th>";
echo "<th style='width:180px'>". "Bis" . "</th>";
echo "<th style='width:90px'>". "Del" . "</th>";
echo "</tr>";
echo "</thead>";
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
//echo '<tr title="Details anzeigen" onclick="parent.DetailsSchichten.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
echo '<tr title="Details anzeigen" onclick="window.location.href=\'DetailsSchichten4.php?InfoAlleSchichtID='.$zeile['SchichtID'].'#Info\';" >';
echo "<td>". $zeile['Was'] . "</td>";
echo "<td>". $zeile['Ab'] . "</td>";
echo "<td>". $zeile['Bis'] . "</td>";
echo "<td>". "<button title='Schicht entfernen' name='Del' value='". $zeile['EinzelSchichtID'] ."'>-</button>" . "</td>";
echo "</tr>";
}
echo "</table>";
echo "<br><br>";
$iAlleSchichtenCount = AlleSchichtenCount($db_link);
$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link);
echo '<table id="customers" onclick="window.location.href=\'AlleSchichten4.php\'">';
echo "<tr>";
echo "<th>".'<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">'. " Alle Schichten der Con (".$iBelegteSchichtenCount."/".$iAlleSchichtenCount.")</th>";
echo "</tr>";
echo "</table>";
mysqli_free_result( $db_erg );
?>
</form>
</div>
</body>
</html>

View File

@ -1,63 +1,62 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
?>
<!doctype html>
<html>
<head>
<title>Helfer - Logs </title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<!--meta name="viewport" content="width=480" /-->
<?php
require_once ('../hidden/konfiguration.php');
SESSION_START();
// if we are not logged in, we redirect in the header back to the main page
if(!isset($_SESSION["HelferID"]) || ! $_SESSION["HelferID"] > 0) {
echo ' <meta http-equiv="Refresh" content="0; URL=index.php" />
';
}
// print top of page if we are logged in and not redirecting
echo " </head> \n <body> \n";
echo '<button name="BackHelferdaten" value="1" onclick="window.location.href = \'index.php\';"><b>&larrhk;</b></button>' . "\n";
echo "<b>" . EVENTNAME . "</b><br>";
echo '<button name="BackHelferdaten" value="1" onclick="window.location.href = \'index.php\';"><b>&larrhk;</b></button><br>'."\n";
echo '<H1> Helferdaten - Log </H1>';
echo '<p>Hier werden alle Aktionen, die einen Helfer betreffen aufgelistet</p>';
echo '<table class="commontable">' . "\n";
echo '<table id="customers">'."\n";
//check for admin status
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
require 'SQL.php';
$db_link = mysqli_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK);
include 'SQL.php';
$db_link = mysqli_connect ( MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK );
DatenbankAufDeutsch($db_link);
$db_erg = Helferdaten($db_link, $HelferID);
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) {
$HelferName = $zeile['Name'];
$HelferIsAdmin = $zeile['Admin'];
}
$db_erg = Helferdaten($db_link,$HelferID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName=$zeile['Name'];
$HelferIsAdmin=$zeile['Admin'];
}
// Wir suchen nach HelferID:<zahl> - wenn das Admin Flag gesetzt ist, kann man den Suchstring auf etwas anderes aendern
$regex = "\(HelferID:$HelferID\)";
if ($HelferIsAdmin) {
if (isset($_POST['suche']) || isset($_GET['suche'])) {
$regex = $_POST['suche'] . $_GET['suche'];
if($HelferIsAdmin){
if(isset($_POST['suche']) || isset($_GET['suche'])){
$regex=$_POST['suche'].$_GET['suche'];
}
echo "<form>";
echo "Nur Admins: Suchbegriff (Per Default der selbe Suchtext, wie bei nicht-Admin Helfern):<input name='suche' type='text' size=35 value='$regex'><br> \n";
echo "Der Suchbegriff ist ein <a href='https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck'>Regul&auml;rer Ausdruck</a><br><br>";
echo "</form>";
}
}
$regex = "/" . "$regex" . "/";
foreach (file(LOGFILE) as $line) {
// echo "not: $line<br>\n";
if (preg_match($regex, $line, $matches)) {
$regex = "/"."$regex"."/";
foreach(file(LOGFILE) as $line) {
#echo "not: $line<br>\n";
if(preg_match($regex,$line,$matches)){
echo "<tr><td> $line</td></tr>";
}
}
?>
}
?>
</table>
</body>
</html>

File diff suppressed because it is too large Load Diff

4
html/TODO Normal file
View File

@ -0,0 +1,4 @@
* Login sollte ueberpruefen, ob jemand bereits eingeloggt ist
* alle Seiten (via _login?) sollten pruefen, ob die HelferId existiert
* SQL.php sollte nie $db_erg zurueckgeben, sondern immer Arrays/Listen mit den Ergebnissen und $db_erg sollte mit msqli_free_results freigegeben werden
* Helfer Liste mit Telefon und Anzahl Stunden

View File

@ -0,0 +1,104 @@
<html>
<head>
<title>Admin Stochercon</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<link rel="stylesheet" href="style_print.css" media="print"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<div style="width: 100%;">
<?php
SESSION_START();
require_once('../hidden/konfiguration.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
DatenbankAufDeutsch($db_link);
include '_login.php';
$DienstID=2;
$DienstName ="Anmeldung";
?>
<table id="customers" >
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin4.php';"><b>&larrhk;</b></button> &nbsp; <b><?php echo $DienstName; ?></b></th>
</tr>
</table>
<?php
echo '<table id="customers" >';
$db_erg = GetSchichtenEinesDienstes($db_link,$DienstID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
echo "<tr>";
echo "<td width=15%>";
echo "$DienstName<br>";
echo $zeile['TagVon']."-";
echo $zeile['ZeitBis']."<br>";
echo "</td>";
echo "<td width=30%></td>";
echo "<td width=10%>";
echo $zeile['ZeitVon']."-";
echo $zeile['ZeitBis']."<br>";
echo "</td>";
echo "<td width=30%></td>";
echo "<td width=15%>";
echo "$DienstName<br>";
echo $zeile['TagVon']."-";
echo $zeile['ZeitBis']."<br>";
echo "</td>";
echo "</tr>";
/*
$db_erg2 = GetDiensteChilds($db_link,$zeile["DienstID"]);
while ($zeile = mysqli_fetch_array( $db_erg2, MYSQLI_ASSOC))
{
echo "<tr><td>";
echo $zeile["Was"];
echo "</td></tr>";
}
*/
}
echo "</table>";
?>
<?php
mysqli_free_result( $db_erg );
?>
</body>
</html>

View File

@ -1,66 +1,72 @@
<?php
<?php
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
require '_crypt.php';
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
require_once ('tokenkonfiguration.php');
include '_crypt.php';
$head = "<!doctype html>
$head="<!doctype html>
<head></head> <body> ";
$foot = "</body></html>";
$db_link = ConnectDB();
$foot="</body></html>";
// ist jetzt in _crypt.php, aber aus der anderen Datei, deshalb hier erst
// nur auskommentiert
// function Entschluessle($encrypted_data,$secret_verification,$secret_key){
//
// // Erstellen eines Cipher-Objekts für die Verschlüsselung
// $cipher_method = "AES-256-CBC";
// $iv_length = openssl_cipher_iv_length($cipher_method);
// $cipher_options = OPENSSL_RAW_DATA;
// $cipher_key = openssl_digest($secret_key, 'SHA256', true);
//
// // Entschlüsseln des verschlüsselten Textes
// // zuerst base64 entfernen. *kein* urldecode, das passiert durch get/post automatisch
// $decoded_cipher_text = base64_decode($encrypted_data);
// $iv = substr($decoded_cipher_text, 0, $iv_length);
// $cipher_text = substr($decoded_cipher_text, $iv_length);
// $decrypted_email = openssl_decrypt($cipher_text, $cipher_method, $cipher_key, $cipher_options, $iv);
//
// // Verifikationsstring überprüfen und entfernen
// $verification_length = strlen($secret_verification);
// if(substr($decrypted_email, -$verification_length) == $secret_verification) {
// $decrypted_email = substr($decrypted_email, 0, -$verification_length);
// }
// return($decrypted_email);
// }
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
# ist jetzt in _crypt.php, aber aus der anderen Datei, deshalb hier erst
# nur auskommentiert
#function Entschluessle($encrypted_data,$secret_verification,$secret_key){
#
# // Erstellen eines Cipher-Objekts für die Verschlüsselung
# $cipher_method = "AES-256-CBC";
# $iv_length = openssl_cipher_iv_length($cipher_method);
# $cipher_options = OPENSSL_RAW_DATA;
# $cipher_key = openssl_digest($secret_key, 'SHA256', true);
#
# // Entschlüsseln des verschlüsselten Textes
# // zuerst base64 entfernen. *kein* urldecode, das passiert durch get/post automatisch
# $decoded_cipher_text = base64_decode($encrypted_data);
# $iv = substr($decoded_cipher_text, 0, $iv_length);
# $cipher_text = substr($decoded_cipher_text, $iv_length);
# $decrypted_email = openssl_decrypt($cipher_text, $cipher_method, $cipher_key, $cipher_options, $iv);
#
# // Verifikationsstring überprüfen und entfernen
# $verification_length = strlen($secret_verification);
# if(substr($decrypted_email, -$verification_length) == $secret_verification) {
# $decrypted_email = substr($decrypted_email, 0, -$verification_length);
# }
# return($decrypted_email);
#}
if (isset($_GET['token']) || isset($_POST['token'])) {
if(isset($_GET['token']) || isset($_POST['token']) ) {
// E-Mail-Adresse des Nutzers
$token = $_GET['token'];
//$email = Entschluessle($token,$secret_verification,$secret_key);
$decrypted_data = decode_string($secret_key, $token, $secret_verification);
//error_log("decrytped_data: ". $decrypted_data);
$email = $decrypted_data['email'];
$helfer_level = $decrypted_data['level'];
$success = $decrypted_data['success'];
$email=$decrypted_data['email'];
$helfer_level=$decrypted_data['level'];
$success=$decrypted_data['success'];
//error_log("email: ".$email.",level: ".$helfer_level.",success: ".$success);
} else {
echo "$head Kein Token angegeben!<br> $foot";
exit;
}
if ($success != 1) {
// if ( $db_erg ) {
// echo ' <meta http-equiv="Refresh" content="0; URL=index.php" />';
// } else {
if($success != 1) {
// if ( $db_erg ) {
// echo ' <meta http-equiv="Refresh" content="0; URL=index.php" />';
// } else {
echo "$head Kein g&uuml;ltiges Token!<br>$foot";
exit;
}
}
//}
//TODO: Variablendoppelung aufloesen und oben gleich einmal setzen
if ($success == 1 && $email != "") {
if($success == 1 && $email != ""){
// Ausgabe der entschlüsselten E-Mail-Adresse
//echo "E-Mail-Adresse: ", $email, "<br>\n";
//echo "Passwort: ",$token,"<br>\n";
@ -70,20 +76,21 @@ if ($success == 1 && $email != "") {
$HelferHandy = "";
$HelferPasswort = $token;
if (!filter_var($HelferEmail, FILTER_VALIDATE_EMAIL)) {
if(!filter_var($HelferEmail, FILTER_VALIDATE_EMAIL)) {
echo 'Problem mit E-Mail-Adresse.';
exit;
}
error_log("2email: " . $HelferEmail . ",level: " . $helfer_level . ",success: " . $success);
error_log("2email: ".$HelferEmail.",level: ".$helfer_level.",success: ".$success);
// Helfer Anlegen, wenn er nicht existiert
if (! HelferIstVorhanden($db_link, $HelferEmail)) {
error_log("Helfer " . $HelferEmail . " nicht vorhanden, lege an");
if( ! HelferIstVorhanden($db_link,$HelferEmail) ) {
error_log("Helfer ".$HelferEmail." nicht vorhanden, lege an");
error_log("CreateHelfer(db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);");
$db_erg = CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel);
$db_erg = CreateHelfer($db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);
}
// Login-Versuch, entweder direkt nach Anlegen oder wenn existiert hat
// Login und auf Haupt-Seite gehen
HelferLogin($db_link, $HelferEmail, $HelferPasswort, 0);
HelferLogin($db_link,$HelferEmail,$HelferPasswort,0);
echo '<html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
exit;
}
?>

164
html/Userdaten4.php Normal file
View File

@ -0,0 +1,164 @@
<html>
<head>
<title>Stochercon Helferdaten ändern</title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
</head>
<body>
<?php
SESSION_START();
$HelferID = $_SESSION["HelferID"];
$AdminID = $_SESSION["AdminID"];
require_once ('../hidden/konfiguration.php');
//require_once ('SQL.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
/// Helferdaten Aendern
////////////////////////////////////////////////////////
if(isset($_POST['change'])) {
$messages = [];
// Eingaben überprüfen:
if(strlen($_POST['helfer-newpasswort'])<8 and $_POST['helfer-newpasswort']!="")
{
$messages[] = 'Neues Passwort zu kurz';
}
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferHandy = $_POST['helfer-handy'];
$HelferNewPasswort = $_POST['helfer-newpasswort'];
if(empty($messages)) {
// Helferdaten Ändern
HelferdatenAendern($db_link,$HelferName,$HelferEmail,$HelferHandy,$HelferNewPasswort,$HelferID);
} else {
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
////////////////////////////////////////////////////////////////
// Helferdate holen
///////////////////////////////////////////////////////////////
$db_erg = Helferdaten($db_link,$HelferID);
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
{
$HelferName = $zeile['Name'];
$HelferEmail = $zeile['Email'];
$HelferHandy = $zeile['Handy'];
}
/// Logout
////////////////////////////////////////////////////////
if(isset($_POST['logout']))
{
unset($_SESSION["HelferID"]);
//$_POST['login'] = 1;
}
/// Login
////////////////////////////////////////////////////////
if(isset($_POST['login']))
{
$messages = [];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
// $messages[] = 'Bitte prüfen Sie die eingegebenen Namen';
//}
$HelferName = $_POST['helfer-name'];
$HelferEmail = $_POST['helfer-email'];
$HelferPasswort = $_POST['helfer-passwort'];
if(empty($messages))
{
HelferLogin($db_link,$HelferEmail,$HelferPasswort, 0 );
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
?>
<table id="customers">
<tr>
<th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button> Helferdaten</th>
</tr>
<form method="post">
<tr>
<td>Name</td></tr><tr><td>
<input name="helfer-name" type="text" value="<?=htmlspecialchars($HelferName??'')?>" required>
</td>
</tr>
<tr>
<td>Email</td></tr><tr><td>
<input name="helfer-email" type="email " value="<?=htmlspecialchars($HelferEmail??'')?>" required>
</td>
</tr>
<tr>
<td>Handy</td></tr><tr><td>
<input name="helfer-handy" type="tel" value="<?=htmlspecialchars($HelferHandy??'')?>" >
</td>
</tr>
<tr>
<td>Altes Helfer Passwort</td></tr><tr><td>
<input name="helfer-passwort" type="password" value="<?=htmlspecialchars($HelferPasswort??'')?>" >
</td>
</tr>
<tr>
<td>Neues Helfer Passwort</td></tr><tr><td>
<input name="helfer-newpasswort" type="text" value="<?=htmlspecialchars($HelferPasswort??'')?>" >
</td>
</tr>
</table>
<p><strong>Achtung: Wenn man ein Passwort eingibt kann man nicht mehr einen individuellen Link zum Einloggen verwenden!</strong></p>
<p><button name="change" style="width:150px !important" value="1">&Auml;ndern</button></p>
</form>
<button name="BackHelferdaten" value="1" onclick="window.location.href = 'index.php';"><b>&larrhk;</b></button>
</body>
</html>

View File

@ -1,7 +1,5 @@
<?php
function encode_string($key, $email, $level, $verification)
{
function encode_string($key, $email, $level, $verification) {
// String verification anfuegen am Ende, um abgeschnittene URLs zu verhindern
$token_content = $email . '|' . $level . '|' . $verification;
@ -14,8 +12,8 @@ function encode_string($key, $email, $level, $verification)
$cipher_key = openssl_digest($key, 'SHA256', true);
$cipher_text = openssl_encrypt($token_content, $cipher_method, $cipher_key, $cipher_options, $iv);
if (isset($debug)) {
echo "<br>encode: cipher:" . chunk_split(bin2hex($cipher_text), 4, ' ') . " <br>iv:" . chunk_split(bin2hex($iv), 4, ' ') . " <br>iv_length:$iv_length<br>cipher_key " . chunk_split(bin2hex($cipher_key), 4, ' ') . "<br>";
if(isset($debug)) {
echo "<br>encode: cipher:".chunk_split(bin2hex($cipher_text),4,' ')." <br>iv:".chunk_split(bin2hex($iv),4,' ')." <br>iv_length:$iv_length<br>cipher_key ".chunk_split(bin2hex($cipher_key),4,' ')."<br>";
}
$cipher_text = $iv . $cipher_text;
@ -25,8 +23,7 @@ function encode_string($key, $email, $level, $verification)
return $encrypted_data;
}
function decode_string($key, $encrypted_data, $verification)
{
function decode_string($key, $encrypted_data, $verification) {
// Entschlüsseln des verschuesselten Textes
// erst base64 entfernen - urldecode muss wenn noetig vorher angewendet werden
$decoded_cipher_text = base64_decode($encrypted_data);
@ -38,18 +35,16 @@ function decode_string($key, $encrypted_data, $verification)
$cipher_options = OPENSSL_RAW_DATA;
$cipher_key = openssl_digest($key, 'SHA256', true);
if (isset($debug)) {
echo "<br>decode: cipher:" . chunk_split(bin2hex($cipher_text), 4, ' ') . " <br>iv:" . chunk_split(bin2hex($iv), 4, ' ') . " <br>iv_length:$iv_length<br>cipher_key " . chunk_split(bin2hex($cipher_key), 4, ' ');
if(isset($debug)){
echo "<br>decode: cipher:".chunk_split(bin2hex($cipher_text),4,' '). " <br>iv:".chunk_split(bin2hex($iv),4,' '). " <br>iv_length:$iv_length<br>cipher_key ". chunk_split(bin2hex($cipher_key),4,' ');
}
$decrypted_data = openssl_decrypt($cipher_text, $cipher_method, $cipher_key, $cipher_options, $iv);
if (isset($debug)) {
echo "<br> decrypted_data " . $decrypted_data . " end<br>";
}
if(isset($debug)){echo "<br> decrypted_data " . $decrypted_data." end<br>";}
$verification_length = strlen($verification);
if (substr($decrypted_data, -$verification_length) == $verification) {
if(substr($decrypted_data, -$verification_length) == $verification) {
list($email, $level, $verification_code) = explode('|', $decrypted_data);
return array(
'email' => $email,
@ -63,3 +58,4 @@ function decode_string($key, $encrypted_data, $verification)
);
}
}
?>

View File

@ -1,21 +1,21 @@
<?php
require_once 'konfiguration.php';
require_once 'SQL.php';
/// Logout
////////////////////////////////////////////////////////
if (isset($_GET['logout']) || isset($_POST['logout'])) {
if(isset($_GET['logout']) || isset($_POST['logout']))
{
// remove all session variables
session_unset();
// destroy the session
session_destroy();
echo '<!doctype html><html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
echo '<!doctype html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>';
}
/// Login
////////////////////////////////////////////////////////
if (isset($_POST['login'])) {
if(isset($_POST['login']))
{
$messages = [];
// Eingaben überprüfen:
//if(!preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $HelferName)) {
@ -28,30 +28,26 @@ if (isset($_POST['login'])) {
$HelferEmail = $_POST['helfer-email'];
$HelferPasswort = $_POST['helfer-passwort'];
if (empty($messages)) {
HelferLogin($db_link, $HelferEmail, $HelferPasswort, 0);
} else {
if(empty($messages))
{
HelferLogin($db_link,$HelferEmail,$HelferPasswort, 0 );
}
else
{
// Fehlermeldungen ausgeben:
echo '<div class="error"><ul>';
foreach ($messages as $message) {
echo '<li>' . htmlspecialchars($message) . '</li>';
foreach($messages as $message) {
echo '<li>'.htmlspecialchars($message).'</li>';
}
echo '</ul></div>';
}
}
if (!isset($_SESSION["HelferID"])) {
?>
<!doctype html>
<html lang=de>
<head>
<title>Helfer <?php echo EVENTNAME ?> Home</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<meta name="viewport" content="width=480" />
<meta charset="utf-8">
</head>
<body>
if(!isset($_SESSION["HelferID"]))
{
?>
<form method="post" action="#Info">
<fieldset>
@ -60,13 +56,13 @@ if (!isset($_SESSION["HelferID"])) {
<table border="0" style="border: 0px solid black;">
<tr>
<td style="border: 0px solid black;">Email</td></tr><tr><td style="border: 0px solid black;">
<input name="helfer-email" type="text" size=35 value="<?php echo htmlspecialchars($HelferEmail ?? '')?>" required>
<input name="helfer-email" type="text" size=35 value="<?=htmlspecialchars($HelferEmail??'')?>" required>
</td>
<tr>
<tr>
<td style="border: 0px solid black;">Passwort</td></tr>
<tr><td style="border: 0px solid black;">
<input name="helfer-passwort" id="helfer-passwort" type="password" size=35 value="<?php echo htmlspecialchars($HelferHandy ?? '')?>" required>
<input name="helfer-passwort" id="helfer-passwort" type="password" size=35 value="<?=htmlspecialchars($HelferHandy??'')?>" required>
</td><td style="border: 0px solid black;">
<input type="button" value="Passwort zeigen" style="width:180px !important" onclick="showPassword('helfer-passwort')">
</td>
@ -80,9 +76,7 @@ if (!isset($_SESSION["HelferID"])) {
</form>
</body>
</html>
<?php
<?php
exit;
}
@ -91,6 +85,6 @@ $HelferID = $_SESSION["HelferID"];
$HelferName = $_SESSION["HelferName"];
$AdminID = $_SESSION["AdminID"];
//TODO vereinheitlichen. index.php verwendet HelferIsAdmin
$HelferIsAdmin = $AdminStatus = $_SESSION["AdminStatus"];
$HelferLevel = $_SESSION["HelferLevel"];
$HelferIsAdmin=$AdminStatus = $_SESSION["AdminStatus"];
$HelferLevel= $_SESSION["HelferLevel"];
?>

55
html/data/anmeldung.php Normal file
View File

@ -0,0 +1,55 @@
<?php
require_once("config.php");
$db = new PDO($dsn, $username, $password, $options);
function read($db, $requestParams){
$queryParams = [];
$queryText = "
select Schicht.SchichtID as id,
Schicht.Von as start_date,
Schicht.Bis as end_date,
concat(Dienst.Was, ' [',Dienst.Wo,'](', SchichtUebersicht.C,'/',SchichtUebersicht.Soll,')') as Name,
group_concat(concat(Helfer.Name,'+',Helfer.Handy) separator '\\n' ) as text,
Dienst.Info,
CASE WHEN (SchichtUebersicht.Soll-SchichtUebersicht.C)<=0 THEN 'darkgreen'
WHEN SchichtUebersicht.C>0 THEN '#dd9000'
ELSE 'darkred'
END as color,
CASE WHEN (SchichtUebersicht.Soll-SchichtUebersicht.C)<=0 THEN 'white'
WHEN SchichtUebersicht.C>0 THEN 'black'
ELSE 'yellow'
END as textColor
FROM EinzelSchicht
INNER JOIN Helfer ON EinzelSchicht.HelferID=Helfer.HelferId
RIGHT JOIN Schicht ON Schicht.SchichtID=EinzelSchicht.SchichtID
INNER JOIN Dienst ON Dienst.DienstID=Schicht.DienstID
INNER JOIN SchichtUebersicht ON Dienst.DienstID=SchichtUebersicht.DienstID AND SchichtUebersicht.SchichtID=Schicht.SchichtID
GROUP BY Schicht.SchichtID;";
// handle dynamic loading
if (isset($requestParams["from"]) && isset($requestParams["to"])) {
//error_log("timespan given. from: ".$requestParams["from"]." to: ".$requestParams["to"]);
$queryText .= " WHERE `Schicht.Bis`>=? AND `Schicht.Von` < ?;";
$queryParams = [filter_var($requestParams["from"],FILTER_SANITIZE_NUMBER_FLOAT), filter_var($requestParams["to"],FILTER_SANITIZE_NUMBER_FLOAT)];
}
$query = $db->prepare($queryText);
$query->execute($queryParams);
$events = $query->fetchAll();
return $events;
}
switch ($_SERVER["REQUEST_METHOD"]) {
case "GET":
$result = read($db, $_GET);
break;
case "POST":
// only if changes will be allowed
break;
default:
throw new Exception("Unexpected Method");
break;
}
header("Content-Type: application/json");
echo json_encode($result);
?>

View File

@ -1,11 +1,9 @@
<?php
require_once "../konfiguration.php";
$options = [];
require_once("../../hidden/konfiguration-api.php");
$options=[];
$db = new PDO($dsn, MYSQL_BENUTZER, MYSQL_KENNWORT, $options);
function read($db, $requestParams)
{
function read($db, $requestParams){
$queryParams = [];
$queryText = "
select Schicht.SchichtID as id,
@ -35,7 +33,7 @@ function read($db, $requestParams)
if (isset($requestParams["from"]) && isset($requestParams["to"])) {
//error_log("timespan given. from: ".$requestParams["from"]." to: ".$requestParams["to"]);
$queryText .= " WHERE `Schicht.Bis`>=? AND `Schicht.Von` < ?;";
$queryParams = [filter_var($requestParams["from"], FILTER_SANITIZE_NUMBER_FLOAT), filter_var($requestParams["to"], FILTER_SANITIZE_NUMBER_FLOAT)];
$queryParams = [filter_var($requestParams["from"],FILTER_SANITIZE_NUMBER_FLOAT), filter_var($requestParams["to"],FILTER_SANITIZE_NUMBER_FLOAT)];
}
$query = $db->prepare($queryText);
$query->execute($queryParams);
@ -56,3 +54,4 @@ switch ($_SERVER["REQUEST_METHOD"]) {
}
header("Content-Type: application/json");
echo json_encode($result);
?>

View File

@ -1,16 +1,12 @@
<?php
require_once "../konfiguration.php";
$options = [];
require_once("../../hidden/konfiguration-api.php");
$options=[];
SESSION_START();
$db = new PDO($dsn, MYSQL_BENUTZER, MYSQL_KENNWORT, $options);
if (!isset($_SESSION["HelferID"])) {
exit ;
}
if(!isset($_SESSION["HelferID"])){ exit ; }
$HelferID = $_SESSION["HelferID"];
function read_from_db($db, $requestParams, $HelferID)
{
function read_from_db($db, $requestParams,$HelferID){
$queryParams = [];
$queryText = "
select Schicht.SchichtID as id,
@ -36,16 +32,26 @@ function read_from_db($db, $requestParams, $HelferID)
WHERE Helfer.HelferID=$HelferID
GROUP BY Schicht.SchichtID";
// variable substitution just doesnt work for - we omit the feature of limiting time range
//error_log(date('Y-m-d H:i ') . $queryText,3,"/tmp/sql.log");
// handle dynamic loading
// if (isset($requestParams["from"]) && isset($requestParams["to"])) {
// //error_log("timespan given. from: ".$requestParams["from"]." to: ".$requestParams["to"]);
// $queryText .= " WHERE Schicht.Bis >= ? AND Schicht.Von < ? GROUP BY Schicht.SchichtID";
// $queryParams = [filter_var($requestParams["from"],FILTER_SANITIZE_NUMBER_FLOAT), filter_var($requestParams["to"],FILTER_SANITIZE_NUMBER_FLOAT)];
// }
// else {
// }
$query = $db->prepare($queryText);
$query->execute($queryParams);
error_log(date('Y-m-d H:i ') . print_r($queryText, true), 3, "/var/log/dropamsee/debug.log");
error_log(date('Y-m-d H:i ') . print_r($queryText,true),3,"/var/log/helferdb/helferdb.log");
$events = $query->fetchAll();
return $events;
}
switch ($_SERVER["REQUEST_METHOD"]) {
case "GET":
$result = read_from_db($db, $_GET, $HelferID);
$result = read_from_db($db, $_GET,$HelferID);
break;
case "POST":
// only if changes will be allowed
@ -56,3 +62,4 @@ switch ($_SERVER["REQUEST_METHOD"]) {
}
header("Content-Type: application/json");
echo json_encode($result);
?>

40
html/data/api-hours.php Normal file
View File

@ -0,0 +1,40 @@
<?php
require_once("config.php");
$db = new PDO($dsn, $username, $password, $options);
function read($db, $requestParams){
$queryParams = [];
$queryText = " SELECT d.Was as name, SUM(TIMESTAMPDIFF(HOUR, s.Von, s.Bis)) AS value
FROM Dienst d
JOIN Schicht s ON d.DienstID = s.DienstID
JOIN EinzelSchicht es ON s.SchichtID = es.SchichtID
JOIN Helfer h ON es.HelferID = h.HelferId
GROUP BY d.DienstID;
";
// WHERE d.Was = 'Aufbau'
// handle dynamic loading
if (isset($requestParams["from"]) && isset($requestParams["to"])) {
//error_log("timespan given. from: ".$requestParams["from"]." to: ".$requestParams["to"]);
$queryText .= " WHERE `Schicht.Bis`>=? AND `Schicht.Von` < ?;";
$queryParams = [filter_var($requestParams["from"],FILTER_SANITIZE_NUMBER_FLOAT), filter_var($requestParams["to"],FILTER_SANITIZE_NUMBER_FLOAT)];
}
$query = $db->prepare($queryText);
$query->execute($queryParams);
$events = $query->fetchAll();
return $events;
}
switch ($_SERVER["REQUEST_METHOD"]) {
case "GET":
$result = read($db, $_GET);
break;
case "POST":
// only if changes will be allowed
break;
default:
throw new Exception("Unexpected Method");
break;
}
header("Content-Type: application/json");
echo json_encode($result);
?>

18
html/data/config.php Normal file
View File

@ -0,0 +1,18 @@
<?php
$dsn = "mysql:host=localhost;dbname=drop2023";
$username = "drop2023";
$password = "69978eab27b30c999dec1fd5e82cce83";
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
);
define( 'MYSQL_HOST', 'localhost' );
define( 'MYSQL_BENUTZER', 'drop2023' );
define( 'MYSQL_KENNWORT', '69978eab27b30c999dec1fd5e82cce83' );
define( 'MYSQL_DATENBANK', 'drop2023' );
?>

32
html/data/dienst.php Normal file
View File

@ -0,0 +1,32 @@
<?php
require_once("config.php");
$db = new PDO($dsn, $username, $password, $options);
function read($db, $requestParams){
$queryParams = [];
$queryText = "select Schicht.SchichtID as id,Schicht.Von as start_date,Schicht.Bis as end_date,group_concat(Helfer.Name separator '\\n' ) as text from EinzelSchicht INNER JOIN Helfer ON EinzelSchicht.HelferID=Helfer.HelferId INNER JOIN Schicht ON Schicht.SchichtID=EinzelSchicht.SchichtID INNER JOIN Dienst ON Dienst.DienstID=Schicht.DienstID and Dienst.Wo = 'Anmeldung' GROUP BY Schicht.SchichtID;";
// handle dynamic loading
if (isset($requestParams["from"]) && isset($requestParams["to"])) {
error_log("timespan given. from: ".$requestParams["from"]." to: ".$requestParams["to"]);
$queryText .= " WHERE `Schicht.Bis`>=? AND `Schicht.Von` < ?;"; $queryParams = [$requestParams["from"], $requestParams["to"]]; }
$query = $db->prepare($queryText);
$query->execute($queryParams);
$events = $query->fetchAll();
return $events;
}
switch ($_SERVER["REQUEST_METHOD"]) {
case "GET":
$result = read($db, $_GET);
break;
case "POST":
// we'll implement this later
break;
default:
throw new Exception("Unexpected Method");
break;
}
header("Content-Type: application/json");
echo json_encode($result);

View File

@ -1,50 +1,67 @@
<?php
// Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden
SESSION_START();
require_once 'konfiguration.php';
require 'SQL.php';
$db_link = ConnectDB();
require '_login.php';
?>
<!doctype html>
<html lang=de>
<html>
<html>
<head>
<title>Helfer <?php echo EVENTNAME ?> Home</title>
<link rel="stylesheet" href="css/style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="css/style_mobile.css" media="screen and (max-width:780px)"/>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Helfer Stochercon </title>
<link rel="stylesheet" href="style_desktop.css" media="screen and (min-width:781px)"/>
<link rel="stylesheet" href="style_mobile.css" media="screen and (max-width:780px)"/>
<script src=js/helferdb.js></script>
<meta name="viewport" content="width=480" />
<meta charset="utf-8">
</head>
<body>
<?php
SESSION_START();
require_once ('../hidden/konfiguration.php');
include 'SQL.php';
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
DatenbankAufDeutsch($db_link);
include '_login.php';
// wird von _login.php miterledigt
// TODO: hier wird HelferIsAdmin verwendet, woanders ist es AdminStatus
//$db_erg = Helferdaten($db_link,$HelferID);
//while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC))
//{
// $HelferName=$zeile['Name'];
// $HelferIsAdmin=$zeile['Admin'];
//}
?>
<div style="width: 100%;">
<table class="commontable" >
<tr onclick="window.location.href='Info.php';">
<th><img src="Bilder/Info.jpeg" style="width:30px;height:30px;"> &nbsp; <b><?php echo EVENTNAME ?></b></th>
<table id="customers" >
<tr onclick="window.location.href='Info4.php';">
<th><img src="Bilder/Info.jpeg" style="width:30px;height:30px;"> &nbsp; <b>Stochercon 2023</b></th>
</tr>
<tr onclick="window.location.href='Userdaten.php';">
<tr onclick="window.location.href='Userdaten4.php';">
<td > <img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;">
<b>
<?php
echo "Helfer $HelferName";
if ($HelferIsAdmin) {
echo " (Admin)";
}
if($HelferIsAdmin)
{
echo "Admin ";
}
else
{
echo "Helfer ";
}
echo $HelferName;
?>
</b> </td>
</tr>
<?php
if ($HelferIsAdmin) {
?>
<tr onclick="window.location.href='Admin.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Admin Menü</b></td>
</tr>
<?php
}
?>
<tr onclick="window.location.href='MeineSchichten.php';">
<tr onclick="window.location.href='MeineSchichten4.php';">
<td>
<img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"> <b>Nächste Helferschichten:</b>
@ -56,16 +73,17 @@ if ($HelferIsAdmin) {
////////////////////////////////////////////////////////
//$HelferID=72;
$db_erg = AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID);
$db_erg = AlleSchichtenEinesHelfersVonJetzt($db_link,$HelferID);
$iSQLCount = mysqli_num_rows($db_erg);
//$iSQLCount = 3;
$iCount = 0;
while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC) and $iCount < 3) {
echo "<li>" . $zeile['Ab'] . " " . $zeile['Was'] . "</li>";
$iCount=0;
while ($zeile = mysqli_fetch_array( $db_erg, MYSQLI_ASSOC) and $iCount<3)
{
echo "<li>". $zeile['Ab'] . " ". $zeile['Was'] . "</li>";
$iCount++;
}
@ -109,7 +127,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC) and $iCount < 3) {
</td>
</tr>
-->
<tr onclick="window.location.href='AlleSchichten.php';">
<tr onclick="window.location.href='AlleSchichten4.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b>Schicht Hinzufügen</b></td>
</tr>
@ -122,6 +140,18 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC) and $iCount < 3) {
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Logs</b></td>
</tr>
<?php
if ($HelferIsAdmin)
{
?>
<tr onclick="window.location.href='Admin4.php';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Admin</b></td>
</tr>
<?php
}
?>
</tr>
<tr onclick="window.location.href='index.php?logout=1';">
<td><img src="Bilder/PfeilRechts2.jpeg" style="width:30px;height:30px;"><b> Logout</b></td>

2
html/index.rst Normal file
View File

@ -0,0 +1,2 @@
Platzhalter Helfersystem
------------------------

View File

@ -1,5 +1,4 @@
function showPassword(id)
{
function showPassword(id) {
var x = document.getElementById(id);
if (x.type === "password") {
x.type = "text";
@ -8,52 +7,18 @@ function showPassword(id)
}
}
//// https://www.w3schools.com/howto/howto_js_collapsible.asp
//var coll = document.getElementsByClassName("collapsible");
//var i;
//
//for (i = 0; i < coll.length; i++) {
// coll[i].addEventListener("click", function() {
// this.classList.toggle("active");
// var content = this.nextElementSibling;
// if (content.style.display === "block") {
// content.style.display = "none";
// } else {
// content.style.display = "block";
// }
// });
//}
//
// https://www.w3schools.com/howto/howto_js_collapsible.asp
var coll = document.getElementsByClassName("collapsible");
var i;
//// collapse column rows that are not header
function collapse_table_rows()
{
$(document).ready(
function () {
// Unter-Zeilen in collapsible Tabellen verbergen
$('table.collapsible tr:not(.header)').hide();
// Zeile mit dem target="active" (von PHP nach submit gesetzt) und dazugehoerige Zeilen anzeigen
$('table.collapsible tr[target="active"]').prevUntil('tr.header').addBack().nextUntil('tr.header').addBack().show();
// id="active" als Anker auf letztes tr.header vor der target=active Seite setzen und dort hin springen
// damit der Nutzer nach Abschicken des Posts seine geoeffneten Optionen sieht
$('table.collapsible tr[target="active"]').prevAll('.header').first().attr('id', 'active');
location.href = '#active';
$('table.collapsible tr.header').click(
function () {
$(this).find('span').text(
function (_, value) {
return value == '-' ? '+' : '-'
for (i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active");
var content = this.nextElementSibling;
if (content.style.display === "block") {
content.style.display = "none";
} else {
content.style.display = "block";
}
);
$(this).nextUntil('tr.header').slideToggle(100, function () {});
}
);
}
);
}
function expand_all_table_rows()
{
$('tr:not(.header)').show();
});
}

112
html/style_common.css Normal file
View File

@ -0,0 +1,112 @@
body {
font-family: Arial, Helvetica, sans-serif;
}
table, p, div, td, th, input {
font-size: inherit ;
}
.commontable a {
color: inherit;
text-decoration: inherit;
}
.commontable,#customers {
font-size: inherit;
border-collapse: collapse;
width: 100%;
}
.commontable td,#customers td, .commontable th,#customers th {
border: 1px solid #ddd;
padding: 4px;
}
.commontable tr:nth-child(even),#customers tr:nth-child(even){background-color: #f2f2f2;}
.commontable tr:hover ,#customers tr:hover {background-color: #ddd;}
.commontable th,#customers th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #1090CF;
color: white;
}
#selected th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #0000FF;
color: white;
}
thead {
position: sticky;
top: 0;
color: black;
background: white;
}
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
input, select, textarea {
width: 95%;
}
.commontable button,.back button,.helfer button,#customers button {
text-decoration: none; /* dont underline links */
display: inline-block; /* makes it possible to set top and bottom margins */
width: 45px;
height: 45px;
text-align: center;
}
// spoiler stuff
input[id^="spoiler"]{
display: none !important;
}
input[id^="spoiler"] + label {
display: block;
width: 80px;
margin: 0 auto;
padding: 5px 0px;
background: #51a;
color: #fff;
text-align: center;
font-size: 14px;
border-radius: 8px;
cursor: pointer;
transition: all .6s;
}
input[id^="spoiler"]:checked + label {
color: #333;
background: #ccc;
}
input[id^="spoiler"] + label + .spoiler {
width: 90%;
height: 0;
overflow: hidden;
opacity: 0;
margin: 10px auto 0;
padding: 10px;
background: #eee;
border: 1px solid #ccc;
border-radius: 8px;
transition: all .6s;
}
input[id^="spoiler"]:checked + label + .spoiler{
height: auto;
opacity: 1;
padding: 10px;
}
.remark {
margin: 50px;
background-color: #ffffcc;
}

10
html/style_desktop.css Normal file
View File

@ -0,0 +1,10 @@
@import "style_common.css";
html, body {
font-size: 17;
}
button,select {
font-size: 20px;
}

10
html/style_mobile.css Normal file
View File

@ -0,0 +1,10 @@
@import "style_common.css";
html, body {
font-size: 25;
}
button,select {
font-size: 27;
}

19
html/style_print.css Normal file
View File

@ -0,0 +1,19 @@
@import "style_common.css";
html, body {
font-size: 12;
}
button {
font-size: 0px;
}
table, th, td {
border: 0px;
}
nav, footer {
display: none;
}

View File

@ -0,0 +1,12 @@
<?php
// Geheimer Schlüssel für die Verschlüsseluvon Tokens
$secret_key = "NichtsIstSoGeheimWieSiteswap";
// Geheimes Wort, das an die Email angehaengt wird, um zu ueberpruefen, dass die Addresse nicht abgeschnitten ist
// das Wort darf kein "|" enthalten, das wird als Trenner verwendet
$secret_verification = "531irgendwas";
// urlprefix: https Addresse des php Scripts, das die Tokens empfaengt und einen Account anlegt
$urlprefix="https://helfer.jonglaria.org/UrlLogin.php";
?>