Fix some stuff

This commit is contained in:
Florian Pesth 2024-02-04 13:47:03 +01:00
parent c930b75071
commit dc03373653
3 changed files with 21 additions and 29 deletions

View File

@ -1,4 +1,3 @@
<?php <?php
require_once 'konfiguration.php'; require_once 'konfiguration.php';
@ -36,7 +35,7 @@ class DB {
return self::$stmts[$method . "::" . $variant]->execute($values); return self::$stmts[$method . "::" . $variant]->execute($values);
} }
public function fetch($method, $variant = '', int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0) : mixed public function fetch($method, $variant = '', int $mode = PDO::FETCH_BOTH, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0)
{ {
return self::$stmts[$method . "::" . $variant]->fetch($mode,$cursorOrientation,$cursorOffset); return self::$stmts[$method . "::" . $variant]->fetch($mode,$cursorOrientation,$cursorOffset);
} }
@ -81,7 +80,7 @@ class DB {
public function onErrorDie($method, $variant = '') public function onErrorDie($method, $variant = '')
{ {
if (!is_null(self::errorCode($method, $variant)) && self::errorCode($method, $variant) != '1') { if (!is_null(self::errorCode($method, $variant)) && self::errorCode($method, $variant) != '00000') {
echo $method . "::" . $variant . " ungueltige Abfrage<br>\n"; echo $method . "::" . $variant . " ungueltige Abfrage<br>\n";
echo "sql:" . $stmts[$method . "::" . $variant]->queryString . "<br>\n"; echo "sql:" . $stmts[$method . "::" . $variant]->queryString . "<br>\n";
die('Ungueltige Abfrage: ' . self::errorInfo($method, $variant)[2]); die('Ungueltige Abfrage: ' . self::errorInfo($method, $variant)[2]);
@ -121,7 +120,7 @@ function HelferIstVorhanden($Email)
$db->execute(__METHOD__,["email" => $Email]); $db->execute(__METHOD__,["email" => $Email]);
// TODO Test, that this still works // TODO Test, that this still works
$zeile = $db->fetchAll(__METHOD__); $zeile = $db->fetchAll(__METHOD__);
return $zeile['Anzahl']; return $zeile[0]['Anzahl'];
} }
//TODO: pruefen, ob Helfer bereits eingeloggt //TODO: pruefen, ob Helfer bereits eingeloggt
@ -132,21 +131,21 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus)
$db = DB::getInstance(); $db = DB::getInstance();
$db->prepare(__METHOD__,"SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"); $db->prepare(__METHOD__,"SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email");
$db_erg = $db->execute(__METHOD__,["email" => $HelferEmail]); $db_erg = $db->execute(__METHOD__,["email" => $HelferEmail]);
if ($db->errorCode(__METHOD__) != 1) { if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000') {
echo "Login ungueltige Abfrage"; echo "Login ungueltige Abfrage";
die('Ungueltige Abfrage: ' . $stmt->errorInfo(__METHOD__)[2]); die('Ungueltige Abfrage: ' . $db->errorInfo(__METHOD__)[2]);
} }
while ($zeile = $stmt->fetchAll()) { while ($zeile = $db->fetchAll(__METHOD__)) {
$HelferPasswort = "" . $HelferPasswort . "ß"; $HelferPasswort = "" . $HelferPasswort . "ß";
//echo "<b>".$HelferPasswort."</b><br>"; //echo "<b>".$HelferPasswort."</b><br>";
//echo "<b>".$zeile['Passwort']."</b><br>"; //echo "<b>".$zeile['Passwort']."</b><br>";
if (password_verify($HelferPasswort, $zeile['Passwort'])) { if (password_verify($HelferPasswort, $zeile[0]['Passwort'])) {
$_SESSION["HelferID"] = $zeile['HelferID']; $_SESSION["HelferID"] = $zeile[0]['HelferID'];
$_SESSION["HelferName"] = $zeile['Name']; $_SESSION["HelferName"] = $zeile[0]['Name'];
//TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist //TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist
$_SESSION["AdminID"] = $zeile['HelferID']; $_SESSION["AdminID"] = $zeile[0]['HelferID'];
$_SESSION["AdminStatus"] = $zeile['Admin']; $_SESSION["AdminStatus"] = $zeile[0]['Admin'];
$_SESSION["HelferLevel"] = $zeile['HelferLevel']; $_SESSION["HelferLevel"] = $zeile[0]['HelferLevel'];
return 1; return 1;
} else { } else {
echo "Falsches Passwort<br>"; echo "Falsches Passwort<br>";
@ -157,7 +156,7 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus)
// Liste der Helfer fuer Admin-Seite // Liste der Helfer fuer Admin-Seite
//TODO: HelferLevel //TODO: HelferLevel
function HelferListe($pdo) function HelferListe()
{ {
$db = DB::getInstance(); $db = DB::getInstance();
$db->prepare(__METHOD__,"SELECT HelferID,Name FROM Helfer"); $db->prepare(__METHOD__,"SELECT HelferID,Name FROM Helfer");
@ -167,7 +166,7 @@ function HelferListe($pdo)
} }
function Helferdaten($pdo, $HelferID) function Helferdaten($HelferID)
{ {
$db = DB::getInstance(); $db = DB::getInstance();
$db->prepare(__METHOD__,"SELECT * FROM Helfer Where HelferID = :helferid"); $db->prepare(__METHOD__,"SELECT * FROM Helfer Where HelferID = :helferid");
@ -178,7 +177,7 @@ function Helferdaten($pdo, $HelferID)
function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0)
{ {
$db = DB::getInstance(); $db = DB::getInstance();
$db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy Where HelferId=:id",'password_empty'); $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy Where HelferId=:id",'password_empty');
@ -566,7 +565,7 @@ function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLeve
$db->onErrorDie(__METHOD__); $db->onErrorDie(__METHOD__);
} }
function NewDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel)
{ {
$db = DB::getInstance(); $db = DB::getInstance();
$db->prepare(__METHOD__,"INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); $db->prepare(__METHOD__,"INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)");
@ -579,14 +578,12 @@ function NewDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel)
"helferlevel" => $HelferLevel "helferlevel" => $HelferLevel
]); ]);
if ($db->errorCode(__METHOD__) != 1){ if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000'){
echo "Fehler New Dienst"; $err = $db->errorInfo(__METHOD__)[2];
// echo $sql; error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht konnte nicht angelegt werden Grund: $err \n", 3, LOGFILE);
$err = $stmt->errorInfo(__METHOD__)[2];
error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit Anfrage $sql Grund: $err \n", 3, LOGFILE);
die('Ungueltige Abfrage: ' . $err); die('Ungueltige Abfrage: ' . $err);
} else { } else {
error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName(ID:HelferID) hat Dienst angelegt mit Was: $WAS Wo: $Wo Info: $Info Leiter: $Leiter Gruppe $Gruppe, HelferLevel $HelferLevel \n", 3, LOGFILE); error_log(date('Y-m-d H:i') . " NeueSchicht: Dienst wurde angelegt mit Was: $Was Wo: $Wo Info: $Info Leiter: $Leiter Gruppe $Gruppe, HelferLevel $HelferLevel \n", 3, LOGFILE);
} }
} }

View File

@ -12,11 +12,6 @@ require_once('../bengelsystem_konfiguration.php');
// define( VERANSTALTUNGSNAME, "dubbelcon"); // define( VERANSTALTUNGSNAME, "dubbelcon");
// define( INFORMATIONS_URL, "http://drop-am-see.de/Gelaende"); // define( INFORMATIONS_URL, "http://drop-am-see.de/Gelaende");
date_default_timezone_set('Europe/Berlin');
setlocale(LC_TIME, "de_DE.UTF-8");
$start_date = new DateTimeImmutable("2023-05-18");
define('TAGE_DAUER', 4);
// Geheimer Schlüssel für die Verschlüsselung von Tokens // Geheimer Schlüssel für die Verschlüsselung von Tokens
// das ist das Passwort, mit dem sich aus den Tokens auch wieder der Username/Email extrahieren lässt // das ist das Passwort, mit dem sich aus den Tokens auch wieder der Username/Email extrahieren lässt

View File

@ -4,7 +4,7 @@
"steps": [ "steps": [
{ {
"id": "basedata", "id": "basedata",
"page": "<h2>Basisinformationen für die Convention<\/h2><p>Zunächst brauchen wir ein paar allgemeine Angaben für die Convention:<\/p><form action=\"Setup.php\" method=\"post\"><fieldset><legend>Eventinformationen<\/legend><label for=\"eventname\">Eventname (\"Meine tolle Jonglierconvention\") <\/label><input type=\"text\" id=\"eventname\" name=\"eventname\" \/><br \/><label for=\"startdate\">Beginn der Convention: <\/label><input type=\"date\" id=\"startdate\" name=\"startdate\" \/><br \/><label for=\"duration\">Dauer (Tage): <\/label><input type=\"number\" min=\"1\" value=\"3\" id=\"duration\" name=\"duration\" \/><br \/><label for=\"timezone\">Zeitzone <\/label><input type=\"text\" id=\"timezone\" name=\"timezone\" value=\"Europe\/Berlin\" \/><br \/><label for=\"locale\">Lokalisierung <\/label><input type=\"text\" id=\"locale\" name=\"locale\" value=\"de_DE.UTF-8\" \/><\/fieldset><fieldset><legend>Technische Details</legend><label for=\"logfile\">Logfile <\/label><input type=\"text\" id=\"logfile\" name=\"logfile\" value=\"..\/convention.log\" \/><br \/><label for=\"infourl\">Informations URL <\/label><input type=\"text\" id=\"infourl\" name=\"infourl\" value=\"https://convention.example.org\" \/><br \/><label for=\"urlprefix\">URL Prefix<\/label><input type=\"text\" id=\"urlprefix\" name=\"urlprefix\" value=\"https://convention.example.org/Bengelsystem\" \/><br \/><label for=\"secretkey\">Geheimer Schlüssel <\/label><input type=\"password\" id=\"secretkey\" name=\"secretkey\" \/><br \/><label for=\"secretverification\">Geheimer Schlüssel für Verifikation<\/label><input type=\"password\" id=\"secretverification\" name=\"secretverification\" \/></fieldset><\/form>" "page": "<h2>Basisinformationen für die Convention<\/h2><p>Zunächst brauchen wir ein paar allgemeine Angaben für die Convention:<\/p><form action=\"Setup.php\" method=\"post\"><fieldset><legend>Eventinformationen<\/legend><input type=\"hidden\" name=\"stepfrom\" value=\"basedata\" \/><input type=\"hidden\" name=\"step\" value=\"selectdatabase\" \/><label for=\"eventname\">Eventname (\"Meine tolle Jonglierconvention\") <\/label><input type=\"text\" id=\"eventname\" name=\"eventname\" \/><br \/><label for=\"startdate\">Beginn der Convention: <\/label><input type=\"date\" id=\"startdate\" name=\"startdate\" \/><br \/><label for=\"duration\">Dauer (Tage): <\/label><input type=\"number\" min=\"1\" value=\"3\" id=\"duration\" name=\"duration\" \/><br \/><label for=\"timezone\">Zeitzone <\/label><input type=\"text\" id=\"timezone\" name=\"timezone\" value=\"Europe\/Berlin\" \/><br \/><label for=\"locale\">Lokalisierung <\/label><input type=\"text\" id=\"locale\" name=\"locale\" value=\"de_DE.UTF-8\" \/><\/fieldset><fieldset><legend>Technische Details</legend><label for=\"logfile\">Logfile <\/label><input type=\"text\" id=\"logfile\" name=\"logfile\" value=\"..\/convention.log\" \/><br \/><label for=\"infourl\">Informations URL <\/label><input type=\"text\" id=\"infourl\" name=\"infourl\" value=\"https://convention.example.org\" \/><br \/><label for=\"urlprefix\">URL Prefix<\/label><input type=\"text\" id=\"urlprefix\" name=\"urlprefix\" value=\"https://convention.example.org/Bengelsystem\" \/><br \/><label for=\"secretkey\">Geheimer Schlüssel <\/label><input type=\"password\" id=\"secretkey\" name=\"secretkey\" \/><br \/><label for=\"secretverification\">Geheimer Schlüssel für Verifikation<\/label><input type=\"password\" id=\"secretverification\" name=\"secretverification\" \/></fieldset><input type=\"submit\" value=\"Weiter\" \/><\/form>"
}, },
{ {
"id": "selectdatabase", "id": "selectdatabase",