From ce05503978085a39889abe073c07208f34a0b6a5 Mon Sep 17 00:00:00 2001 From: Florian Pesth Date: Mon, 25 Dec 2023 19:55:21 +0100 Subject: [PATCH 01/51] Change SQL to PDO (WIP) --- html/SQL.php | 698 ++++++++++++++++++++++++----------------- html/Setup.php | 628 ++++++++++++++++++++++++++++++++++++ html/Setup.rst | 54 ++++ html/index.php | 9 +- html/konfiguration.php | 7 +- 5 files changed, 1092 insertions(+), 304 deletions(-) create mode 100644 html/Setup.php create mode 100644 html/Setup.rst diff --git a/html/SQL.php b/html/SQL.php index 44b7cde..eb4d0bd 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -5,107 +5,116 @@ require_once 'konfiguration.php'; function ConnectDB() { - $db_link = mysqli_connect( - MYSQL_HOST, + $datasourcename = "mysql:host=" . MYSQL_HOST . ";dbname=". MYSQL_DATENBANK . ";charset=utf8mb4"; + $pdo = new PDO( + $datasourcename, MYSQL_BENUTZER, - MYSQL_KENNWORT, - MYSQL_DATENBANK + MYSQL_KENNWORT ); - return $db_link; + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); + return $pdo; } -function CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) +function CreateHelfer($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) { - $HelferName = mysqli_real_escape_string($db_link, $HelferName); - $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail); - $HelferHandy = mysqli_real_escape_string($db_link, $HelferHandy); - // level: Teilnehmer/Dauerhelfer/(Teamleiter) - $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); - - //$HelferName=mysqli_real_escape($db_link,$HelferName); - $HelferPasswort = "€" . $HelferPasswort . "ß"; - //echo "".$HelferPasswort.""; - $PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT); - - // Neuen Helfer anlegen - $sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel) VALUES ('$HelferName','$HelferEmail','$HelferHandy',1,'',0,'$PasswortHash','$HelferLevel')"; - $db_erg = mysqli_query($db_link, $sql); + $HelferPasswort = "€" . $HelferPasswort . "ß"; + $PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT); + + static $sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel)". + " VALUES (:name,:email,:handy,:status,:bildfile,:doreport,:passwort,:helferlevel)"; + static $stmt = false; + if(!$stmt) $stmt = $pdo->prepare($sql); + $db_erg = $stmt->execute([ + "name" => $HelferName, + "email" => $HelferEmail, + "handy" => $HelferHandy, + "status" => 1, + "bildfile" => '', + "doreport" => 0, + "passwort" => $PasswortHash, + "helferlevel" => $HelferLevel + ]); + + $stmt->fetch(); error_log(date('Y-m-d H:i') . " CreateHelfer: $HelferName angelegt mit Email $HelferEmail Handy $HelferHandy \n", 3, LOGFILE); return $db_erg; } // testet fuer urllogin, ob Helfer bereits existiert -function HelferIstVorhanden($db_link, $Email) +function HelferIstVorhanden($pdo, $Email) { - $Email = mysqli_real_escape_string($db_link, $Email); - $sql = "SELECT count(HelferID) as Anzahl FROM Helfer Where Email = '" . $Email . "'"; - $db_erg = mysqli_query($db_link, $sql); - $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + static $sql = "SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"; + static $stmt = false; + if(!$stmt) $stmt = $pdo->prepare($sql); + $stmt->execute(["email" => $Email]); + // TODO Test, that this still works + $zeile = $stmt->fetchAll(); return $zeile['Anzahl']; } //TODO: pruefen, ob Helfer bereits eingeloggt -function HelferLogin($db_link, $HelferEmail, $HelferPasswort, $HelferStatus) +function HelferLogin($pdo, $HelferEmail, $HelferPasswort, $HelferStatus) { - $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail); - $HelferStatus = mysqli_real_escape_string($db_link, $HelferStatus); - //echo "Test
"; // Helfer Suchen - $sql = "Select HelferID,Admin,Name,Passwort,HelferLevel From Helfer Where Email='" . $HelferEmail . "'"; - //echo $sql; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + static $sql = "SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"; + static $stmt = false; + if(!$stmt) $stmt = $pdo->prepare($sql); + $db_erg = $stmt->execute(["email" => $HelferEmail]); + if ($stmt->errorCode() != 1) { echo "Login ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + while ($zeile = $stmt->fetchAll()) { $HelferPasswort = "€" . $HelferPasswort . "ß"; //echo "".$HelferPasswort."
"; //echo "".$zeile['Passwort']."
"; if (password_verify($HelferPasswort, $zeile['Passwort'])) { $_SESSION["HelferID"] = $zeile['HelferID']; $_SESSION["HelferName"] = $zeile['Name']; - //TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist - $_SESSION["AdminID"] = $zeile['HelferID']; - $_SESSION["AdminStatus"] = $zeile['Admin']; - $_SESSION["HelferLevel"] = $zeile['HelferLevel']; - return 1; + //TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist + $_SESSION["AdminID"] = $zeile['HelferID']; + $_SESSION["AdminStatus"] = $zeile['Admin']; + $_SESSION["HelferLevel"] = $zeile['HelferLevel']; + return 1; } else { echo "Falsches Passwort
"; - return 0; + return 0; } } } // Liste der Helfer fuer Admin-Seite //TODO: HelferLevel -function HelferListe($db_link) +function HelferListe($pdo) { - $sql = "SELECT HelferID,Name FROM Helfer"; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + static $sql = "SELECT HelferID,Name FROM Helfer"; + static $stmt = false; + if(!$stmt) $stmt = $pdo->prepare($sql); + $db_erg = $stmt->execute(); + if ($stmt->errorCode() != 1) { echo "Helferliste ungueltige Abfrage"; - die('Unueltige Abfrage: ' . mysqli_error($db_link)); + die('Unueltige Abfrage: ' . $stmt->errorInfo()[2]); } return $db_erg; } -function Helferdaten($db_link, $HelferID) +function Helferdaten($pdo, $HelferID) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); + static $sql = "SELECT * FROM Helfer Where HelferID = :helferid"; + static $stmt = false; + if(!$stmt) $stmt = $pdo->prepare($sql); + $db_erg = $stmt->execute(["helferid" => $HelferID]); - $sql = "SELECT * FROM Helfer Where HelferID =" . $HelferID; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + if ($stmt->errorCode() != 1) { echo "Helferdaten ungueltige Abfrage
\n"; echo "sql:$sql
\n"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } return $db_erg; @@ -113,39 +122,65 @@ function Helferdaten($db_link, $HelferID) -function HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) +function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $HelferName = mysqli_real_escape_string($db_link, $HelferName); - $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail); - $HelferHandy = mysqli_real_escape_string($db_link, $HelferHandy); + static $stmts_prepared = false; + static $stmts = array(); + if(!$stmts_prepared) { + $stmts['password_empty'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy Where HelferId=:id"); + $stmts['password_empty_admin'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Admin=:admin Where HelferId=:id"); + $stmts['password_given'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort Where HelferId=:id"); + $stmts['password_given_admin'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort,Admin=:admin Where HelferId=:id"); + $stmts_prepared = true; + } if ($HelferNewPasswort == "") { //$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID; if ($HelferIsAdmin == -1) { - $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' Where HelferId=" . $HelferID; + $db_erg = $stmts['password_empty']->execute([ + "name" => $HelferName, + "email" => $HelferEmail, + "handy" => $HelferHandy, + "id" => $HelferID + ]); } else { - $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',Admin=$HelferIsAdmin Where HelferId=" . $HelferID; + $db_erg = $stmts['password_empty_admin']->execute([ + "name" => $HelferName, + "email" => $HelferEmail, + "handy" => $HelferHandy, + "admin" => $HelferIsAdmin, + "id" => $HelferID + ]); } - echo $sql; - $db_erg = mysqli_query($db_link, $sql); echo "
  • Helferdaten geändert
  • "; if ($AdminID != 0) { - error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n", 3, LOGFILE); } else { - error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Admin: $HelferIsAdmin\n", 3, LOGFILE); } } else { $HelferNewPasswort = "€" . $HelferNewPasswort . "ß"; $PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT); if ($HelferIsAdmin == -1) { - $sql = "UPDATE Helfer SET Name='" . $HelferName . "',Email='" . $HelferEmail . "',Handy='" . $HelferHandy . "',Passwort='" . $PasswortHash . "' Where HelferId=" . $HelferID; + $db_erg = $stmts['password_given']->execute([ + "name" => $HelferName, + "email" => $HelferEmail, + "handy" => $HelferHandy, + "passwort" => $PasswortHash, + "id" => $HelferID + ]); } else { - $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',Passwort='$PasswortHash',Admin=$HelferIsAdmin Where HelferId=" . $HelferID; + $db_erg = $stmts['password_given_admin']->execute([ + "name" => $HelferName, + "email" => $HelferEmail, + "handy" => $HelferHandy, + "passwort" => $PasswortHash, + "admin" => $HelferIsAdmin, + "id" => $HelferID + ]); } //echo $sql; - $db_erg = mysqli_query($db_link, $sql); echo "
  • Passwort geändert
  • "; if ($AdminID != 0) { error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy Passwort: neu gesetzt\n", 3, LOGFILE); @@ -154,39 +189,44 @@ function HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $ } } - if (! $db_erg) { - echo "HelferdatenAendern ungueltiges Statement"; - echo $sql; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + foreach ($stmts as $stmt) { + if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { + echo "HelferdatenAendern ungueltiges Statement"; + echo $stmt->queryString; + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); + } } - return $db_erg; } -function AlleSchichten($db_link, $Sort, $HelferLevel = 1) +function AlleSchichten($pdo, $Sort, $HelferLevel = 1) { - - $Sort = mysqli_real_escape_string($db_link, $Sort); + static $stmts_prepared = false; + static $stmts = array(); + if(!$stmts_prepared) { + $stmts['sort_by_von'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Von"); + $stmts['sort_by_was_von'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Was,Von"); + $stmts_prepared = true; + } if ($Sort == '1') { - $sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=$HelferLevel order by Von"; + $db_erg = $stmts['sort_by_von']->execute(["helferlevel" => $HelferLevel]); } else { - $sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=$HelferLevel order by Was,Von"; + $db_erg = $stmts['sort_by_was_von']->execute(["helferlevel" => $HelferLevel]); } - $db_erg = mysqli_query($db_link, $sql); - - if (! $db_erg) { - echo "AlleSchichten ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + foreach ($stmts as $stmt) { + if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { + echo "AlleSchichten ungueltige Abfrage"; + echo $Sort; + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); + } } - return $db_erg; } @@ -194,18 +234,21 @@ function AlleSchichtenCount($db_link, $HelferLevel = 1) { //$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel"; - $sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel"; - - - $db_erg = mysqli_query($db_link, $sql); - - if (! $db_erg) { - echo "AlleSchichtenCount ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); } - $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + + $db_erg = $stmt->execute(["helferlevel" => $HelferLevel]); + + if ($stmt->errorCode() != 1){ + echo "AlleSchichtenCount ungueltige Abfrage"; + echo $Sort; + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); + } + + $zeile = $stmt->fetchAll(); return $zeile['Anzahl']; } @@ -213,61 +256,78 @@ function AlleSchichtenCount($db_link, $HelferLevel = 1) function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1) { - $sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel"; - - - $db_erg = mysqli_query($db_link, $sql); - - if (! $db_erg) { - echo "AlleSchichtenCount ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); } - $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + + $db_erg = $stmt->execute(["helferlevel" => $Helferlevel]); + + if ($stmt->errorCode() != 1){ + echo "AlleSchichtenCount ungueltige Abfrage"; + echo $Sort; + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); + } + + $zeile = $stmt->fetchAll(); return $zeile['Anzahl']; } -function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1) +function AlleSchichtenImZeitbereich($pdo, $Von, $Bis, $HelferLevel = 1) { // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden - $Von = mysqli_real_escape_string($db_link, $Von); - $Bis = mysqli_real_escape_string($db_link, $Bis); - $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); - $sql_helferlevel = "and Dienst.HelferLevel=$HelferLevel"; + + static $stmts_prepared = false; + static $stmts = array(); + if(!$stmts_prepared) { + $stmts['helferlevel_not_set'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID order by Was,Von"); + $stmts['helferlevel_set'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.HelferLevel=:helferlevel order by Was,Von"); + $stmts_prepared = true; + } + if ($HelferLevel == -1) { - $sql_helferlevel = ""; + $db_erg = $stmts['helferlevel_not_set']->execute([ + "von" => $Von, + "bis" => $Bis + ]); + } + else { + $db_erg = $stmts['helferlevel_set']->execute([ + "von" => $Von, + "bis" => $Bis, + "helferlevel" => $HelferLevel + ]); } - $sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= '" . $Von . "' and Von <'" . $Bis . "' and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel order by Was,Von"; - error_log($sql); - $db_erg = mysqli_query($db_link, $sql); - - if (! $db_erg) { - echo "AlleSchichtenImZeitbereich ungueltige Abfrage
    "; - echo $sql; - die('
    Ungueltige Abfrage: ' . mysqli_error($db_link)); + foreach ($stmts as $stmt) { + if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { + echo "AlleSchichtenImZeitbereich ungueltige Abfrage
    "; + echo $stmt->queryString; + die('
    Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); + } } - return $db_erg; } -function AlleSchichtenEinesHelfers($db_link, $HelferID) +function AlleSchichtenEinesHelfers($pdo, $HelferID) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); + } - $sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=" . $HelferID . " order by Von"; - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $stmt->execute(["helferid" => $HelferID]); - if (! $db_erg) { + if ($stmt->errorCode() != 1){ echo "AlleSchichtenEinesHelfers ungueltige Abfrage"; echo $HelferID; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } @@ -313,7 +373,10 @@ function SchichtIdArrayEinesHelfers($db_link, $HelferID) $HelferID = mysqli_real_escape_string($db_link, $HelferID); // Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn - $sql = "SELECT SchichtID FROM EinzelSchicht WHERE HelferID = $HelferID"; + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("SELECT SchichtID FROM EinzelSchicht WHERE HelferID = $HelferID"); + } //print_r($sql); $db_erg = mysqli_query($db_link, $sql); $schichtIDs = array(); @@ -326,40 +389,45 @@ function SchichtIdArrayEinesHelfers($db_link, $HelferID) function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); // TODO: fix GETDATE() array to string conversion - $sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=" . $HelferID . " and Bis>'" . GETDATE() . "' order by Von"; + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:id and Bis>:bis order by Von"); + } //$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'2023-05-20' order by Von"; //echo $sql; - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $stmt->execute([ + "id" => $HelferID, + "bis" => GETDATE() + ]); - if (! $db_erg) { + if($stmt->errorCode() != 1){ echo "AlleSchichtenEinesHelfers ungueltige Abfrage"; echo $HelferID; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } - return $db_erg; } function SchichtenSummeEinesHelfers($db_link, $HelferID) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - //$sql = "select count Schicht.Dauer as Anzahl FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von"; - $sql = "select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=" . $HelferID; + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid"); + } //echo $sql; - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $stmt->execute(["helferid" => $HelferID]); - if (! $db_erg) { + if ($stmt->errorCode() != 1){ echo "SchichtenSummeEinesHelfers ungueltige Abfrage"; echo $HelferID; - echo $sql; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + echo $stmt->queryString; + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } @@ -375,14 +443,17 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A $Aktion = mysqli_real_escape_string($db_link, $Aktion); $AdminID = mysqli_real_escape_string($db_link, $AdminID); - $sql = "SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name FROM EinzelSchicht JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID JOIN Dienst ON Schicht.DienstID = Dienst.DienstID JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID WHERE EinzelSchicht.HelferID = $HelferID AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) - "; + "); + } //error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE); $db_erg = mysqli_query($db_link, $sql); @@ -407,69 +478,76 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A } } -function HelferSchichtZuweisen($db_link, $HelferID, $SchichtId, $AdminID = 0) +function HelferSchichtZuweisen($pdo, $HelferID, $SchichtId, $AdminID = 0) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); + // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert + static $stmts_prepared = false; + static $stmts = false; + if(!$stmts_prepared) { + $stmts['einzelschicht_exists'] = $pdo->prepare("SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID=:schichtid and HelferID=:helferid"); + $stmts['new_einzelschicht'] = $pdo->prepare("INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (:schichtid,:helferid)"); + $stmts_prepared = true; + } - // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert - $sql = "SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID='$SchichtId' and HelferID='$HelferID'"; + $db_erg = $stmts['einzelschicht_exists']->execute([ + "schichtid" => $SchichtId, + "helferid" => $HelferID + ]); - $db_erg = mysqli_query($db_link, $sql); - - if (mysqli_num_rows($db_erg) > 0) { + if($stmt['einzelschicht_exists']->fetch()){ echo "HelferSchichtZuweisen: Schicht existiert bereits!"; return false; } // Helfer Schicht zuweisen - $sql = 'INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (\'' - . $SchichtId . '\',\'' - . $HelferID . '\')'; //echo ''; - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $stmts['new_einzelschicht']->execute([ + "schichtid" => $SchichtId, + "helferid" => $HelferID + ]); - if (! $db_erg) { + if ($stmts['new_einzelschicht']->errorCode() != 1){ echo "HelferSchichtZuweisen ungueltige Abfrage"; echo $HelferID; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmts['new_einzelschicht']->errorInfo()[2]); } - LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID); + LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID); return $db_erg; } -function HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID, $AdminID = 0) +function HelferVonSchichtLoeschen($pdo, $HelferID, $EinzelSchichtID, $AdminID = 0) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); - - // Log vor Löschen, damit Einzelschicht abgefragt werden kann LogSchichtEingabe($db_link, $HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID); // Lösche Einzelschicht - $sql = "Delete From EinzelSchicht Where EinzelSchichtID =" . $EinzelSchichtID; - //echo $sql; - $db_erg = mysqli_query($db_link, $sql); + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("Delete From EinzelSchicht Where EinzelSchichtID = :id"); + } + //echo $sql; + $db_erg = $stmt->execute(["id" => $EinzelSchichtID]); return $db_erg; } -function HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $AdminID = 0) +function HelferVonSchichtLoeschen_SchichtID($pdo, $HelferID, $SchichtID, $AdminID = 0) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); - - // Log vor Löschen, damit Einzelschicht abgefragt werden kann LogSchichtEingabe($db_link, $HelferID, $SchichtID, -1, "entfernt", $AdminID); // Lösche Einzelschicht - $sql = "Delete From EinzelSchicht Where SchichtID = $SchichtID and HelferID = $HelferID limit 1;"; + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;"); + } //echo $sql; - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $stmt->execute([ + "schichtid" => $SchichtID, + "helferid" => $HelferID + ]); return $db_erg; } @@ -478,39 +556,40 @@ function HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $Ad -function DetailSchicht($db_link, $InfoSchichtID) +function DetailSchicht($pdo, $InfoSchichtID) { - $InfoSchichtID = mysqli_real_escape_string($db_link, $InfoSchichtID); - - - $sql = "select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=" . $InfoSchichtID; - - //echo $sql; - $db_erg = mysqli_query($db_link, $sql); - - if (! $db_erg) { - echo "Details ungueltige Abfrage "; - echo $InfoSchichtID; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=:id"); } - $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + //echo $sql; + $db_erg = $stmt->execute(["id" => $InfoSchichtID]); + + if ($stmt->errorCode() != 1){ + echo "Details ungueltige Abfrage "; + echo $InfoSchichtID; + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); + } + + $zeile = $stmt->fetchAll(); return $zeile; } -function BeteiligteHelfer($db_link, $InfoSchichtID) +function BeteiligteHelfer($pdo, $InfoSchichtID) { - $InfoSchichtID = mysqli_real_escape_string($db_link, $InfoSchichtID); + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); + } - $sql = "select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=" . $InfoSchichtID; + $db_erg = $stmt->execute(["id" => $InfoSchichtID]); - $db_erg = mysqli_query($db_link, $sql); - - if (! $db_erg) { + if ($stmt->errorCode() != 1){ echo "Details ungueltige Abfrage "; echo $InfoSchichtID; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } return $db_erg; @@ -518,100 +597,114 @@ function BeteiligteHelfer($db_link, $InfoSchichtID) function GetDienste($db_link) { - $sql = "SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"; + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); + } $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + if ($stmt->errorCode() != 1){ echo "GetDienste ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } return $db_erg; } -function GetDiensteChilds($db_link, $DienstID) +function GetDiensteChilds($pdo, $DienstID) { - $DienstID = mysqli_real_escape_string($db_link, $DienstID); + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); + } - $sql = "SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID='" . $DienstID . "' order by Was"; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + $db_erg = $stmt->execute(["id" => $DienstID]); + + if ($stmt->errorCode() != 1){ echo "GetDienste ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } return $db_erg; } -function ChangeDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +function ChangeDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { - $DienstID = mysqli_real_escape_string($db_link, $DienstID); - $Was = mysqli_real_escape_string($db_link, $Was); - $Wo = mysqli_real_escape_string($db_link, $Wo); - $Info = mysqli_real_escape_string($db_link, $Info); - $Leiter = mysqli_real_escape_string($db_link, $Leiter); - $Gruppe = mysqli_real_escape_string($db_link, $Gruppe); - $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); // int (1,2) Teilnehmer oder Dauerhelfer + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid"); + } - $sql = "UPDATE Dienst SET Was='" . $Was . "', Wo='" . $Wo . "', Info='" . $Info . "', Leiter=" . $Leiter . ", ElternDienstID=" . $Gruppe . " where DienstID=" . $DienstID; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + $db_erg = $stmt->execute([ + "was" => $Was, + "wo" => $Wo, + "info" => $Info, + "leiter" => $Leiter, + "elterndienstid" => $Gruppe, + "dienstid" => $DienstID + ]); + + if ($stmt->errorCode() != 1){ echo "Fehler Change Dienst"; echo $sql; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } } -function NewDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +function NewDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); + } - $DienstID = mysqli_real_escape_string($db_link, $DienstID); - $Was = mysqli_real_escape_string($db_link, $Was); //Name des Dienstes - $Wo = mysqli_real_escape_string($db_link, $Wo); //Ort - $Info = mysqli_real_escape_string($db_link, $Info); //vollstaendige Beschreibung - $Leiter = mysqli_real_escape_string($db_link, $Leiter); // int HelferID des Leiters - $Gruppe = mysqli_real_escape_string($db_link, $Gruppe); // ?? - $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); // int (1,2) Teilnehmer oder Dauerhelfer - - - $sql = "INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values ('$Was','$Wo','$Info',$Leiter,$Gruppe,$HelferLevel)"; + $db_erg = $stmt->execute([ + "was" => $Was, + "wo" => $Wo, + "info" => $Info, + "leiter" => $Leiter, + "elterndienstid" => $Gruppe, + "helferlevel" => $HelferLevel + ]); $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + if ($stmt->errorCode() != 1){ echo "Fehler New Dienst"; // echo $sql; - $err = mysqli_error($db_link); + $err = $stmt->errorInfo()[2]; die('Ungueltige Abfrage: ' . $err); - error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit Anfrage $sql Grund: $err \n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit Anfrage $sql Grund: $err \n", 3, LOGFILE); } 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: $HelferName(ID:HelferID) hat Dienst angelegt mit Was: $WAS Wo: $Wo Info: $Info Leiter: $Leiter Gruppe $Gruppe, HelferLevel $HelferLevel \n", 3, LOGFILE); } } function DeleteDienst($db_link, $DienstID, $Rekursiv) { - $DienstID = mysqli_real_escape_string($db_link, $DienstID); - - if ($Rekursiv) { return false; } else { // Pruefen ob noch Schichten eingetragen sind - $sql = "SELECT SchichtID FROM Schicht where DienstID=" . $DienstID; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + static $stmts_prepared = false; + static $stmts = array(); + if(!$stmts_prepared) { + $stmts['check_dienst'] = $pdo->prepare("SELECT SchichtID FROM Schicht where DienstID=:id"); + $stmts['delete_dienst'] = $pdo->prepare("DELETE FROM Dienst where DienstID=:id"); + $stmts_prepared = true; + } + + $db_erg = $stmts['check_dienst']->execute(['id' => $DienstID]); + + if ($stmts['check_dienst']->errorCode() != 1){ echo "Fehler DeleteDienst"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmts['check_dienst']->errorInfo()[2]); } - if (mysqli_num_rows($db_erg) == 0) { + if ($stmts['check_dienst']->fetch()) { // Eintrag löschen - $sql = "DELETE FROM Dienst where DienstID=" . $DienstID; - - echo $sql; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + $db_erg = $stmts['delete_dienst']->execute(['id' => $DienstID]); + if ($stmts['delete_dienst']->errorCode() != 1){ echo "Fehler DeleteDienst"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmts['delete_dienst']->errorInfo()[2]); } return true; } else { @@ -622,46 +715,44 @@ function DeleteDienst($db_link, $DienstID, $Rekursiv) function GetSchichtenEinesDienstes($db_link, $DienstID) { - $DienstID = mysqli_real_escape_string($db_link, $DienstID); - //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; - $sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=" . $DienstID; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=:id"); + } + $db_erg = $stmt->execute(['id' => $DienstID]); + if ($stmt->errorCode() != 1){ echo "GetSchichtenEinesDienstes ungueltige Abfrage"; echo $sql; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } return $db_erg; } function ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll) { - $SchichtID = mysqli_real_escape_string($db_link, $SchichtID); - $Von = mysqli_real_escape_string($db_link, $Von); - $Bis = mysqli_real_escape_string($db_link, $Bis); - $Soll = mysqli_real_escape_string($db_link, $Soll); + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll where SchichtID=:id"); + } + $db_erg = $stmt->execute([ + 'von' => $Von, + 'bis' => $Bis, + 'soll' => $Soll, + 'id' => $SchichtID + ]); - $sql = "UPDATE Schicht SET Von='" . $Von . "', Bis='" . $Bis . "', Soll='" . $Soll . "' where SchichtID=" . $SchichtID; - - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + if ($stmt->errorCode() != 1){ echo "Fehler ChangeSchicht"; - echo $sql; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } } function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) { - $DienstID = mysqli_real_escape_string($db_link, $DienstID); - $Von = mysqli_real_escape_string($db_link, $Von); - $Bis = mysqli_real_escape_string($db_link, $Bis); - $Soll = mysqli_real_escape_string($db_link, $Soll); - /* if(validateDate($Von)) { @@ -674,14 +765,23 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) return Null; } */ - $sql = "INSERT INTO Schicht (DienstID, Von, Bis, Soll) values ('" . $DienstID . "','" . $Von . "','" . $Bis . "'," . $Soll . ")"; + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("INSERT INTO Schicht (DienstID, Von, Bis, Soll) values (:id,:von,:bis,:soll)"); + } - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + $db_erg = $stmt->execute([ + 'id' => $DienstID, + 'von' => $Von, + 'bis' => $Bis, + 'soll' => $Soll + ]); + + if ($stmt->errorCode() != 1){ echo "Keine Schicht erstellt"; //echo $sql; error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); - $err = mysqli_error($db_link); + $err = $stmt->errorInfo()[2]; die('Ungueltige Abfrage: ' . $err); } else { //TODO: DienstID aufloesen @@ -689,30 +789,33 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) } } -function DeleteSchicht($db_link, $SchichtID, $Rekursiv) +function DeleteSchicht($pdo, $SchichtID, $Rekursiv) { - $SchichtID = mysqli_real_escape_string($db_link, $SchichtID); + static $stmts_prepared = false; + static $stmts = false; + if(!$stmts_prepared) { + $stmts['check_einzelschicht'] = $pdo->prepare("SELECT Name FROM EinzelSchicht,Helfer where SchichtID=:id and Helfer.HelferID=EinzelSchicht.HelferID"); + $stmts['delete_einzelschicht'] = $pdo->prepare("DELETE FROM Schicht where SchichtID=:id"); + $stmts_prepared = true; + } if ($Rekursiv) { return false; } else { // Pruefen ob noch Helfer auf der Schicht eingetragen sind - $sql = "SELECT Name FROM EinzelSchicht,Helfer where SchichtID=" . $SchichtID . " and Helfer.HelferID=EinzelSchicht.HelferID"; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + $db_erg = $stmts['check_einzelschicht']->execute(["id" => $SchichtID ]); + + if ($stmts['check_einzelschicht']->errorCode() != 1){ echo "Fehler Change Dienst"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmts['check_einzelschicht']->errorInfo()[2]); } - if (mysqli_num_rows($db_erg) == 0) { + if (!$stmts['check_einzelschicht']->fetch()) { // Eintrag löschen - $sql = "DELETE FROM Schicht where SchichtID=" . $SchichtID; - - echo $sql; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + $db_erg = $stmts['delete_einzelschicht']->execute(["id" => $SchichtID ]); + if ($stmts['delete_einzelschicht']->errorCode() != 1) { echo "Fehler Change Dienst"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmts['delete_einzelschicht']->errorInfo()[2]); } return true; } else { @@ -722,37 +825,46 @@ function DeleteSchicht($db_link, $SchichtID, $Rekursiv) } -function AlleHelferSchichtenUebersicht($db_link) +function AlleHelferSchichtenUebersicht($pdo) { - $sql = "select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"); + } + $db_erg = $stmt->execute(); + + if ($stmt->errorCode() != 1){ echo "AlleHelferSchichtenUebersicht ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } return $db_erg; } -function DatenbankAufDeutsch($db_link) +function DatenbankAufDeutsch($pdo) { - $sql = "SET lc_time_names = 'de_DE'"; - $db_erg = mysqli_query($db_link, $sql); + static $sql = "SET lc_time_names = 'de_DE'"; + static $stmt = false; + if(!$stmt) $stmt = $pdo->prepare($sql); + $db_erg = $stmt->execute(); - if (! $db_erg) { + if ($stmt->errorCode() != 1){ echo "ungueltiges umstellen auf Deutsch"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } } function HelferLevel($db_link) { - $sql = "select HelferLevel,HelferLevelBeschreibung from HelferLevel"; - $db_erg = mysqli_query($db_link, $sql); - if (! $db_erg) { + static $stmt = false; + if(!$stmt) { + $stmt = $pdo->prepare("select HelferLevel,HelferLevelBeschreibung from HelferLevel"); + } + $db_erg = $stmt->execute(); + if($stmt->errorCode() != 1){ echo "Konnte HelferLevel nicht abfragen"; - die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); } return $db_erg; } diff --git a/html/Setup.php b/html/Setup.php new file mode 100644 index 0000000..b9ecfd0 --- /dev/null +++ b/html/Setup.php @@ -0,0 +1,628 @@ + + + + + +HelferDB Setup Wizard + + + + +
    +

    HelferDB Setup Wizard

    + +

    Diese Seite führt durch die Einrichtung der Helferdatenbank.

    +
    +

    Schritt 1: Logindaten für Datenbank eingeben

    +

    Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben.

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

    Schritt 2: Datenbank einrichten

    +

    Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:

    +
    sudo apt-get install mariadb
    +
    +
    + + diff --git a/html/Setup.rst b/html/Setup.rst new file mode 100644 index 0000000..7a7cdd5 --- /dev/null +++ b/html/Setup.rst @@ -0,0 +1,54 @@ + +HelferDB Setup Wizard +--------------------- + +Diese Seite führt durch die Einrichtung der Helferdatenbank. + +.. raw:: html + + + + +Schritt 1: Logindaten für Datenbank eingeben +............................................ + +Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben. + +.. raw:: html + +
    + +
    +
    +
    +
    +
    +
    + +
    + + + + +.. raw:: html + + + + +Schritt 2: Datenbank einrichten +............................... + +Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben: + +.. code:: bash + + sudo apt-get install mariadb + + +.. raw:: html + + diff --git a/html/index.php b/html/index.php index 0c96efd..8981092 100644 --- a/html/index.php +++ b/html/index.php @@ -16,14 +16,9 @@ SESSION_START(); require_once 'konfiguration.php'; require 'SQL.php'; -$db_link = mysqli_connect( - MYSQL_HOST, - MYSQL_BENUTZER, - MYSQL_KENNWORT, - MYSQL_DATENBANK -); +$pdo = ConnectDB(); -DatenbankAufDeutsch($db_link); +DatenbankAufDeutsch($pdo); require '_login.php'; diff --git a/html/konfiguration.php b/html/konfiguration.php index 4c967da..fcb2ca4 100644 --- a/html/konfiguration.php +++ b/html/konfiguration.php @@ -1,8 +1,8 @@ "SET NAMES 'utf8'", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ); From ba24f9e5addefd01827c77573a0e26f250277ee4 Mon Sep 17 00:00:00 2001 From: Florian Pesth Date: Tue, 26 Dec 2023 20:17:45 +0100 Subject: [PATCH 02/51] Correct static check for pdo statements --- html/SQL.php | 140 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 102 insertions(+), 38 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index eb4d0bd..a7dfaf0 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -24,7 +24,11 @@ function CreateHelfer($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferPass static $sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel)". " VALUES (:name,:email,:handy,:status,:bildfile,:doreport,:passwort,:helferlevel)"; static $stmt = false; - if(!$stmt) $stmt = $pdo->prepare($sql); + static $stmt_prepared = false; + if(!$stmt_prepared) { + $stmt = $pdo->prepare($sql); + $stmts_prepared = true; + } $db_erg = $stmt->execute([ "name" => $HelferName, "email" => $HelferEmail, @@ -46,7 +50,11 @@ function HelferIstVorhanden($pdo, $Email) { static $sql = "SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"; static $stmt = false; - if(!$stmt) $stmt = $pdo->prepare($sql); + static $stmt_prepared = false; + if(!$stmt_prepared) { + $stmt = $pdo->prepare($sql); + $stmt_prepared = true; + } $stmt->execute(["email" => $Email]); // TODO Test, that this still works $zeile = $stmt->fetchAll(); @@ -60,7 +68,11 @@ function HelferLogin($pdo, $HelferEmail, $HelferPasswort, $HelferStatus) // Helfer Suchen static $sql = "SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"; static $stmt = false; - if(!$stmt) $stmt = $pdo->prepare($sql); + static $stmt_prepared = false; + if(!$stmt_prepared) { + $stmt = $pdo->prepare($sql); + $stmt_prepared = true; + } $db_erg = $stmt->execute(["email" => $HelferEmail]); if ($stmt->errorCode() != 1) { echo "Login ungueltige Abfrage"; @@ -92,7 +104,11 @@ function HelferListe($pdo) static $sql = "SELECT HelferID,Name FROM Helfer"; static $stmt = false; - if(!$stmt) $stmt = $pdo->prepare($sql); + static $stmt_prepared = false; + if(!$stmt_prepared) { + $stmt = $pdo->prepare($sql); + $stmt_prepared = true; + } $db_erg = $stmt->execute(); if ($stmt->errorCode() != 1) { echo "Helferliste ungueltige Abfrage"; @@ -109,7 +125,11 @@ function Helferdaten($pdo, $HelferID) static $sql = "SELECT * FROM Helfer Where HelferID = :helferid"; static $stmt = false; if(!$stmt) $stmt = $pdo->prepare($sql); - $db_erg = $stmt->execute(["helferid" => $HelferID]); + static $stmt_prepared = false; + $db_erg stmt_prepared { + $stmt->execute(["helferid" => $HelferID]); + $stmt_prepared = true; + } if ($stmt->errorCode() != 1) { echo "Helferdaten ungueltige Abfrage
    \n"; @@ -235,8 +255,10 @@ function AlleSchichtenCount($db_link, $HelferLevel = 1) //$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel"; static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); + $stmt_prepared = true; } @@ -255,10 +277,11 @@ function AlleSchichtenCount($db_link, $HelferLevel = 1) function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1) { - static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); + $stmt_prepared = true; } @@ -317,11 +340,12 @@ function AlleSchichtenEinesHelfers($pdo, $HelferID) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); + $stmt_prepared = true; } - $db_erg = $stmt->execute(["helferid" => $HelferID]); if ($stmt->errorCode() != 1){ @@ -334,11 +358,18 @@ function AlleSchichtenEinesHelfers($pdo, $HelferID) return $db_erg; } +// FIXME function HelferLoeschen($db_link, $HelferID, $AdminID) { $HelferID = mysqli_real_escape_string($db_link, $HelferID); + static $stmt = false; + static $stmt_prepared = false; + if(!$stmt_prepared) { + $stmt = $pdo->prepare("Delete from Helfer where HelferID='$HelferID'";); + $stmt_prepared = true; + } $db_erg = Helferdaten($db_link, $HelferID); while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { @@ -374,13 +405,16 @@ function SchichtIdArrayEinesHelfers($db_link, $HelferID) // Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn static $stmt = false; - if(!$stmt) { - $stmt = $pdo->prepare("SELECT SchichtID FROM EinzelSchicht WHERE HelferID = $HelferID"); + static $stmt_prepared = false; + if(!$stmt_prepared) { + $stmt = $pdo->prepare("SELECT SchichtID FROM EinzelSchicht WHERE HelferID = :id"); + $stmt_prepared = true; } //print_r($sql); - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $stmt->execute(["id" => $HelferID]); + $schichtIDs = array(); - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_NUM)) { + while ($zeile = $stmt->fetch()) { $schichtIDs[] = $zeile[0]; } return($schichtIDs); @@ -391,8 +425,10 @@ function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID) // TODO: fix GETDATE() array to string conversion static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:id and Bis>:bis order by Von"); + $stmt_prepared = true; } //$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'2023-05-20' order by Von"; @@ -417,8 +453,10 @@ function SchichtenSummeEinesHelfers($db_link, $HelferID) //$sql = "select count Schicht.Dauer as Anzahl FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von"; static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid"); + $stmt_prepared = true; } //echo $sql; $db_erg = $stmt->execute(["helferid" => $HelferID]); @@ -444,7 +482,8 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A $AdminID = mysqli_real_escape_string($db_link, $AdminID); static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name FROM EinzelSchicht JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID @@ -453,6 +492,7 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A WHERE EinzelSchicht.HelferID = $HelferID AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) "); + $stmt_prepared = true; } //error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE); $db_erg = mysqli_query($db_link, $sql); @@ -481,8 +521,8 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A function HelferSchichtZuweisen($pdo, $HelferID, $SchichtId, $AdminID = 0) { // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert - static $stmts_prepared = false; static $stmts = false; + static $stmts_prepared = false; if(!$stmts_prepared) { $stmts['einzelschicht_exists'] = $pdo->prepare("SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID=:schichtid and HelferID=:helferid"); $stmts['new_einzelschicht'] = $pdo->prepare("INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (:schichtid,:helferid)"); @@ -523,8 +563,10 @@ function HelferVonSchichtLoeschen($pdo, $HelferID, $EinzelSchichtID, $AdminID = // Lösche Einzelschicht static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("Delete From EinzelSchicht Where EinzelSchichtID = :id"); + $stmt_prepared = true; } //echo $sql; @@ -540,8 +582,10 @@ function HelferVonSchichtLoeschen_SchichtID($pdo, $HelferID, $SchichtID, $AdminI // Lösche Einzelschicht static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;"); + $stmt_prepared = true; } //echo $sql; $db_erg = $stmt->execute([ @@ -552,15 +596,13 @@ function HelferVonSchichtLoeschen_SchichtID($pdo, $HelferID, $SchichtID, $AdminI return $db_erg; } - - - - function DetailSchicht($pdo, $InfoSchichtID) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=:id"); + $stmt_prepared = true; } //echo $sql; @@ -580,8 +622,10 @@ function DetailSchicht($pdo, $InfoSchichtID) function BeteiligteHelfer($pdo, $InfoSchichtID) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); + $stmt_prepared = true; } $db_erg = $stmt->execute(["id" => $InfoSchichtID]); @@ -598,8 +642,10 @@ function BeteiligteHelfer($pdo, $InfoSchichtID) function GetDienste($db_link) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); + $stmt_prepared = true; } $db_erg = mysqli_query($db_link, $sql); if ($stmt->errorCode() != 1){ @@ -612,8 +658,10 @@ function GetDienste($db_link) function GetDiensteChilds($pdo, $DienstID) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); + $stmt_prepared = true; } $db_erg = $stmt->execute(["id" => $DienstID]); @@ -629,11 +677,12 @@ function GetDiensteChilds($pdo, $DienstID) function ChangeDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid"); + $stmt_prepared = true; } - $db_erg = $stmt->execute([ "was" => $Was, "wo" => $Wo, @@ -653,8 +702,10 @@ function ChangeDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $Helf function NewDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); + $stmt_prepared = true; } $db_erg = $stmt->execute([ @@ -715,11 +766,12 @@ function DeleteDienst($db_link, $DienstID, $Rekursiv) function GetSchichtenEinesDienstes($db_link, $DienstID) { - //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=:id"); + $stmt_prepared = true; } $db_erg = $stmt->execute(['id' => $DienstID]); if ($stmt->errorCode() != 1){ @@ -733,8 +785,10 @@ function GetSchichtenEinesDienstes($db_link, $DienstID) function ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll where SchichtID=:id"); + $stmt_prepared = true; } $db_erg = $stmt->execute([ @@ -766,8 +820,10 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) } */ static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("INSERT INTO Schicht (DienstID, Von, Bis, Soll) values (:id,:von,:bis,:soll)"); + $stmt_prepared = true; } $db_erg = $stmt->execute([ @@ -828,8 +884,10 @@ function DeleteSchicht($pdo, $SchichtID, $Rekursiv) function AlleHelferSchichtenUebersicht($pdo) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"); + $stmt_prepared = true; } $db_erg = $stmt->execute(); @@ -845,7 +903,11 @@ function DatenbankAufDeutsch($pdo) { static $sql = "SET lc_time_names = 'de_DE'"; static $stmt = false; - if(!$stmt) $stmt = $pdo->prepare($sql); + static $stmt_prepared = false; + if(!$stmt_prepared) { + $stmt = $pdo->prepare($sql); + $stmt_prepared = true; + } $db_erg = $stmt->execute(); if ($stmt->errorCode() != 1){ @@ -858,8 +920,10 @@ function DatenbankAufDeutsch($pdo) function HelferLevel($db_link) { static $stmt = false; - if(!$stmt) { + static $stmt_prepared = false; + if(!$stmt_prepared) { $stmt = $pdo->prepare("select HelferLevel,HelferLevelBeschreibung from HelferLevel"); + $stmt_prepared = true; } $db_erg = $stmt->execute(); if($stmt->errorCode() != 1){ From c928cec07d943525fc09b9453bdc0ac6f61e4447 Mon Sep 17 00:00:00 2001 From: Florian Pesth Date: Wed, 27 Dec 2023 11:50:57 +0100 Subject: [PATCH 03/51] Move db function to singleton class --- html/SQL.php | 756 ++++++++++++++++++--------------------------------- 1 file changed, 266 insertions(+), 490 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index a7dfaf0..aff47d8 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -3,33 +3,80 @@ require_once 'konfiguration.php'; -function ConnectDB() -{ - $datasourcename = "mysql:host=" . MYSQL_HOST . ";dbname=". MYSQL_DATENBANK . ";charset=utf8mb4"; - $pdo = new PDO( - $datasourcename, - MYSQL_BENUTZER, - MYSQL_KENNWORT - ); - $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); - return $pdo; +class DB { + private static $instance = null; + private $pdo = null; + private $stmts = array(); + + private function __construct() + { + $datasourcename = "mysql:host=" . MYSQL_HOST . ";dbname=". MYSQL_DATENBANK . ";charset=utf8mb4"; + self::$pdo = new PDO( + $datasourcename, + MYSQL_BENUTZER, + MYSQL_KENNWORT + ); + self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); + } + + public static function getInstance() + { + if(self::$instance == null){ + self::$instance = new DB(); + } + return self::$instance; + } + + public function prepare($method, $sql, $variant = '') + { + self::$stmts[$method . "::" . $variant] = self::$pdo->prepare($sql); + } + + public function execute($method, $values = array(), $variant = '') + { + 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 + { + return self::$stmts[$method . "::" . $variant]->fetch($mode,$cursorOrientation,$cursorOffset); + } + + public function fetchAll($method, $variant = '') + { + return self::$stmts[$method . "::" . $variant]->fetchAll(); + } + + public function errorCode($method, $variant = '') + { + return self::$stmts[$method . "::" . $variant]->errorCode(); + } + + public function errorInfo($method, $variant = '') + { + return self::$stmts[$method . "::" . $variant]->errorInfo(); + } + + public function onErrorDie($method, $variant = '') + { + if (self::errorCode($method, $variant) != 1) { + echo $method . "::" . $variant . " ungueltige Abfrage
    \n"; + echo "sql:" . $stmts[$method . "::" . $variant]->queryString . "
    \n"; + die('Ungueltige Abfrage: ' . self::errorInfo($method, $variant)[2]); + } + } } -function CreateHelfer($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) +function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) { // Neuen Helfer anlegen $HelferPasswort = "€" . $HelferPasswort . "ß"; $PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT); - static $sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel)". - " VALUES (:name,:email,:handy,:status,:bildfile,:doreport,:passwort,:helferlevel)"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmts_prepared = true; - } - $db_erg = $stmt->execute([ + $db = DB::getInstance(); + $db->prepare(__METHOD__,"INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel)". + " VALUES (:name,:email,:handy,:status,:bildfile,:doreport,:passwort,:helferlevel)"); + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, @@ -40,43 +87,32 @@ function CreateHelfer($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferPass "helferlevel" => $HelferLevel ]); - $stmt->fetch(); error_log(date('Y-m-d H:i') . " CreateHelfer: $HelferName angelegt mit Email $HelferEmail Handy $HelferHandy \n", 3, LOGFILE); return $db_erg; } // testet fuer urllogin, ob Helfer bereits existiert -function HelferIstVorhanden($pdo, $Email) +function HelferIstVorhanden($Email) { - static $sql = "SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmt_prepared = true; - } - $stmt->execute(["email" => $Email]); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"); + $db->execute(__METHOD__,["email" => $Email]); // TODO Test, that this still works - $zeile = $stmt->fetchAll(); + $zeile = $db->fetchAll(__METHOD__); return $zeile['Anzahl']; } //TODO: pruefen, ob Helfer bereits eingeloggt -function HelferLogin($pdo, $HelferEmail, $HelferPasswort, $HelferStatus) +function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) { //echo "Test
    "; // Helfer Suchen - static $sql = "SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(["email" => $HelferEmail]); - if ($stmt->errorCode() != 1) { + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"); + $db_erg = $db->execute(__METHOD__,["email" => $HelferEmail]); + if ($db->errorCode(__METHOD__) != 1) { echo "Login ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); + die('Ungueltige Abfrage: ' . $stmt->errorInfo(__METHOD__)[2]); } while ($zeile = $stmt->fetchAll()) { $HelferPasswort = "€" . $HelferPasswort . "ß"; @@ -101,42 +137,20 @@ function HelferLogin($pdo, $HelferEmail, $HelferPasswort, $HelferStatus) //TODO: HelferLevel function HelferListe($pdo) { - - static $sql = "SELECT HelferID,Name FROM Helfer"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(); - if ($stmt->errorCode() != 1) { - echo "Helferliste ungueltige Abfrage"; - die('Unueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT HelferID,Name FROM Helfer"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); return $db_erg; } function Helferdaten($pdo, $HelferID) { - - static $sql = "SELECT * FROM Helfer Where HelferID = :helferid"; - static $stmt = false; - if(!$stmt) $stmt = $pdo->prepare($sql); - static $stmt_prepared = false; - $db_erg stmt_prepared { - $stmt->execute(["helferid" => $HelferID]); - $stmt_prepared = true; - } - - if ($stmt->errorCode() != 1) { - echo "Helferdaten ungueltige Abfrage
    \n"; - echo "sql:$sql
    \n"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT * FROM Helfer Where HelferID = :helferid"); + $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db->onErrorDie(__METHOD__); return $db_erg; } @@ -144,34 +158,31 @@ function Helferdaten($pdo, $HelferID) function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) { - - static $stmts_prepared = false; - static $stmts = array(); - if(!$stmts_prepared) { - $stmts['password_empty'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy Where HelferId=:id"); - $stmts['password_empty_admin'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Admin=:admin Where HelferId=:id"); - $stmts['password_given'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort Where HelferId=:id"); - $stmts['password_given_admin'] = $pdo->prepare("UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort,Admin=:admin Where HelferId=:id"); - $stmts_prepared = true; - } + $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,Admin=:admin Where HelferId=:id",'password_empty_admin'); + $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort Where HelferId=:id",'password_given'); + $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort,Admin=:admin Where HelferId=:id",'password_given_admin'); if ($HelferNewPasswort == "") { //$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID; if ($HelferIsAdmin == -1) { - $db_erg = $stmts['password_empty']->execute([ + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "id" => $HelferID - ]); + ],'password_empty'); + $db->onErrorDie(__METHOD__,'password_empty'); } else { - $db_erg = $stmts['password_empty_admin']->execute([ + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "admin" => $HelferIsAdmin, "id" => $HelferID - ]); + ],'password_empty_admin'); + $db->onErrorDie(__METHOD__,'password_empty_admin'); } echo "
  • Helferdaten geändert
  • "; if ($AdminID != 0) { @@ -183,22 +194,24 @@ function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $Helf $HelferNewPasswort = "€" . $HelferNewPasswort . "ß"; $PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT); if ($HelferIsAdmin == -1) { - $db_erg = $stmts['password_given']->execute([ + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "passwort" => $PasswortHash, "id" => $HelferID - ]); + ],'password_given'); + $db->onErrorDie(__METHOD__, 'password_given'); } else { - $db_erg = $stmts['password_given_admin']->execute([ + $db_erg = $db->execute(__METHOD__,[ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "passwort" => $PasswortHash, "admin" => $HelferIsAdmin, "id" => $HelferID - ]); + ],'password_given_admin'); + $db->onErrorDie(__METHOD__, 'password_given_admin'); } //echo $sql; echo "
  • Passwort geändert
  • "; @@ -209,152 +222,84 @@ function HelferdatenAendern($pdo, $HelferName, $HelferEmail, $HelferHandy, $Helf } } - foreach ($stmts as $stmt) { - if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { - echo "HelferdatenAendern ungueltiges Statement"; - echo $stmt->queryString; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - } - return $db_erg; } - - - -function AlleSchichten($pdo, $Sort, $HelferLevel = 1) +function AlleSchichten($Sort, $HelferLevel = 1) { - static $stmts_prepared = false; - static $stmts = array(); - if(!$stmts_prepared) { - $stmts['sort_by_von'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Von"); - $stmts['sort_by_was_von'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Was,Von"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Von",'sort_by_von'); + $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Was,Von",'sort_by_was_von'); if ($Sort == '1') { - $db_erg = $stmts['sort_by_von']->execute(["helferlevel" => $HelferLevel]); + $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel],'sort_by_von'); + $db->onErrorDie(__METHOD__,'sort_by_von'); } else { - $db_erg = $stmts['sort_by_was_von']->execute(["helferlevel" => $HelferLevel]); - } - - foreach ($stmts as $stmt) { - if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { - echo "AlleSchichten ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel],'sort_by_was_von'); + $db->onErrorDie(__METHOD__,'sort_by_was_von'); } return $db_erg; } -function AlleSchichtenCount($db_link, $HelferLevel = 1) +function AlleSchichtenCount($HelferLevel = 1) { //$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); - $stmt_prepared = true; - } - - - $db_erg = $stmt->execute(["helferlevel" => $HelferLevel]); - - if ($stmt->errorCode() != 1){ - echo "AlleSchichtenCount ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - - $zeile = $stmt->fetchAll(); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); + $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel]); + $db->onErrorDie(__METHOD__); + $zeile = $db->fetchAll(__METHOD__); return $zeile['Anzahl']; } function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); - $stmt_prepared = true; - } - - - $db_erg = $stmt->execute(["helferlevel" => $Helferlevel]); - - if ($stmt->errorCode() != 1){ - echo "AlleSchichtenCount ungueltige Abfrage"; - echo $Sort; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - - $zeile = $stmt->fetchAll(); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); + $db_erg = $db->execute(__METHOD__,["helferlevel" => $Helferlevel]); + $db->onErrorDie(__METHOD__); + $zeile = $db->fetchAll(__METHOD__); return $zeile['Anzahl']; } -function AlleSchichtenImZeitbereich($pdo, $Von, $Bis, $HelferLevel = 1) +function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) { // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden - static $stmts_prepared = false; - static $stmts = array(); - if(!$stmts_prepared) { - $stmts['helferlevel_not_set'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID order by Was,Von"); - $stmts['helferlevel_set'] = $pdo->prepare("select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.HelferLevel=:helferlevel order by Was,Von"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID order by Was,Von",'helferlevel_not_set'); + $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.HelferLevel=:helferlevel order by Was,Von",'helferlevel_set'); if ($HelferLevel == -1) { - $db_erg = $stmts['helferlevel_not_set']->execute([ + $db_erg = $db->execute(__METHOD__,[ "von" => $Von, "bis" => $Bis - ]); + ],'helferlevel_not_set'); + $db->onErrorDie(__METHOD__,'helferlevel_not_set'); } else { - $db_erg = $stmts['helferlevel_set']->execute([ + $db_erg = $db->execute(__METHOD__,[ "von" => $Von, "bis" => $Bis, "helferlevel" => $HelferLevel - ]); - } - - foreach ($stmts as $stmt) { - if (!is_null($stmt->errorCode()) && ($stmt->errorCode() != 1) ) { - echo "AlleSchichtenImZeitbereich ungueltige Abfrage
    "; - echo $stmt->queryString; - die('
    Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + ],'helferlevel_set'); + $db->onErrorDie(__METHOD__,'helferlevel_set'); } return $db_erg; } -function AlleSchichtenEinesHelfers($pdo, $HelferID) +function AlleSchichtenEinesHelfers($HelferID) { - - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); - $stmt_prepared = true; - } - - $db_erg = $stmt->execute(["helferid" => $HelferID]); - - if ($stmt->errorCode() != 1){ - echo "AlleSchichtenEinesHelfers ungueltige Abfrage"; - echo $HelferID; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - - + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); + $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db->onErrorDie(__METHOD__); return $db_erg; } @@ -367,7 +312,7 @@ function HelferLoeschen($db_link, $HelferID, $AdminID) static $stmt = false; static $stmt_prepared = false; if(!$stmt_prepared) { - $stmt = $pdo->prepare("Delete from Helfer where HelferID='$HelferID'";); + $stmt = $pdo->prepare("Delete from Helfer where HelferID='$HelferID'"); $stmt_prepared = true; } @@ -398,53 +343,33 @@ function HelferLoeschen($db_link, $HelferID, $AdminID) } } -function SchichtIdArrayEinesHelfers($db_link, $HelferID) +function SchichtIdArrayEinesHelfers($HelferID) { - - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - // Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT SchichtID FROM EinzelSchicht WHERE HelferID = :id"); - $stmt_prepared = true; - } - //print_r($sql); - $db_erg = $stmt->execute(["id" => $HelferID]); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT SchichtID FROM EinzelSchicht WHERE HelferID = :id"); + $db_erg = $db->execute(__METHOD__,["id" => $HelferID]); $schichtIDs = array(); - while ($zeile = $stmt->fetch()) { + while ($zeile = $db->fetch(__METHOD__)) { $schichtIDs[] = $zeile[0]; } return($schichtIDs); } -function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID) +function AlleSchichtenEinesHelfersVonJetzt($HelferID) { - // TODO: fix GETDATE() array to string conversion - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:id and Bis>:bis order by Von"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:id and Bis>:bis order by Von"); //$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'2023-05-20' order by Von"; - //echo $sql; - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ "id" => $HelferID, "bis" => GETDATE() ]); - - if($stmt->errorCode() != 1){ - echo "AlleSchichtenEinesHelfers ungueltige Abfrage"; - echo $HelferID; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - + $db->onErrorDie(__METHOD__); return $db_erg; } @@ -452,48 +377,28 @@ function SchichtenSummeEinesHelfers($db_link, $HelferID) { //$sql = "select count Schicht.Dauer as Anzahl FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid"); //echo $sql; - $db_erg = $stmt->execute(["helferid" => $HelferID]); - - if ($stmt->errorCode() != 1){ - echo "SchichtenSummeEinesHelfers ungueltige Abfrage"; - echo $HelferID; - echo $stmt->queryString; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - - + $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db->onErrorDie(__METHOD__); return $db_erg; } + +// FIXME function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) { + $db = DB::getInstance(); - $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); - $EinzelSchichtId = mysqli_real_escape_string($db_link, $EinzelSchichtId); - $Aktion = mysqli_real_escape_string($db_link, $Aktion); - $AdminID = mysqli_real_escape_string($db_link, $AdminID); - - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name - FROM EinzelSchicht - JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID - JOIN Dienst ON Schicht.DienstID = Dienst.DienstID - JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID - WHERE EinzelSchicht.HelferID = $HelferID - AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) - "); - $stmt_prepared = true; - } + $db->prepare(__METHOD__,"SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name + FROM EinzelSchicht + JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID + JOIN Dienst ON Schicht.DienstID = Dienst.DienstID + JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID + WHERE EinzelSchicht.HelferID = $HelferID + AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) + "); //error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE); $db_erg = mysqli_query($db_link, $sql); @@ -518,77 +423,62 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A } } -function HelferSchichtZuweisen($pdo, $HelferID, $SchichtId, $AdminID = 0) +function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) { // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert - static $stmts = false; - static $stmts_prepared = false; - if(!$stmts_prepared) { - $stmts['einzelschicht_exists'] = $pdo->prepare("SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID=:schichtid and HelferID=:helferid"); - $stmts['new_einzelschicht'] = $pdo->prepare("INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (:schichtid,:helferid)"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID=:schichtid and HelferID=:helferid",'einzelschicht_exists'); + $db->prepare(__METHOD__,"INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (:schichtid,:helferid)",'new_einzelschicht'); - $db_erg = $stmts['einzelschicht_exists']->execute([ + $db_erg = $db->execute(__METHOD__,[ "schichtid" => $SchichtId, "helferid" => $HelferID - ]); + ],'einzelschicht_exists'); - if($stmt['einzelschicht_exists']->fetch()){ + if($db->fetch(__METHOD__,'einzelschicht_exists')){ echo "HelferSchichtZuweisen: Schicht existiert bereits!"; return false; } // Helfer Schicht zuweisen //echo ''; - $db_erg = $stmts['new_einzelschicht']->execute([ + $db_erg = $db->execute(__METHOD__,[ "schichtid" => $SchichtId, "helferid" => $HelferID - ]); + ],'new_einzelschicht'); + + $db->onErrorDie(__METHOD__,'new_einzelschicht'); - if ($stmts['new_einzelschicht']->errorCode() != 1){ - echo "HelferSchichtZuweisen ungueltige Abfrage"; - echo $HelferID; - die('Ungueltige Abfrage: ' . $stmts['new_einzelschicht']->errorInfo()[2]); - } LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID); return $db_erg; } -function HelferVonSchichtLoeschen($pdo, $HelferID, $EinzelSchichtID, $AdminID = 0) +function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann LogSchichtEingabe($db_link, $HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID); // Lösche Einzelschicht - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("Delete From EinzelSchicht Where EinzelSchichtID = :id"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"Delete From EinzelSchicht Where EinzelSchichtID = :id"); //echo $sql; - $db_erg = $stmt->execute(["id" => $EinzelSchichtID]); + $db_erg = $db->execute(__METHOD__,["id" => $EinzelSchichtID]); return $db_erg; } -function HelferVonSchichtLoeschen_SchichtID($pdo, $HelferID, $SchichtID, $AdminID = 0) +function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann LogSchichtEingabe($db_link, $HelferID, $SchichtID, -1, "entfernt", $AdminID); // Lösche Einzelschicht - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;"); //echo $sql; - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ "schichtid" => $SchichtID, "helferid" => $HelferID ]); @@ -596,94 +486,53 @@ function HelferVonSchichtLoeschen_SchichtID($pdo, $HelferID, $SchichtID, $AdminI return $db_erg; } -function DetailSchicht($pdo, $InfoSchichtID) +function DetailSchicht($InfoSchichtID) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=:id"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=:id"); //echo $sql; - $db_erg = $stmt->execute(["id" => $InfoSchichtID]); + $db_erg = $db->execute(__METHOD__,["id" => $InfoSchichtID]); - if ($stmt->errorCode() != 1){ - echo "Details ungueltige Abfrage "; - echo $InfoSchichtID; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__); - $zeile = $stmt->fetchAll(); + $zeile = $db->fetchAll(__METHOD__); return $zeile; } - -function BeteiligteHelfer($pdo, $InfoSchichtID) +function BeteiligteHelfer($InfoSchichtID) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); - $stmt_prepared = true; - } - - $db_erg = $stmt->execute(["id" => $InfoSchichtID]); - - if ($stmt->errorCode() != 1){ - echo "Details ungueltige Abfrage "; - echo $InfoSchichtID; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } - + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); + $db_erg = $db->execute(__METHOD__,["id" => $InfoSchichtID]); + $db->onErrorDie(__METHOD__); return $db_erg; } -function GetDienste($db_link) +function GetDienste() { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); - $stmt_prepared = true; - } - $db_erg = mysqli_query($db_link, $sql); - if ($stmt->errorCode() != 1){ - echo "GetDienste ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); return $db_erg; } -function GetDiensteChilds($pdo, $DienstID) +function GetDiensteChilds($DienstID) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); - $stmt_prepared = true; - } - - $db_erg = $stmt->execute(["id" => $DienstID]); - - if ($stmt->errorCode() != 1){ - echo "GetDienste ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); + $db_erg = $db->execute(__METHOD__,["id" => $DienstID]); + $db->onErrorDie(__METHOD__); return $db_erg; } - -function ChangeDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid"); - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ "was" => $Was, "wo" => $Wo, "info" => $Info, @@ -692,23 +541,14 @@ function ChangeDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $Helf "dienstid" => $DienstID ]); - if ($stmt->errorCode() != 1){ - echo "Fehler Change Dienst"; - echo $sql; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__); } -function NewDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +function NewDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); - $stmt_prepared = true; - } - - $db_erg = $stmt->execute([ + $db = DB::getInstance(); + $db->prepare(__METHOD__,"INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); + $db_erg = $db->execute(__METHOD__,[ "was" => $Was, "wo" => $Wo, "info" => $Info, @@ -717,46 +557,35 @@ function NewDienst($pdo, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferL "helferlevel" => $HelferLevel ]); - $db_erg = mysqli_query($db_link, $sql); - if ($stmt->errorCode() != 1){ + if ($db->errorCode(__METHOD__) != 1){ echo "Fehler New Dienst"; // echo $sql; - $err = $stmt->errorInfo()[2]; - die('Ungueltige Abfrage: ' . $err); + $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); } 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); } } -function DeleteDienst($db_link, $DienstID, $Rekursiv) +function DeleteDienst($DienstID, $Rekursiv) { if ($Rekursiv) { return false; } else { // Pruefen ob noch Schichten eingetragen sind - static $stmts_prepared = false; - static $stmts = array(); - if(!$stmts_prepared) { - $stmts['check_dienst'] = $pdo->prepare("SELECT SchichtID FROM Schicht where DienstID=:id"); - $stmts['delete_dienst'] = $pdo->prepare("DELETE FROM Dienst where DienstID=:id"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT SchichtID FROM Schicht where DienstID=:id",'check_dienst'); + $db->prepare(__METHOD__,"DELETE FROM Dienst where DienstID=:id",'delete_dienst'); - $db_erg = $stmts['check_dienst']->execute(['id' => $DienstID]); + $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'check_dienst'); - if ($stmts['check_dienst']->errorCode() != 1){ - echo "Fehler DeleteDienst"; - die('Ungueltige Abfrage: ' . $stmts['check_dienst']->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__,'check_dienst'); - if ($stmts['check_dienst']->fetch()) { + if ($db->fetch(__METHOD__,'check_dienst')) { // Eintrag löschen - $db_erg = $stmts['delete_dienst']->execute(['id' => $DienstID]); - if ($stmts['delete_dienst']->errorCode() != 1){ - echo "Fehler DeleteDienst"; - die('Ungueltige Abfrage: ' . $stmts['delete_dienst']->errorInfo()[2]); - } + $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'delete_dienst'); + $db->onErrorDie(__METHOD__,'delete_dienst'); return true; } else { return false; @@ -764,47 +593,32 @@ function DeleteDienst($db_link, $DienstID, $Rekursiv) } } -function GetSchichtenEinesDienstes($db_link, $DienstID) +function GetSchichtenEinesDienstes($DienstID) { //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=:id"); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(['id' => $DienstID]); - if ($stmt->errorCode() != 1){ - echo "GetSchichtenEinesDienstes ungueltige Abfrage"; - echo $sql; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=:id"); + $db_erg = $db->execute(__METHOD__,['id' => $DienstID]); + $db->onErrorDie(__METHOD__); return $db_erg; } -function ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll) +function ChangeSchicht($SchichtID, $Von, $Bis, $Soll) { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll where SchichtID=:id"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll where SchichtID=:id"); - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ 'von' => $Von, 'bis' => $Bis, 'soll' => $Soll, 'id' => $SchichtID ]); - if ($stmt->errorCode() != 1){ - echo "Fehler ChangeSchicht"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__); } -function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) +function NewSchicht($DienstID, $Von, $Bis, $Soll) { /* @@ -819,25 +633,21 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) return Null; } */ - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("INSERT INTO Schicht (DienstID, Von, Bis, Soll) values (:id,:von,:bis,:soll)"); - $stmt_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"INSERT INTO Schicht (DienstID, Von, Bis, Soll) values (:id,:von,:bis,:soll)"); - $db_erg = $stmt->execute([ + $db_erg = $db->execute(__METHOD__,[ 'id' => $DienstID, 'von' => $Von, 'bis' => $Bis, 'soll' => $Soll ]); - if ($stmt->errorCode() != 1){ + if ($db->errorCode(__METHOD__) != 1){ echo "Keine Schicht erstellt"; //echo $sql; - error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); - $err = $stmt->errorInfo()[2]; + error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); + $err = $stmt->errorInfo(__METHOD__)[2]; die('Ungueltige Abfrage: ' . $err); } else { //TODO: DienstID aufloesen @@ -845,34 +655,24 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll) } } -function DeleteSchicht($pdo, $SchichtID, $Rekursiv) +function DeleteSchicht($SchichtID, $Rekursiv) { - static $stmts_prepared = false; - static $stmts = false; - if(!$stmts_prepared) { - $stmts['check_einzelschicht'] = $pdo->prepare("SELECT Name FROM EinzelSchicht,Helfer where SchichtID=:id and Helfer.HelferID=EinzelSchicht.HelferID"); - $stmts['delete_einzelschicht'] = $pdo->prepare("DELETE FROM Schicht where SchichtID=:id"); - $stmts_prepared = true; - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT Name FROM EinzelSchicht,Helfer where SchichtID=:id and Helfer.HelferID=EinzelSchicht.HelferID",'check_einzelschicht'); + $db->prepare(__METHOD__,"DELETE FROM Schicht where SchichtID=:id",'delete_einzelschicht'); if ($Rekursiv) { return false; } else { // Pruefen ob noch Helfer auf der Schicht eingetragen sind - $db_erg = $stmts['check_einzelschicht']->execute(["id" => $SchichtID ]); + $db_erg = $db->execute(__METHOD__,["id" => $SchichtID ],'check_einzelschicht'); - if ($stmts['check_einzelschicht']->errorCode() != 1){ - echo "Fehler Change Dienst"; - die('Ungueltige Abfrage: ' . $stmts['check_einzelschicht']->errorInfo()[2]); - } + $db->onErrorDie(__METHOD__,'check_einzelschicht'); - if (!$stmts['check_einzelschicht']->fetch()) { + if (!$db->fetch(__METHOD__,'check_einzelschicht')) { // Eintrag löschen - $db_erg = $stmts['delete_einzelschicht']->execute(["id" => $SchichtID ]); - if ($stmts['delete_einzelschicht']->errorCode() != 1) { - echo "Fehler Change Dienst"; - die('Ungueltige Abfrage: ' . $stmts['delete_einzelschicht']->errorInfo()[2]); - } + $db_erg = $db->execute(__METHOD__,["id" => $SchichtID ],'delete_einzelschicht'); + $db->onErrorDie(__METHOD__,'delete_einzelschicht'); return true; } else { return false; @@ -881,55 +681,31 @@ function DeleteSchicht($pdo, $SchichtID, $Rekursiv) } -function AlleHelferSchichtenUebersicht($pdo) +function AlleHelferSchichtenUebersicht() { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(); - - if ($stmt->errorCode() != 1){ - echo "AlleHelferSchichtenUebersicht ungueltige Abfrage"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); return $db_erg; } -function DatenbankAufDeutsch($pdo) +function DatenbankAufDeutsch() { - static $sql = "SET lc_time_names = 'de_DE'"; - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare($sql); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(); - - if ($stmt->errorCode() != 1){ - echo "ungueltiges umstellen auf Deutsch"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SET lc_time_names = 'de_DE'"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); } -function HelferLevel($db_link) +function HelferLevel() { - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("select HelferLevel,HelferLevelBeschreibung from HelferLevel"); - $stmt_prepared = true; - } - $db_erg = $stmt->execute(); - if($stmt->errorCode() != 1){ - echo "Konnte HelferLevel nicht abfragen"; - die('Ungueltige Abfrage: ' . $stmt->errorInfo()[2]); - } + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select HelferLevel,HelferLevelBeschreibung from HelferLevel"); + $db_erg = $stmt->execute(__METHOD__); + $db->onErrorDie(__METHOD__); return $db_erg; } // TODO: als Array zurueckgeben (CreateHelfer anpassen) @@ -952,7 +728,7 @@ function HelferLevel($db_link) // return $results; //} - +//FIXME function DebugAusgabeDbErgebnis($db_erg) { // Ausgabe auf Browser Console From 906efd44a5a7ff78a0abd6c6071986ea4cace151 Mon Sep 17 00:00:00 2001 From: Florian Pesth Date: Wed, 27 Dec 2023 19:29:44 +0100 Subject: [PATCH 04/51] Rework setup wizard --- html/Setup.php | 636 +----------------------------------------- html/Setup.rst | 54 ---- html/Wizard.php | 92 ++++++ html/setupWizard.json | 33 +++ 4 files changed, 134 insertions(+), 681 deletions(-) delete mode 100644 html/Setup.rst create mode 100644 html/Wizard.php create mode 100644 html/setupWizard.json diff --git a/html/Setup.php b/html/Setup.php index b9ecfd0..f346a38 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -1,628 +1,10 @@ - - - - - -HelferDB Setup Wizard - - - - -
    -

    HelferDB Setup Wizard

    - -

    Diese Seite führt durch die Einrichtung der Helferdatenbank.

    -

    Schritt 1: Logindaten für Datenbank eingeben

    -

    Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben.

    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -

    Schritt 2: Datenbank einrichten

    -

    Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:

    -
    sudo apt-get install mariadb
    -
    -
    - - + +require_once("Wizard.php"); + +$wizard = new Wizard(); + +$wizard->renderPHP(); + +?> + diff --git a/html/Setup.rst b/html/Setup.rst deleted file mode 100644 index 7a7cdd5..0000000 --- a/html/Setup.rst +++ /dev/null @@ -1,54 +0,0 @@ - -HelferDB Setup Wizard ---------------------- - -Diese Seite führt durch die Einrichtung der Helferdatenbank. - -.. raw:: html - - - - -Schritt 1: Logindaten für Datenbank eingeben -............................................ - -Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben. - -.. raw:: html - -
    - -
    -
    -
    -
    -
    -
    - -
    - - - - -.. raw:: html - - - - -Schritt 2: Datenbank einrichten -............................... - -Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben: - -.. code:: bash - - sudo apt-get install mariadb - - -.. raw:: html - - diff --git a/html/Wizard.php b/html/Wizard.php new file mode 100644 index 0000000..26e9c7a --- /dev/null +++ b/html/Wizard.php @@ -0,0 +1,92 @@ +page = $step['page']; + } + if(isset($step['redirects'])){ + $this->redirects = $step['redirects']; + } + } + public function setCurrentStep(){ + if(!empty($this->redirects)){ + foreach($this->redirects as $redirect){ + if(isset($redirect['==']) && isset($redirect['id'])){ + foreach($redirect['=='] as $key => $value){ + if(isset($_GET[$key]) && $_GET[$key] == $value){ + $_GET['step'] = $redirect['id']; + } + } + } + if(isset($redirect['!=']) && isset($redirect['id'])){ + foreach($redirect['!='] as $key => $value){ + if(isset($_GET[$key]) && $_GET[$key] != $value){ + $_GET['step'] = $redirect['id']; + } + } + } + if(isset($redirect['>']) && isset($redirect['id'])){ + foreach($redirect['>'] as $key => $value){ + if(isset($_GET[$key]) && $_GET[$key] > $value){ + $_GET['step'] = $redirect['id']; + } + } + } + if(isset($redirect['<']) && isset($redirect['id'])){ + foreach($redirect['<'] as $key => $value){ + if(isset($_GET[$key]) && $_GET[$key] < $value){ + $_GET['step'] = $redirect['id']; + } + } + } + if(isset($redirect['>=']) && isset($redirect['id'])){ + foreach($redirect['>='] as $key => $value){ + if(isset($_GET[$key]) && $_GET[$key] >= $value){ + $_GET['step'] = $redirect['id']; + } + } + } + if(isset($redirect['<=']) && isset($redirect['id'])){ + foreach($redirect['<='] as $key => $value){ + if(isset($_GET[$key]) && $_GET[$key] <= $value){ + $_GET['step'] = $redirect['id']; + } + } + } + } + } + } +} + +class Wizard { + private string $header = ""; + private string $firststep = ""; + private array $steps = array(); + private string $footer = ""; + public function __construct($json_file = 'setupWizard.json'){ + $stepsArray = json_decode(file_get_contents($json_file), true); + $this->header = $stepsArray['header']; + $this->firststep = $stepsArray['firststep']; + foreach($stepsArray['steps'] as $step){ + $this->steps[$step['id']] = new WizardStep($step); + } + $this->footer = $stepsArray['footer']; + } + public function renderPHP(){ + if(isset($_GET['stepfrom'])){ + $this->steps[$_GET['stepfrom']]->setCurrentStep(); + } + echo $this->header; + if(isset($_GET['step'])){ + echo $this->steps[$_GET['step']]->page; + } + else{ + echo $this->steps[$this->firststep]->page; + } + echo $this->footer; + } +} +?> diff --git a/html/setupWizard.json b/html/setupWizard.json new file mode 100644 index 0000000..e47a17d --- /dev/null +++ b/html/setupWizard.json @@ -0,0 +1,33 @@ +{ + "header": "\n\n\n\n\nBengelsystem Setup Wizard<\/title>\n<head><\/head>\n<body><h1>Bengelsystem Setup Wizard<\/h1><p>Diese Seite führt durch die Einrichtung der Helferdatenbank.<\/p>", + "firststep": "selectdatabase", + "steps": [ + { + "id": "selectdatabase", + "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><p><form action=\"Setup.php\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"sqlite\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form><\/p>", + "redirects": [ + { + "==": {"databasetype": "SQLite"}, + "id": "createtables" + }, + { + "!=": {"databasetype": "SQLite"}, + "id": "enterlogindata" + } + ] + }, + { + "id": "createtables", + "page": "<h2>Tabellen einrichten</h2>" + }, + { + "id": "enterlogindata", + "page": "<h2>Logindaten f\u00FCr die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zun\u00E4chst die Logindaten f\u00FCr die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte k\u00F6nnen unver\u00E4ndert bleiben.<\/p>\r\n<p><form action=\"Setup.php\" >\r\n <input type=\"hidden\" name=\"step\" value=\"setupdatabase\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/form><\/p>\r\n" + }, + { + "id": "setupdatabase", + "page": "<h2>Datenbank einrichten<\/h2>\r\n<p>Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install mariadb<\/code><\/pre>" + } + ], + "footer": "</body></html>" +} From 7f9d9a06dfcfc6cc271b6c9d991add6525e2868f Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 29 Dec 2023 16:59:58 +0100 Subject: [PATCH 05/51] Add warning and code functionality --- html/Setup.php | 20 ++++++++++ html/Wizard.php | 89 ++++++++++++++++++++++++++++++++++--------- html/setupWizard.json | 20 +++++++++- 3 files changed, 108 insertions(+), 21 deletions(-) diff --git a/html/Setup.php b/html/Setup.php index f346a38..4d9636b 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -4,6 +4,26 @@ require_once("Wizard.php"); $wizard = new Wizard(); +$wizard->addCode('selectdatabase',function($storedvariables){ + $selectdatabase['databasetype'] = $_POST['databasetype']; + return $selectdatabase; +}); + +$wizard->addCode('enterlogindata',function($storedvariables){ + $logindata['host'] = $_POST['host']; + $logindata['user'] = $_POST['user']; + $logindata['password'] = $_POST['password']; + $logindata['dbname'] = $_POST['dbname']; + $conf_file = fopen("../etc/konfiguration.php", "w"); + fwrite($conf_file, "<?php\n"); + fwrite($conf_file, "define( 'MYSQL_HOST', '".$logindata['host']."' );\n"); + fwrite($conf_file, "define( 'MYSQL_BENUTZER', '".$logindata['user']."' );\n"); + fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$logindata['password']."' );\n"); + fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$logindata['dbname']."' );\n"); + fwrite($conf_file, "?>"); + return $logindata; +}); + $wizard->renderPHP(); ?> diff --git a/html/Wizard.php b/html/Wizard.php index 26e9c7a..a559b5f 100644 --- a/html/Wizard.php +++ b/html/Wizard.php @@ -3,6 +3,8 @@ class WizardStep { public string $page = ""; public array $redirects = array(); + public string $warning = ""; + public $code = null; public function __construct($step){ if(isset($step['page'])){ $this->page = $step['page']; @@ -16,49 +18,76 @@ class WizardStep { foreach($this->redirects as $redirect){ if(isset($redirect['==']) && isset($redirect['id'])){ foreach($redirect['=='] as $key => $value){ - if(isset($_GET[$key]) && $_GET[$key] == $value){ - $_GET['step'] = $redirect['id']; + if(isset($_POST[$key]) && $_POST[$key] == $value){ + $_POST['step'] = $redirect['id']; + if(isset($redirect['warning'])){ + $this->warning = $redirect['warning']; + } + return; } } } if(isset($redirect['!=']) && isset($redirect['id'])){ foreach($redirect['!='] as $key => $value){ - if(isset($_GET[$key]) && $_GET[$key] != $value){ - $_GET['step'] = $redirect['id']; + if(isset($_POST[$key]) && $_POST[$key] != $value){ + $_POST['step'] = $redirect['id']; + if(isset($redirect['warning'])){ + $this->warning = $redirect['warning']; + } + return; } } } if(isset($redirect['>']) && isset($redirect['id'])){ foreach($redirect['>'] as $key => $value){ - if(isset($_GET[$key]) && $_GET[$key] > $value){ - $_GET['step'] = $redirect['id']; + if(isset($_POST[$key]) && $_POST[$key] > $value){ + $_POST['step'] = $redirect['id']; + if(isset($redirect['warning'])){ + $this->warning = $redirect['warning']; + } + return; } } } if(isset($redirect['<']) && isset($redirect['id'])){ foreach($redirect['<'] as $key => $value){ - if(isset($_GET[$key]) && $_GET[$key] < $value){ - $_GET['step'] = $redirect['id']; + if(isset($_POST[$key]) && $_POST[$key] < $value){ + $_POST['step'] = $redirect['id']; + if(isset($redirect['warning'])){ + $this->warning = $redirect['warning']; + } + return; } } } if(isset($redirect['>=']) && isset($redirect['id'])){ foreach($redirect['>='] as $key => $value){ - if(isset($_GET[$key]) && $_GET[$key] >= $value){ - $_GET['step'] = $redirect['id']; + if(isset($_POST[$key]) && $_POST[$key] >= $value){ + $_POST['step'] = $redirect['id']; + if(isset($redirect['warning'])){ + $this->warning = $redirect['warning']; + } + return; } } } if(isset($redirect['<=']) && isset($redirect['id'])){ foreach($redirect['<='] as $key => $value){ - if(isset($_GET[$key]) && $_GET[$key] <= $value){ - $_GET['step'] = $redirect['id']; + if(isset($_POST[$key]) && $_POST[$key] <= $value){ + $_POST['step'] = $redirect['id']; + if(isset($redirect['warning'])){ + $this->warning = $redirect['warning']; + } + return; } } } } } } + public function setCode(callable $function){ + $this->code = $function; + } } class Wizard { @@ -66,6 +95,7 @@ class Wizard { private string $firststep = ""; private array $steps = array(); private string $footer = ""; + private array $storedvariables = array(); public function __construct($json_file = 'setupWizard.json'){ $stepsArray = json_decode(file_get_contents($json_file), true); $this->header = $stepsArray['header']; @@ -74,19 +104,40 @@ class Wizard { $this->steps[$step['id']] = new WizardStep($step); } $this->footer = $stepsArray['footer']; + if(isset($_POST['storedvariables'])){ + $this->storedvariables = json_decode($_POST['storedvariables'],JSON_FORCE_OBJECT); + } } public function renderPHP(){ - if(isset($_GET['stepfrom'])){ - $this->steps[$_GET['stepfrom']]->setCurrentStep(); - } echo $this->header; - if(isset($_GET['step'])){ - echo $this->steps[$_GET['step']]->page; + if(isset($_POST['stepfrom'])){ + $this->steps[$_POST['stepfrom']]->setCurrentStep(); + if(isset($_POST['step']) && ($_POST['step'] != $_POST['stepfrom'])){ + if(!is_null($this->steps[$_POST['stepfrom']]->code)){ + $this->storedvariables[$_POST['stepfrom']] = call_user_func($this->steps[$_POST['stepfrom']]->code, $this->storedvariables); + } + } } - else{ - echo $this->steps[$this->firststep]->page; + if(!isset($_POST['step'])){ + $_POST['step'] = $this->firststep; } + // If warning not set this does not add anything to the page: + echo $this->steps[$_POST['step']]->warning; + $pagedom = new DOMDocument(); + $pagedom->loadHTML("\xEF\xBB\xBF".$this->steps[$_POST['step']]->page); + $forms = $pagedom->getElementsByTagName('form'); + foreach($forms as $form){ + $input = $pagedom->createElement('input'); + $input->setAttribute('type','hidden'); + $input->setAttribute('name','storedvariables'); + $input->setAttribute('value',json_encode($this->storedvariables,JSON_FORCE_OBJECT)); + $form->appendChild($input); + } + echo $pagedom->saveHTML(); echo $this->footer; } + public function addCode($stepid, $function){ + $this->steps[$stepid]->setCode($function); + } } ?> diff --git a/html/setupWizard.json b/html/setupWizard.json index e47a17d..d98acf2 100644 --- a/html/setupWizard.json +++ b/html/setupWizard.json @@ -4,7 +4,7 @@ "steps": [ { "id": "selectdatabase", - "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><p><form action=\"Setup.php\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"sqlite\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form><\/p>", + "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"sqlite\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form><\/p>", "redirects": [ { "==": {"databasetype": "SQLite"}, @@ -22,7 +22,23 @@ }, { "id": "enterlogindata", - "page": "<h2>Logindaten f\u00FCr die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zun\u00E4chst die Logindaten f\u00FCr die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte k\u00F6nnen unver\u00E4ndert bleiben.<\/p>\r\n<p><form action=\"Setup.php\" >\r\n <input type=\"hidden\" name=\"step\" value=\"setupdatabase\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/form><\/p>\r\n" + "page": "<h2>Logindaten für die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zun\u00E4chst die Logindaten f\u00FCr die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte k\u00F6nnen unver\u00E4ndert bleiben.<\/p>\r\n<p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Logindaten eingeben<\/legend>\r\n <input type=\"hidden\" name=\"step\" value=\"setupdatabase\" \/>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"enterlogindata\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <label for=\"dbname\">Datenbankname<\/label><br \/>\r\n <input type=\"text\" id=\"dbname\" name=\"dbname\" value=\"helferdb\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/fieldset>\r\n<\/form><\/p>\r\n", + "redirects": [ + { + "==": {"password": ""}, + "id": "enterlogindata", + "warning": "<p style=\"color:red\"><i>Bitte Passwort eingeben!<\/i><\/p>" + }, + { + "==": { + "host":"", + "user":"", + "dbname":"" + }, + "id": "enterlogindata", + "warning": "<p style=\"color:red\"><i>Bitte alle Felder eingeben!<\/i><\/p>" + } + ] }, { "id": "setupdatabase", From 897d745bc6f6e0d95f77410cd03144ad74f2fb9a Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 29 Dec 2023 21:23:47 +0100 Subject: [PATCH 06/51] Add variable substitution --- .gitignore | 2 ++ html/Wizard.php | 25 +++++++++++++++++++++++-- html/setupWizard.json | 18 +++++++++++++++++- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a136337..4a9640d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ *.pdf +*.swp +etc diff --git a/html/Wizard.php b/html/Wizard.php index a559b5f..d3ca44f 100644 --- a/html/Wizard.php +++ b/html/Wizard.php @@ -1,7 +1,7 @@ <?php class WizardStep { - public string $page = ""; + public $page = ""; public array $redirects = array(); public string $warning = ""; public $code = null; @@ -124,7 +124,28 @@ class Wizard { // If warning not set this does not add anything to the page: echo $this->steps[$_POST['step']]->warning; $pagedom = new DOMDocument(); - $pagedom->loadHTML("\xEF\xBB\xBF".$this->steps[$_POST['step']]->page); + $pageval = $this->steps[$_POST['step']]->page; + if(is_array($pageval)){ + $page = "\xEF\xBB\xBF"; + foreach($pageval as $pagepart){ + foreach($pagepart as $element => $content){ + if($element == 'text'){ + $page.=$content; + } + elseif($element == 'variable'){ + $tmpcontent = $this->storedvariables; + foreach(explode('/',$content) as $pathpart){ + $tmpcontent = $tmpcontent[$pathpart]; + } + $page.=$tmpcontent; + } + } + } + } + else{ + $page = "\xEF\xBB\xBF".$pageval; + } + $pagedom->loadHTML($page); $forms = $pagedom->getElementsByTagName('form'); foreach($forms as $form){ $input = $pagedom->createElement('input'); diff --git a/html/setupWizard.json b/html/setupWizard.json index d98acf2..cbcfe3e 100644 --- a/html/setupWizard.json +++ b/html/setupWizard.json @@ -42,7 +42,23 @@ }, { "id": "setupdatabase", - "page": "<h2>Datenbank einrichten<\/h2>\r\n<p>Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install mariadb<\/code><\/pre>" + "page": [ + {"text": "<h2>Datenbanksoftware installieren und starten<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<p>Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install mariadb-server<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><p>Zum Starten der Datenbank sollte jetzt folgendes Kommando ausgeführt werden:<\/p><pre><code>sudo systemctl start mariadb<\/code><\/pre><p>Wenn die Datenbank automatisch bei Start des Computers gestartet werden soll, bitte folgendes eingeben<\/p><pre><code>sudo systemctl enable mariadb<\/pre><\/code><h2>In der Datenbank anmelden und den Benutzer anlegen</h2><p>Jetzt sollte der Datenbankbenutzer und die Datenbank angelegt werden. Dazu müssen wir uns einmal als <i>root</i> Benutzer von der Datenbank selbst (nicht zu verwechseln mit dem root Benutzer vom System) anmelden:<\/p><pre><code>sudo mysql -u root -p<\/code><\/pre><p>Es wird hier nach dem Datenbankpasswort gefragt, aber wenn es nicht gesetzt ist kann man es auch einfach leer lassen.<\/p><p>Um die Datenbank anzulegen bitte in den Datenbankprompt folgendes Kommando eingeben:</p><pre><code>CREATE DATABASE '"}, + {"variable": "enterlogindata\/dbname"}, + {"text": "';<\/code><\/pre><p>Wir können jetzt den Datenbankbenutzer anlegen:<\/p><pre><code>CREATE USER '"}, + {"variable": "enterlogindata\/user"}, + {"text": "'@'"}, + {"variable": "enterlogindata\/host"}, + {"text":"' IDENTIFIED BY '"}, + {"variable": "enterlogindata\/password"}, + {"text":"';<\/code><\/pre><p>und ihm alle Rechte auf der Datenbank geben:<\/p><pre><code>GRANT ALL PRIVILEGES ON '"}, + {"variable": "enterlogindata\/dbname"}, + {"text":"'.* TO '"}, + {"variable": "enterlogindata\/user"}, + {"text": "'@'"}, + {"variable": "enterlogindata\/host"}, + {"text": "';<\/code><\/pre><p>Wir müssen außerdem die Änderung anwenden:</p><pre><code>FLUSH PRIVILEGES;<\/code><\/pre><pre><code>QUIT;<\/code><\/pre>"} + ] } ], "footer": "</body></html>" From e3e5b27b98b16e803f949750dfb58eecd89b9500 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sat, 30 Dec 2023 20:09:06 +0100 Subject: [PATCH 07/51] Fix some database stuff (WIP, broken) --- html/SQL.php | 22 ++++++++----- html/Setup.php | 72 +++++++++++++++++++++++++++++++++++++++--- html/konfiguration.php | 2 +- html/setupWizard.json | 24 ++++++++++---- 4 files changed, 100 insertions(+), 20 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index aff47d8..4d1cf10 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -5,18 +5,17 @@ require_once 'konfiguration.php'; class DB { private static $instance = null; - private $pdo = null; - private $stmts = array(); + private static $pdo = null; + private static $stmts = array(); private function __construct() { - $datasourcename = "mysql:host=" . MYSQL_HOST . ";dbname=". MYSQL_DATENBANK . ";charset=utf8mb4"; self::$pdo = new PDO( - $datasourcename, + MYSQL_DSN, MYSQL_BENUTZER, - MYSQL_KENNWORT + MYSQL_KENNWORT, + array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING) ); - self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); } public static function getInstance() @@ -46,7 +45,14 @@ class DB { { return self::$stmts[$method . "::" . $variant]->fetchAll(); } - + public function pdoErrorCode() + { + return self::$pdo->errorCode(); + } + public function pdoErrorInfo() + { + return self::$pdo->errorInfo(); + } public function errorCode($method, $variant = '') { return self::$stmts[$method . "::" . $variant]->errorCode(); @@ -59,7 +65,7 @@ class DB { public function onErrorDie($method, $variant = '') { - if (self::errorCode($method, $variant) != 1) { + if (!is_null(self::errorCode($method, $variant)) && self::errorCode($method, $variant) != '1') { echo $method . "::" . $variant . " ungueltige Abfrage<br>\n"; echo "sql:" . $stmts[$method . "::" . $variant]->queryString . "<br>\n"; die('Ungueltige Abfrage: ' . self::errorInfo($method, $variant)[2]); diff --git a/html/Setup.php b/html/Setup.php index 4d9636b..7cfe029 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -14,14 +14,76 @@ $wizard->addCode('enterlogindata',function($storedvariables){ $logindata['user'] = $_POST['user']; $logindata['password'] = $_POST['password']; $logindata['dbname'] = $_POST['dbname']; + return $logindata; +}); + +$wizard->addCode('createdatabase',function($storedvariables){ $conf_file = fopen("../etc/konfiguration.php", "w"); fwrite($conf_file, "<?php\n"); - fwrite($conf_file, "define( 'MYSQL_HOST', '".$logindata['host']."' );\n"); - fwrite($conf_file, "define( 'MYSQL_BENUTZER', '".$logindata['user']."' );\n"); - fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$logindata['password']."' );\n"); - fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$logindata['dbname']."' );\n"); + if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){ + fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("../etc") . "/helferdb.sql' );\n"); + fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n"); + fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n"); + fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n"); + } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){ + fwrite($conf_file, "define( 'MYSQL_DSN', 'mysql:host=" . $storedvariables['enterlogindata']['host'] . ";dbname=". $storedvariables['enterlogindata']['dbname'] . ";charset=utf8mb4' );\n"); + fwrite($conf_file, "define( 'MYSQL_HOST', '".$storedvariables['enterlogindata']['host']."' );\n"); + fwrite($conf_file, "define( 'MYSQL_BENUTZER', '".$storedvariables['enterlogindata']['user']."' );\n"); + fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$storedvariables['enterlogindata']['password']."' );\n"); + fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$storedvariables['enterlogindata']['dbname']."' );\n"); + } fwrite($conf_file, "?>"); - return $logindata; + // Test configuration: + require_once("SQL.php"); + try{ + $db = DB::getInstance(); + } + catch( PDOException $exception ) { + echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"".$exception->getMessage( )."\"</p>"; + } + if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '1'){ + echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; + $_POST['step'] = 'createdatabase'; + } else { + echo "<p>Successfully connected to database!</p>"; + } +}); + +$wizard->addCode('createdatabasetables',function($storedvariables){ + require_once("SQL.php"); + try{ + $db = DB::getInstance(); + } + catch( PDOException $exception ) { + echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"".$exception->getMessage( )."\"</p>"; + } + if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '1'){ + echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; + $_POST['step'] = 'createdatabase'; + } else { + echo "<p>Successfully connected to database!</p>"; + } + $sql = file_get_contents("../etc/helferdb_schema_test.sql"); + $db->prepare(__METHOD__,$sql); + if(!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '1'){ + echo "<pre>"; + var_dump(__METHOD__); + var_dump($db->errorCode(__METHOD__)); + var_dump($db->errorInfo(__METHOD__)); + echo "</pre>"; + echo "<p>Fehler: \"".$db->errorInfo(__METHOD__)[2]."\"</p>"; + $_POST['step'] = 'createdatabasetables'; + } + $db->execute(__METHOD__); + if(!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '1'){ + echo "<pre>"; + var_dump(__METHOD__); + var_dump($db->errorCode(__METHOD__)); + var_dump($db->errorInfo(__METHOD__)); + echo "</pre>"; + echo "<p>Fehler: \"".$db->errorInfo(__METHOD__)[2]."\"</p>"; + $_POST['step'] = 'createdatabasetables'; + } }); $wizard->renderPHP(); diff --git a/html/konfiguration.php b/html/konfiguration.php index fcb2ca4..e5d846a 100644 --- a/html/konfiguration.php +++ b/html/konfiguration.php @@ -1,7 +1,7 @@ <?php // datenbank-defines extern -require_once '../etc/helferdb_konfiguration.php'; +require_once('../etc/konfiguration.php'); // die folgenden Zeilen ohne Kommentarzeichen nach ../etc/helferdb_konfiguration.php // kopieren und an die eigene Datenbank anpassen // define( 'MYSQL_HOST', 'localhost' ); diff --git a/html/setupWizard.json b/html/setupWizard.json index cbcfe3e..6383095 100644 --- a/html/setupWizard.json +++ b/html/setupWizard.json @@ -8,7 +8,7 @@ "redirects": [ { "==": {"databasetype": "SQLite"}, - "id": "createtables" + "id": "setupsqlite" }, { "!=": {"databasetype": "SQLite"}, @@ -17,12 +17,12 @@ ] }, { - "id": "createtables", - "page": "<h2>Tabellen einrichten</h2>" + "id": "setupsqlite", + "page": "<h2>Datenbanksoftware installieren<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<p>Wir müssen das sqlite Modul für PHP installieren, bitte dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install php-sqlite3<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbanksoftware ist installiert\" \/><input type=\"hidden\" name=\"step\" value=\"createdatabase\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"setupsqlite\"\/><\/form>" }, { "id": "enterlogindata", - "page": "<h2>Logindaten für die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zun\u00E4chst die Logindaten f\u00FCr die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte k\u00F6nnen unver\u00E4ndert bleiben.<\/p>\r\n<p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Logindaten eingeben<\/legend>\r\n <input type=\"hidden\" name=\"step\" value=\"setupdatabase\" \/>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"enterlogindata\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <label for=\"dbname\">Datenbankname<\/label><br \/>\r\n <input type=\"text\" id=\"dbname\" name=\"dbname\" value=\"helferdb\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/fieldset>\r\n<\/form><\/p>\r\n", + "page": "<h2>Logindaten für die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben.<\/p>\r\n<p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Logindaten eingeben<\/legend>\r\n <input type=\"hidden\" name=\"step\" value=\"setupmariadb\" \/>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"enterlogindata\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <label for=\"dbname\">Datenbankname<\/label><br \/>\r\n <input type=\"text\" id=\"dbname\" name=\"dbname\" value=\"helferdb\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/fieldset>\r\n<\/form><\/p>\r\n", "redirects": [ { "==": {"password": ""}, @@ -41,11 +41,11 @@ ] }, { - "id": "setupdatabase", + "id": "setupmariadb", "page": [ {"text": "<h2>Datenbanksoftware installieren und starten<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<p>Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install mariadb-server<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><p>Zum Starten der Datenbank sollte jetzt folgendes Kommando ausgeführt werden:<\/p><pre><code>sudo systemctl start mariadb<\/code><\/pre><p>Wenn die Datenbank automatisch bei Start des Computers gestartet werden soll, bitte folgendes eingeben<\/p><pre><code>sudo systemctl enable mariadb<\/pre><\/code><h2>In der Datenbank anmelden und den Benutzer anlegen</h2><p>Jetzt sollte der Datenbankbenutzer und die Datenbank angelegt werden. Dazu müssen wir uns einmal als <i>root</i> Benutzer von der Datenbank selbst (nicht zu verwechseln mit dem root Benutzer vom System) anmelden:<\/p><pre><code>sudo mysql -u root -p<\/code><\/pre><p>Es wird hier nach dem Datenbankpasswort gefragt, aber wenn es nicht gesetzt ist kann man es auch einfach leer lassen.<\/p><p>Um die Datenbank anzulegen bitte in den Datenbankprompt folgendes Kommando eingeben:</p><pre><code>CREATE DATABASE '"}, {"variable": "enterlogindata\/dbname"}, - {"text": "';<\/code><\/pre><p>Wir können jetzt den Datenbankbenutzer anlegen:<\/p><pre><code>CREATE USER '"}, + {"text": "';' CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_german2_ci';<\/code><\/pre><p>Wir können jetzt den Datenbankbenutzer anlegen:<\/p><pre><code>CREATE USER '"}, {"variable": "enterlogindata\/user"}, {"text": "'@'"}, {"variable": "enterlogindata\/host"}, @@ -59,6 +59,18 @@ {"variable": "enterlogindata\/host"}, {"text": "';<\/code><\/pre><p>Wir müssen außerdem die Änderung anwenden:</p><pre><code>FLUSH PRIVILEGES;<\/code><\/pre><pre><code>QUIT;<\/code><\/pre>"} ] + }, + { + "id": "createdatabase", + "page": "<h2>Datenbank einrichten<\/h2><p>Wir haben jetzt alle Informationen um die Datenbankeinstellungen zu speichern. Dazu wird die Konfiguration geschrieben und anschließend ein Verbindungsversuch unternommen.<\/p><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbankkonfiguration schreiben\" \/><input type=\"hidden\" name=\"step\" value=\"createdatabasetables\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"createdatabase\"\/><\/form>" + }, + { + "id": "createdatabasetables", + "page": "<h2>Tabellen für Datenbank einrichten<\/h2><p>Wir können jetzt alle Tabellen in der Datenbank anlegen.<\/p><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbanktabellen anlegen\" \/><input type=\"hidden\" name=\"step\" value=\"createservices\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"createdatabasetables\"\/><\/form>" + }, + { + "id": "createservices", + "page": "<h2>Dienste in Datenbank anlegen<\/h2>" } ], "footer": "</body></html>" From 9603bd59bc87bd4f4df038cd89397189f02f90ac Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sat, 3 Feb 2024 19:49:21 +0100 Subject: [PATCH 08/51] Fix database setup --- helferdb_structure_mariadb.sql | 54 ++++++++++++++++++++++++++++++++++ helferdb_structure_sqlite.sql | 54 ++++++++++++++++++++++++++++++++++ html/SQL.php | 20 +++++++++++-- html/Setup.php | 38 ++++++++++-------------- html/Wizard.php | 4 +++ html/konfiguration.php | 2 +- html/setupWizard.json | 18 ++++++------ 7 files changed, 155 insertions(+), 35 deletions(-) create mode 100644 helferdb_structure_mariadb.sql create mode 100644 helferdb_structure_sqlite.sql diff --git a/helferdb_structure_mariadb.sql b/helferdb_structure_mariadb.sql new file mode 100644 index 0000000..b95af3a --- /dev/null +++ b/helferdb_structure_mariadb.sql @@ -0,0 +1,54 @@ +DROP TABLE IF EXISTS `Dienst`; +CREATE TABLE `Dienst` ( + `DienstID` int(11) NOT NULL AUTO_INCREMENT, + `Was` text NOT NULL, + `Wo` text NOT NULL, + `Info` text NOT NULL, + `Leiter` int(11) NOT NULL, + `ElternDienstID` int(11) DEFAULT NULL, + `HelferLevel` int(11) DEFAULT NULL, + PRIMARY KEY (`DienstID`) +); +DROP TABLE IF EXISTS `EinzelSchicht`; +CREATE TABLE `EinzelSchicht` ( + `EinzelSchichtID` int(11) NOT NULL AUTO_INCREMENT, + `SchichtID` int(11) NOT NULL, + `HelferID` int(11) NOT NULL, + PRIMARY KEY (`EinzelSchichtID`) +); +DROP TABLE IF EXISTS `Helfer`; +CREATE TABLE `Helfer` ( + `HelferId` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(50) NOT NULL, + `Status` int(11) NOT NULL, + `Email` varchar(50) NOT NULL, + `Handy` varchar(50) NOT NULL, + `BildFile` varchar(200) NOT NULL, + `DoReport` tinyint(1) NOT NULL, + `Admin` int(11) DEFAULT 0, + `Passwort` varchar(200) DEFAULT NULL, + `HelferLevel` int(11) DEFAULT NULL, + PRIMARY KEY (`HelferId`), + UNIQUE KEY `unique_index_email` (`Email`) +); +DROP TABLE IF EXISTS `HelferLevel`; +CREATE TABLE `HelferLevel` ( + `HelferLevel` int(11) DEFAULT NULL, + `HelferLevelBeschreibung` varchar(255) DEFAULT NULL +); +DROP TABLE IF EXISTS `Schicht`; +CREATE TABLE `Schicht` ( + `SchichtID` int(11) NOT NULL AUTO_INCREMENT, + `DienstID` int(11) NOT NULL, + `Von` datetime NOT NULL, + `Bis` datetime NOT NULL, + `Soll` int(11) NOT NULL, + `Dauer` time DEFAULT NULL, + PRIMARY KEY (`SchichtID`) +); +DROP TABLE IF EXISTS `Status`; +CREATE TABLE `Status` ( + `StatusID` int(11) NOT NULL AUTO_INCREMENT, + `Text` text NOT NULL, + PRIMARY KEY (`StatusID`) +); diff --git a/helferdb_structure_sqlite.sql b/helferdb_structure_sqlite.sql new file mode 100644 index 0000000..89de12b --- /dev/null +++ b/helferdb_structure_sqlite.sql @@ -0,0 +1,54 @@ +DROP TABLE IF EXISTS `Dienst`; +CREATE TABLE `Dienst` ( + `DienstID` int(11) NOT NULL, + `Was` text NOT NULL, + `Wo` text NOT NULL, + `Info` text NOT NULL, + `Leiter` int(11) NOT NULL, + `ElternDienstID` int(11) DEFAULT NULL, + `HelferLevel` int(11) DEFAULT NULL, + PRIMARY KEY (`DienstID`) +); +DROP TABLE IF EXISTS `EinzelSchicht`; +CREATE TABLE `EinzelSchicht` ( + `EinzelSchichtID` int(11) NOT NULL, + `SchichtID` int(11) NOT NULL, + `HelferID` int(11) NOT NULL, + PRIMARY KEY (`EinzelSchichtID`) +); +DROP TABLE IF EXISTS `Helfer`; +CREATE TABLE `Helfer` ( + `HelferId` int(11) NOT NULL, + `Name` varchar(50) NOT NULL, + `Status` int(11) NOT NULL, + `Email` varchar(50) NOT NULL, + `Handy` varchar(50) NOT NULL, + `BildFile` varchar(200) NOT NULL, + `DoReport` tinyint(1) NOT NULL, + `Admin` int(11) DEFAULT 0, + `Passwort` varchar(200) DEFAULT NULL, + `HelferLevel` int(11) DEFAULT NULL, + PRIMARY KEY (`HelferId`), + UNIQUE('Email') +); +DROP TABLE IF EXISTS `HelferLevel`; +CREATE TABLE `HelferLevel` ( + `HelferLevel` int(11) DEFAULT NULL, + `HelferLevelBeschreibung` varchar(255) DEFAULT NULL +); +DROP TABLE IF EXISTS `Schicht`; +CREATE TABLE `Schicht` ( + `SchichtID` int(11) NOT NULL, + `DienstID` int(11) NOT NULL, + `Von` datetime NOT NULL, + `Bis` datetime NOT NULL, + `Soll` int(11) NOT NULL, + `Dauer` time DEFAULT NULL, + PRIMARY KEY (`SchichtID`) +); +DROP TABLE IF EXISTS `Status`; +CREATE TABLE `Status` ( + `StatusID` int(11) NOT NULL, + `Text` text NOT NULL, + PRIMARY KEY (`StatusID`) +); diff --git a/html/SQL.php b/html/SQL.php index 4d1cf10..09dbbd1 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -28,7 +28,7 @@ class DB { public function prepare($method, $sql, $variant = '') { - self::$stmts[$method . "::" . $variant] = self::$pdo->prepare($sql); + return self::$stmts[$method . "::" . $variant] = self::$pdo->prepare($sql); } public function execute($method, $values = array(), $variant = '') @@ -40,7 +40,23 @@ class DB { { return self::$stmts[$method . "::" . $variant]->fetch($mode,$cursorOrientation,$cursorOffset); } - + public function executeScript($method, $filename, $variant = '') + { + $sqlFromFile = file_get_contents($filename); + $sqlStatements = explode(";", $sqlFromFile); + $statementcounter = 0; + foreach($sqlStatements as $sqlStatement){ + if(self::prepare($method, $sqlStatement.";", $variant) == false){ + return array(); + }; + $retval[$statementcounter] = self::execute($method,array(),$variant); + if(!is_null(self::pdoErrorCode()) && self::pdoErrorCode() != '00000'){ + return $retval; + } + $statementcounter++; + } + return $retval; + } public function fetchAll($method, $variant = '') { return self::$stmts[$method . "::" . $variant]->fetchAll(); diff --git a/html/Setup.php b/html/Setup.php index 7cfe029..1c91b7c 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -18,10 +18,10 @@ $wizard->addCode('enterlogindata',function($storedvariables){ }); $wizard->addCode('createdatabase',function($storedvariables){ - $conf_file = fopen("../etc/konfiguration.php", "w"); + $conf_file = fopen("../bengelsystem_konfiguration.php", "w"); fwrite($conf_file, "<?php\n"); if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){ - fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("../etc") . "/helferdb.sql' );\n"); + fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("..") . "/helferdb.sqlite3' );\n"); fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n"); fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n"); @@ -45,7 +45,7 @@ $wizard->addCode('createdatabase',function($storedvariables){ echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; $_POST['step'] = 'createdatabase'; } else { - echo "<p>Successfully connected to database!</p>"; + echo "<p>Erfolgreich mit der Datenbank verbunden!</p>"; } }); @@ -61,29 +61,21 @@ $wizard->addCode('createdatabasetables',function($storedvariables){ echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; $_POST['step'] = 'createdatabase'; } else { - echo "<p>Successfully connected to database!</p>"; + echo "<p>Erfolgreich mit der Datenbank verbunden!</p>"; } - $sql = file_get_contents("../etc/helferdb_schema_test.sql"); - $db->prepare(__METHOD__,$sql); - if(!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '1'){ - echo "<pre>"; - var_dump(__METHOD__); - var_dump($db->errorCode(__METHOD__)); - var_dump($db->errorInfo(__METHOD__)); - echo "</pre>"; - echo "<p>Fehler: \"".$db->errorInfo(__METHOD__)[2]."\"</p>"; - $_POST['step'] = 'createdatabasetables'; + if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){ + $dbscript = "../helferdb_structure_sqlite.sql"; + } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){ + $dbscript = "../helferdb_structure_mariadb.sql"; } - $db->execute(__METHOD__); - if(!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '1'){ - echo "<pre>"; - var_dump(__METHOD__); - var_dump($db->errorCode(__METHOD__)); - var_dump($db->errorInfo(__METHOD__)); - echo "</pre>"; - echo "<p>Fehler: \"".$db->errorInfo(__METHOD__)[2]."\"</p>"; - $_POST['step'] = 'createdatabasetables'; + $statementsReturnvalues = $db->executeScript(__METHOD__, $dbscript); + if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000'){ + echo "<p>Fehler ".$db->pdoErrorCode()." bei Statement Nr. ".sizeof($statementsReturnvalues)." beim Versuch Tabellen anzulegen: \"".$db->pdoErrorInfo()[2]."\"</p>"; + $_POST['step'] = 'createdatabase'; + } else { + echo "<p>Datenbanktabellen wurden erfolgreich angelegt!</p>"; } + }); $wizard->renderPHP(); diff --git a/html/Wizard.php b/html/Wizard.php index d3ca44f..97aa9de 100644 --- a/html/Wizard.php +++ b/html/Wizard.php @@ -145,7 +145,11 @@ class Wizard { else{ $page = "\xEF\xBB\xBF".$pageval; } + libxml_use_internal_errors(true); $pagedom->loadHTML($page); + foreach (libxml_get_errors() as $error) { + echo "<p>Error when parsing html for step \"".$_POST['step']."\":".$error->line." ".$error->column." ".$error->message."</p>"; + } $forms = $pagedom->getElementsByTagName('form'); foreach($forms as $form){ $input = $pagedom->createElement('input'); diff --git a/html/konfiguration.php b/html/konfiguration.php index e5d846a..e526158 100644 --- a/html/konfiguration.php +++ b/html/konfiguration.php @@ -1,7 +1,7 @@ <?php // datenbank-defines extern -require_once('../etc/konfiguration.php'); +require_once('../bengelsystem_konfiguration.php'); // die folgenden Zeilen ohne Kommentarzeichen nach ../etc/helferdb_konfiguration.php // kopieren und an die eigene Datenbank anpassen // define( 'MYSQL_HOST', 'localhost' ); diff --git a/html/setupWizard.json b/html/setupWizard.json index 6383095..dd1cacb 100644 --- a/html/setupWizard.json +++ b/html/setupWizard.json @@ -4,7 +4,7 @@ "steps": [ { "id": "selectdatabase", - "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"sqlite\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form><\/p>", + "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"mariadb\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"mariadb\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form>", "redirects": [ { "==": {"databasetype": "SQLite"}, @@ -18,11 +18,11 @@ }, { "id": "setupsqlite", - "page": "<h2>Datenbanksoftware installieren<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<p>Wir müssen das sqlite Modul für PHP installieren, bitte dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install php-sqlite3<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbanksoftware ist installiert\" \/><input type=\"hidden\" name=\"step\" value=\"createdatabase\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"setupsqlite\"\/><\/form>" + "page": "<h2>Datenbanksoftware installieren<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<\/p><p>Wir müssen das sqlite Modul für PHP installieren, bitte dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install php-sqlite3<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbanksoftware ist installiert\" \/><input type=\"hidden\" name=\"step\" value=\"createdatabase\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"setupsqlite\"\/><\/form>" }, { "id": "enterlogindata", - "page": "<h2>Logindaten für die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden und die anderen beiden Werte können unverändert bleiben.<\/p>\r\n<p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Logindaten eingeben<\/legend>\r\n <input type=\"hidden\" name=\"step\" value=\"setupmariadb\" \/>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"enterlogindata\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <label for=\"dbname\">Datenbankname<\/label><br \/>\r\n <input type=\"text\" id=\"dbname\" name=\"dbname\" value=\"helferdb\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/fieldset>\r\n<\/form><\/p>\r\n", + "page": "<h2>Logindaten für die Datenbank eingeben<\/h2>\r\n<p>Bitte hier zunächst die Logindaten für die Datenbank eingeben. Es muss in der Regel nur ein Passwort vergeben werden (möglichst Sonderzeichen wie \" oder ; vermeiden oder escapen - da die Datenbankverbindung ohnehin nur lokal sein sollte und durch die Firewall geblockt sollte die Sicherheit von diesem Passwort nicht kritisch sein) und die anderen Werte können unverändert bleiben.<\/p>\r\n<form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Logindaten eingeben<\/legend>\r\n <input type=\"hidden\" name=\"step\" value=\"setupmariadb\" \/>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"enterlogindata\" \/>\r\n <label for=\"host\">Hostname<\/label><br \/>\r\n <input type=\"text\" id=\"host\" name=\"host\" value=\"localhost\" \/><br \/>\r\n <label for=\"user\">Benutzername<\/label><br \/>\r\n <input type=\"text\" id=\"user\" name=\"user\" value=\"helferdb\" \/><br \/>\r\n <label for=\"password\">Passwort<\/label><br \/>\r\n <input type=\"password\" id=\"password\" name=\"password\" \/><br \/>\r\n <label for=\"dbname\">Datenbankname<\/label><br \/>\r\n <input type=\"text\" id=\"dbname\" name=\"dbname\" value=\"helferdb\" \/><br \/>\r\n <input type=\"submit\" value=\"Datenbank einrichten\" \/>\r\n<\/fieldset>\r\n<\/form>\r\n", "redirects": [ { "==": {"password": ""}, @@ -43,21 +43,21 @@ { "id": "setupmariadb", "page": [ - {"text": "<h2>Datenbanksoftware installieren und starten<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<p>Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install mariadb-server<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><p>Zum Starten der Datenbank sollte jetzt folgendes Kommando ausgeführt werden:<\/p><pre><code>sudo systemctl start mariadb<\/code><\/pre><p>Wenn die Datenbank automatisch bei Start des Computers gestartet werden soll, bitte folgendes eingeben<\/p><pre><code>sudo systemctl enable mariadb<\/pre><\/code><h2>In der Datenbank anmelden und den Benutzer anlegen</h2><p>Jetzt sollte der Datenbankbenutzer und die Datenbank angelegt werden. Dazu müssen wir uns einmal als <i>root</i> Benutzer von der Datenbank selbst (nicht zu verwechseln mit dem root Benutzer vom System) anmelden:<\/p><pre><code>sudo mysql -u root -p<\/code><\/pre><p>Es wird hier nach dem Datenbankpasswort gefragt, aber wenn es nicht gesetzt ist kann man es auch einfach leer lassen.<\/p><p>Um die Datenbank anzulegen bitte in den Datenbankprompt folgendes Kommando eingeben:</p><pre><code>CREATE DATABASE '"}, + {"text": "<h2>Datenbanksoftware installieren und starten<\/h2><p>Hier müssen ein paar Sachen per Hand in einem Terminal gemacht werden, die der Setupwizard vernünftigerweise nicht selbst machen sollte da sie Adminrechte (root) erfordern.\r\n<\/p><p>Bitte zunächst mariadb einrichten (oder mysql) und dazu folgendes in der Shell (z.b. bash) eingeben:<\/p>\r\n<pre><code>sudo apt-get install mariadb-server<\/code><\/pre><p>Wenn eine Fehlermeldung kommt, dass man nicht in der sudoers Datei ist (oder so ähnlich), vorher folgendes eingeben um zum Adminbenutzer zu wechseln (wenn man zum Adminbenutzer gewechselt ist kann man das vorausgestellte sudo bei allen Kommandos weglassen, es schadet aber auch nicht):<\/p><pre><code>su -<\/code><\/pre><p>Zum Starten der Datenbank sollte jetzt folgendes Kommando ausgeführt werden:<\/p><pre><code>sudo systemctl start mariadb<\/code><\/pre><p>Wenn die Datenbank automatisch bei Start des Computers gestartet werden soll, bitte folgendes eingeben<\/p><pre><code>sudo systemctl enable mariadb<\/pre><\/code><h2>In der Datenbank anmelden und den Benutzer anlegen</h2><p>Jetzt sollte der Datenbankbenutzer und die Datenbank angelegt werden. Dazu müssen wir uns einmal als <i>root</i> Benutzer von der Datenbank selbst (nicht zu verwechseln mit dem root Benutzer vom System) anmelden:<\/p><pre><code>sudo mysql -u root -p<\/code><\/pre><p>Es wird hier nach dem Datenbankpasswort gefragt, aber wenn es nicht gesetzt ist kann man es auch einfach leer lassen.<\/p><p>Um die Datenbank anzulegen bitte in den Datenbankprompt folgendes Kommando eingeben:<\/p><pre><code>CREATE DATABASE "}, {"variable": "enterlogindata\/dbname"}, - {"text": "';' CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_german2_ci';<\/code><\/pre><p>Wir können jetzt den Datenbankbenutzer anlegen:<\/p><pre><code>CREATE USER '"}, + {"text": " CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_german2_ci';<\/code><\/pre><p>Wir können jetzt den Datenbankbenutzer anlegen:<\/p><pre><code>CREATE USER '"}, {"variable": "enterlogindata\/user"}, {"text": "'@'"}, {"variable": "enterlogindata\/host"}, - {"text":"' IDENTIFIED BY '"}, + {"text":"' IDENTIFIED BY \""}, {"variable": "enterlogindata\/password"}, - {"text":"';<\/code><\/pre><p>und ihm alle Rechte auf der Datenbank geben:<\/p><pre><code>GRANT ALL PRIVILEGES ON '"}, + {"text":"\";<\/code><\/pre><p>und ihm alle Rechte auf der Datenbank geben:<\/p><pre><code>GRANT ALL PRIVILEGES ON "}, {"variable": "enterlogindata\/dbname"}, - {"text":"'.* TO '"}, + {"text":".* TO '"}, {"variable": "enterlogindata\/user"}, {"text": "'@'"}, {"variable": "enterlogindata\/host"}, - {"text": "';<\/code><\/pre><p>Wir müssen außerdem die Änderung anwenden:</p><pre><code>FLUSH PRIVILEGES;<\/code><\/pre><pre><code>QUIT;<\/code><\/pre>"} + {"text": "';<\/code><\/pre><p>Wir müssen außerdem die Änderung anwenden:<\/p><pre><code>FLUSH PRIVILEGES;<\/code><\/pre><pre><code>QUIT;<\/code><\/pre><form action=\"Setup.php\" method=\"post\"><input type=\"submit\" value=\"Datenbank ist angelegt\" \/><input type=\"hidden\" name=\"step\" value=\"createdatabase\"\/><input type=\"hidden\" name=\"stepfrom\" value=\"setupmariadb\"\/><\/form>"} ] }, { From 5b890b46971aad3bcaddcf6695b28f18aa64203f Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sat, 3 Feb 2024 22:50:35 +0100 Subject: [PATCH 09/51] Add base info (WIP) --- html/Setup.php | 27 +++++++++++++++++++++++++++ html/setupWizard.json | 8 ++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/html/Setup.php b/html/Setup.php index 1c91b7c..3fd5939 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -4,6 +4,20 @@ require_once("Wizard.php"); $wizard = new Wizard(); +$wizard->addCode('basedata',function($storedvariables){ + $basedata['eventname'] = $_POST['eventname']; + $basedata['startdate'] = $_POST['startdate']; + $basedata['duration'] = $_POST['duration']; + $basedata['timezone'] = $_POST['timezone']; + $basedata['locale'] = $_POST['locale']; + $basedata['logfile'] = $_POST['logfile']; + $basedata['infourl'] = $_POST['infourl']; + $basedata['urlprefix'] = $_POST['urlprefix']; + $basedata['secretkey'] = $_POST['secretkey']; + $basedata['secretverification'] = $_POST['secretverification']; + return $basedata; +}); + $wizard->addCode('selectdatabase',function($storedvariables){ $selectdatabase['databasetype'] = $_POST['databasetype']; return $selectdatabase; @@ -32,6 +46,19 @@ $wizard->addCode('createdatabase',function($storedvariables){ fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$storedvariables['enterlogindata']['password']."' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$storedvariables['enterlogindata']['dbname']."' );\n"); } + fwrite($conf_file, "define( 'LOGFILE', '".$storedvariables['basedata']['logfile']."' );\n"); + fwrite($conf_file, "define( 'EVENTNAME', '".$storedvariables['basedata']['eventname']."' );\n"); + fwrite($conf_file, "define( 'INFORMATIONS_URL', '".$storedvariables['basedata']['infourl']."' );\n"); + fwrite($conf_file, "define( 'SECRET_KEY', '".$storedvariables['basedata']['secretkey']."' );\n"); + fwrite($conf_file, "define( 'SECRET_VERIFICATION', '".$storedvariables['basedata']['secretverification']."' );\n"); + fwrite($conf_file, "define( 'URLPREFIX', '".$storedvariables['basedata']['urlprefix']."' );\n"); + fwrite($conf_file, "define( 'TAGE_DAUER', '".$storedvariables['basedata']['duration']."' );\n"); + fwrite($conf_file, "date_default_timezone_set('".$storedvariables['basedata']['timezone']."');\n"); + fwrite($conf_file, "setlocale(LC_TIME, \"".$storedvariables['basedata']['locale']."\");\n"); + fwrite($conf_file, "\$start_date = new DateTimeImmutable(\"".$storedvariables['basedata']['startdate']."\");\n"); + fwrite($conf_file, "\$secret_key = SECRET_KEY;\n"); + fwrite($conf_file, "\$secret_verification = SECRET_VERIFICATION;\n"); + fwrite($conf_file, "\$urlprefix = URLPREFIX;\n"); fwrite($conf_file, "?>"); // Test configuration: require_once("SQL.php"); diff --git a/html/setupWizard.json b/html/setupWizard.json index dd1cacb..ae5479d 100644 --- a/html/setupWizard.json +++ b/html/setupWizard.json @@ -1,10 +1,14 @@ { "header": "<!DOCTYPE html>\n<html xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n<meta charset=\"utf-8\"\/>\n<meta name=\"generator\" content=\"Docutils 0.16: http:\/\/docutils.sourceforge.net\/\" \/>\n<title>Bengelsystem Setup Wizard<\/title>\n<head><\/head>\n<body><h1>Bengelsystem Setup Wizard<\/h1><p>Diese Seite führt durch die Einrichtung der Helferdatenbank.<\/p>", - "firststep": "selectdatabase", + "firststep": "basedata", "steps": [ + { + "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>" + }, { "id": "selectdatabase", - "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><form action=\"Setup.php\" method=\"post\">\r\n <fieldset>\r\n <legend>Datenbank auswählen<\/legend>\r\n <input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/>\r\n <input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/>\r\n <label for=\"sqlite\">SQLite<\/label><br \/>\r\n <input type=\"radio\" id=\"mariadb\" name=\"databasetype\" value=\"MariaDB\" \/>\r\n <label for=\"mariadb\">MariaDB<\/label><br \/>\r\n <input type=\"submit\" value=\"Weiter\" \/>\r\n <\/fieldset>\r\n<\/form>", + "page": "<h2>Datenbanktyp auswählen<\/h2><p>Für die meisten Conventions sollte eine SQLite Datenbank ausreichen. In diesem Fall ist die Datenbank in einer einzelnen Datei und es ist nicht nötig eine separate Datenbank aufzusetzen.<\/p><form action=\"Setup.php\" method=\"post\"><fieldset><legend>Datenbank auswählen<\/legend><input type=\"hidden\" name=\"stepfrom\" value=\"selectdatabase\" \/><input type=\"radio\" id=\"sqlite\" name=\"databasetype\" value=\"SQLite\" checked \/><label for=\"sqlite\">SQLite<\/label><br \/><input type=\"radio\" id=\"mariadb\" name=\"databasetype\" value=\"MariaDB\" \/><label for=\"mariadb\">MariaDB<\/label><br \/><input type=\"submit\" value=\"Weiter\" \/><\/fieldset><\/form>", "redirects": [ { "==": {"databasetype": "SQLite"}, From c930b750718c045a37192bd70e0b2494cbc3e0cc Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 4 Feb 2024 05:51:10 +0100 Subject: [PATCH 10/51] Move setupWizard.json one directory down --- html/Setup.php | 2 +- html/Wizard.php | 2 +- html/setupWizard.json => setupWizard.json | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename html/setupWizard.json => setupWizard.json (100%) diff --git a/html/Setup.php b/html/Setup.php index 3fd5939..d277a78 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -2,7 +2,7 @@ require_once("Wizard.php"); -$wizard = new Wizard(); +$wizard = new Wizard("../setupWizard.json"); $wizard->addCode('basedata',function($storedvariables){ $basedata['eventname'] = $_POST['eventname']; diff --git a/html/Wizard.php b/html/Wizard.php index 97aa9de..cdbb429 100644 --- a/html/Wizard.php +++ b/html/Wizard.php @@ -96,7 +96,7 @@ class Wizard { private array $steps = array(); private string $footer = ""; private array $storedvariables = array(); - public function __construct($json_file = 'setupWizard.json'){ + public function __construct($json_file = '../wizard.json'){ $stepsArray = json_decode(file_get_contents($json_file), true); $this->header = $stepsArray['header']; $this->firststep = $stepsArray['firststep']; diff --git a/html/setupWizard.json b/setupWizard.json similarity index 100% rename from html/setupWizard.json rename to setupWizard.json From dc0337365315747ecaab3d5cc391897d69b67d40 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 4 Feb 2024 13:47:03 +0100 Subject: [PATCH 11/51] Fix some stuff --- html/SQL.php | 43 ++++++++++++++++++++---------------------- html/konfiguration.php | 5 ----- setupWizard.json | 2 +- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 09dbbd1..443b829 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -1,4 +1,3 @@ - <?php require_once 'konfiguration.php'; @@ -36,7 +35,7 @@ class DB { 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); } @@ -81,7 +80,7 @@ class DB { 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 "sql:" . $stmts[$method . "::" . $variant]->queryString . "<br>\n"; die('Ungueltige Abfrage: ' . self::errorInfo($method, $variant)[2]); @@ -121,7 +120,7 @@ function HelferIstVorhanden($Email) $db->execute(__METHOD__,["email" => $Email]); // TODO Test, that this still works $zeile = $db->fetchAll(__METHOD__); - return $zeile['Anzahl']; + return $zeile[0]['Anzahl']; } //TODO: pruefen, ob Helfer bereits eingeloggt @@ -132,21 +131,21 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) $db = DB::getInstance(); $db->prepare(__METHOD__,"SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"); $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"; - 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 . "ß"; //echo "<b>".$HelferPasswort."</b><br>"; //echo "<b>".$zeile['Passwort']."</b><br>"; - if (password_verify($HelferPasswort, $zeile['Passwort'])) { - $_SESSION["HelferID"] = $zeile['HelferID']; - $_SESSION["HelferName"] = $zeile['Name']; + if (password_verify($HelferPasswort, $zeile[0]['Passwort'])) { + $_SESSION["HelferID"] = $zeile[0]['HelferID']; + $_SESSION["HelferName"] = $zeile[0]['Name']; //TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist - $_SESSION["AdminID"] = $zeile['HelferID']; - $_SESSION["AdminStatus"] = $zeile['Admin']; - $_SESSION["HelferLevel"] = $zeile['HelferLevel']; + $_SESSION["AdminID"] = $zeile[0]['HelferID']; + $_SESSION["AdminStatus"] = $zeile[0]['Admin']; + $_SESSION["HelferLevel"] = $zeile[0]['HelferLevel']; return 1; } else { echo "Falsches Passwort<br>"; @@ -157,7 +156,7 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) // Liste der Helfer fuer Admin-Seite //TODO: HelferLevel -function HelferListe($pdo) +function HelferListe() { $db = DB::getInstance(); $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->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->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__); } -function NewDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); $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 ]); - if ($db->errorCode(__METHOD__) != 1){ - echo "Fehler New Dienst"; - // echo $sql; - $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); + if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000'){ + $err = $db->errorInfo(__METHOD__)[2]; + error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht konnte nicht angelegt werden Grund: $err \n", 3, LOGFILE); die('Ungueltige Abfrage: ' . $err); } 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); } } diff --git a/html/konfiguration.php b/html/konfiguration.php index e526158..41b6f6b 100644 --- a/html/konfiguration.php +++ b/html/konfiguration.php @@ -12,11 +12,6 @@ require_once('../bengelsystem_konfiguration.php'); // define( VERANSTALTUNGSNAME, "dubbelcon"); // 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 // das ist das Passwort, mit dem sich aus den Tokens auch wieder der Username/Email extrahieren lässt diff --git a/setupWizard.json b/setupWizard.json index ae5479d..1404fb2 100644 --- a/setupWizard.json +++ b/setupWizard.json @@ -4,7 +4,7 @@ "steps": [ { "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", From a3dc1ea11b97e158b6033485cd5660d3f2edf350 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 4 Feb 2024 16:27:08 +0100 Subject: [PATCH 12/51] Testcode (WIP) --- html/testPDO.php | 512 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 512 insertions(+) create mode 100644 html/testPDO.php diff --git a/html/testPDO.php b/html/testPDO.php new file mode 100644 index 0000000..c662b08 --- /dev/null +++ b/html/testPDO.php @@ -0,0 +1,512 @@ +<?php +session_start(); +require_once 'SQL_old.php'; +require_once 'SQL.php'; + +function TestCreateHelfer(){ + $dbl = old\ConnectDB(); + $erg_old = old\CreateHelfer($dbl, "Max Mustermann", "max@example.com", "+49123-45", "hola234"); + $erg_new = CreateHelfer("Max Mustermann", "max2@example.com", "+49123-45", "hola234"); + if($erg_old != $erg_new){ + echo "Old CreateHelfer returns '".var_dump($erg_old)."'"; + echo "New CreateHelfer returns '".var_dump($erg_new)."'"; + } + else echo "CreateHelfer ok\n"; +} + +function TestHelferIstVorhanden(){ + $dbl = old\ConnectDB(); + $erg_old = old\HelferIstVorhanden($dbl, "max@example.com"); + $erg_new = HelferIstVorhanden("max@example.com"); + if($erg_old != $erg_new){ + echo "Old HelferIstVorhanden returns '".var_dump($erg_old)."'"; + echo "New HelferIstVorhanden returns '".var_dump($erg_new)."'"; + } + else echo "HelferIstVorhanden ok\n"; +} + +function TestHelferLogin(){ + $dbl = old\ConnectDB(); + $erg_old = old\HelferLogin($dbl, "max@example.com", "hola234", 0); + $erg_old_session = $_SESSION; + $_SESSION = null; + $erg_new = HelferLogin("max@example.com", "hola234", 0); + $erg_new_session = $_SESSION; + $_SESSION = null; + $erg_old_wrong = old\HelferLogin($dbl, "max@example.com", "hola235", 0); + $erg_old_session_wrong = $_SESSION; + $_SESSION = null; + $erg_new_wrong = HelferLogin("max@example.com", "hola235", 0); + $erg_new_session_wrong = $_SESSION; + if($erg_old != $erg_new){ + echo "Old HelferLogin returns '".var_dump($erg_old)."'"; + echo "New HelferLogin returns '".var_dump($erg_new)."'"; + } + else if($erg_old_session != $erg_new_session){ + echo "Old HelferLogin session returns '".var_dump($erg_old_session)."'"; + echo "New HelferLogin session returns '".var_dump($erg_new_session)."'"; + } + else if($erg_old_wrong != $erg_new_wrong){ + echo "Old HelferLogin wrong returns '".var_dump($erg_old_wrong)."'"; + echo "New HelferLogin wrong returns '".var_dump($erg_new_wrong)."'"; + } + else if($erg_old_session_wrong != $erg_new_session_wrong){ + echo "Old HelferLogin session wrong returns '".var_dump($erg_old_session_wrong)."'"; + echo "New HelferLogin session wrong returns '".var_dump($erg_new_session_wrong)."'"; + } + else echo "HelferLogin ok\n"; +} + +function TestHelferListe(){ + $dbl = old\ConnectDB(); + $erg_old = old\HelferListe($dbl); + $erg_new = HelferListe(); + if($erg_old != $erg_new){ + echo "Old HelferListe returns '".var_dump($erg_old)."'"; + echo "New HelferListe returns '".var_dump($erg_new)."'"; + } + else echo "HelferListe ok\n"; +} + +function TestHelferdaten(){ + $dbl = old\ConnectDB(); + HelferLogin("max@example.com", "hola234", 0); + $erg_old = old\Helferdaten($dbl,$_SESSION["HelferID"]); + $erg_new = Helferdaten($_SESSION["HelferID"]); + if($erg_old != $erg_new){ + echo "Old Helferdaten returns '".var_dump($erg_old)."'"; + echo "New Helferdaten returns '".var_dump($erg_new)."'"; + } + else echo "Helferdaten ok\n"; +} + +function TestHelferdatenAendern(){ + $dbl = old\ConnectDB(); + HelferLogin("max@example.com", "hola234", 0); + $cases = array( + # Case 1 HelferNewPasswort Empty, HelferIsAdmin == -1 + 1 => array( + "HelferName" => "Maxi Mustermann", + "HelferEmail" => "max3@example.com", + "HelferHandy" => "+49-531", + "HelferNewPasswort" => "", + "HelferID" => $_SESSION["HelferID"], + "HelferLevel" => 2, + "HelferIsAdmin" => -1, + "AdminID" => 0 + ), + # Case 2 HelferNewPasswort Empty, HelferIsAdmin != -1 + 2 => array( + "HelferName" => "Maxi Mustermann", + "HelferEmail" => "max3@example.com", + "HelferHandy" => "+49-531", + "HelferNewPasswort" => "", + "HelferID" => $_SESSION["HelferID"], + "HelferLevel" => 2, + "HelferIsAdmin" => 1, + "AdminID" => 0 + ), + # Case 3 HelferNewPasswort set, HelferIsAdmin == -1 + 3 => array( + "HelferName" => "Maxi Mustermann", + "HelferEmail" => "max3@example.com", + "HelferHandy" => "+49-531", + "HelferNewPasswort" => "hola531", + "HelferID" => $_SESSION["HelferID"], + "HelferLevel" => 2, + "HelferIsAdmin" => -1, + "AdminID" => 0 + ), + # Case 4 HelferNewPasswort set, HelferIsAdmin != -1 + 4 => array( + "HelferName" => "Maxi Mustermann", + "HelferEmail" => "max3@example.com", + "HelferHandy" => "+49-531", + "HelferNewPasswort" => "hola531", + "HelferID" => $_SESSION["HelferID"], + "HelferLevel" => 2, + "HelferIsAdmin" => 1, + "AdminID" => 0 + ), + + ); + foreach($cases as $casenumber => $case){ + ob_start(); + $erg_old = old\HelferdatenAendern($dbl, $case["HelferName"], $case["HelferEmail"], $case["HelferHandy"], $case["HelferNewPasswort"], $case["HelferID"], $case["HelferLevel"], $case["HelferIsAdmin"], $case["AdminID"]); + $erg_ob_old = ob_get_contents(); + ob_end_clean(); + ob_start(); + $erg_new = HelferdatenAendern($case["HelferName"], $case["HelferEmail"], $case["HelferHandy"], $case["HelferNewPasswort"], $case["HelferID"], $case["HelferLevel"], $case["HelferIsAdmin"], $case["AdminID"]); + $erg_ob_new = ob_get_contents(); + ob_end_clean(); + if($erg_old != $erg_new){ + echo "Old HelferdatenAendern case number ".$casenumber." returns '".var_dump($erg_old)."'\n"; + echo "New HelferdatenAendern case number ".$casenumber." returns '".var_dump($erg_new)."'\n"; + } + else if($erg_ob_old != $erg_ob_new){ + + echo "Old HelferdatenAendern case number ".$casenumber." ob returns '".$erg_ob_old."'\n"; + echo "New HelferdatenAendern case number ".$casenumber." ob returns '".$erg_ob_new."'\n"; + } + else echo "HelferdatenAendern case number ".$casenumber." ok\n"; + } +} + +function TestAlleSchichten(){ + $dbl = old\ConnectDB(); + $erg_old = old\AlleSchichten($dbl, $Sort, $HelferLevel = 1); + $erg_new = AlleSchichten($Sort, $HelferLevel = 1); + if($erg_old != $erg_new){ + echo "Old AlleSchichten returns".var_dump($erg_old)."\n"; + echo "New AlleSchichten returns '".var_dump($erg_new)."'\n"; + } + else echo "AlleSchichten ok"; +} + +function TestAlleSchichtenCount(){ + $dbl = old\ConnectDB(); + $erg_old = old\AlleSchichtenCount($dbl, $HelferLevel = 1); + $erg_new = AlleSchichtenCount($HelferLevel = 1); + if($erg_old != $erg_new){ + echo "Old AlleSchichtenCount returns".var_dump($erg_old)."\n"; + echo "New AlleSchichtenCount returns '".var_dump($erg_new)."'\n"; + } + else echo "AlleSchichtenCount ok"; +} + +function TestAlleBelegteSchichtenCount(){ + $dbl = old\ConnectDB(); + $erg_old = old\AlleBelegteSchichtenCount($dbl, $HelferLevel = 1); + $erg_new = AlleBelegteSchichtenCount($HelferLevel = 1); + if($erg_old != $erg_new){ + echo "Old AlleBelegteSchichtenCount returns".var_dump($erg_old)."\n"; + echo "New AlleBelegteSchichtenCount returns '".var_dump($erg_new)."'\n"; + } + else echo "AlleBelegteSchichtenCount ok"; +} + +function TestAlleSchichtenImZeitbereich(){ + $dbl = old\ConnectDB(); + $erg_old = old\AlleSchichtenImZeitbereich($dbl, $Von, $Bis, $HelferLevel = 1); + $erg_new = AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1); + if($erg_old != $erg_new){ + echo "Old AlleSchichtenImZeitbereich returns".var_dump($erg_old)."\n"; + echo "New AlleSchichtenImZeitbereich returns '".var_dump($erg_new)."'\n"; + } + else echo "AlleSchichtenImZeitbereich ok"; +} + +function TestAlleSchichtenEinesHelfers(){ + $dbl = old\ConnectDB(); + $erg_old = old\AlleSchichtenEinesHelfers($dbl, $HelferID); + $erg_new = AlleSchichtenEinesHelfers($HelferID); + if($erg_old != $erg_new){ + echo "Old AlleSchichtenEinesHelfers returns".var_dump($erg_old)."\n"; + echo "New AlleSchichtenEinesHelfers returns '".var_dump($erg_new)."'\n"; + } + else echo "AlleSchichtenEinesHelfers ok"; +} + +function TestHelferLoeschen(){ + $dbl = old\ConnectDB(); + $erg_old = old\HelferLoeschen($dbl, $HelferID, $AdminID); + $erg_new = HelferLoeschen($HelferID, $AdminID); + if($erg_old != $erg_new){ + echo "Old HelferLoeschen returns".var_dump($erg_old)."\n"; + echo "New HelferLoeschen returns '".var_dump($erg_new)."'\n"; + } + else echo "HelferLoeschen ok"; +} + +function TestSchichtIdArrayEinesHelfers(){ + $dbl = old\ConnectDB(); + $erg_old = old\SchichtIdArrayEinesHelfers($dbl, $HelferID); + $erg_new = SchichtIdArrayEinesHelfers($HelferID); + if($erg_old != $erg_new){ + echo "Old SchichtIdArrayEinesHelfers returns".var_dump($erg_old)."\n"; + echo "New SchichtIdArrayEinesHelfers returns '".var_dump($erg_new)."'\n"; + } + else echo "SchichtIdArrayEinesHelfers ok"; +} + +function TestAlleSchichtenEinesHelfersVonJetzt(){ + $dbl = old\ConnectDB(); + $erg_old = old\AlleSchichtenEinesHelfersVonJetzt($dbl, $HelferID); + $erg_new = AlleSchichtenEinesHelfersVonJetzt($HelferID); + if($erg_old != $erg_new){ + echo "Old AlleSchichtenEinesHelfersVonJetzt returns".var_dump($erg_old)."\n"; + echo "New AlleSchichtenEinesHelfersVonJetzt returns '".var_dump($erg_new)."'\n"; + } + else echo "AlleSchichtenEinesHelfersVonJetzt ok"; +} + +function TestSchichtenSummeEinesHelfers(){ + $dbl = old\ConnectDB(); + $erg_old = old\SchichtenSummeEinesHelfers($dbl, $HelferID); + $erg_new = SchichtenSummeEinesHelfers($HelferID); + if($erg_old != $erg_new){ + echo "Old SchichtenSummeEinesHelfers returns".var_dump($erg_old)."\n"; + echo "New SchichtenSummeEinesHelfers returns '".var_dump($erg_new)."'\n"; + } + else echo "SchichtenSummeEinesHelfers ok"; +} + +function TestLogSchichtEingabe(){ + $dbl = old\ConnectDB(); + $erg_old = old\LogSchichtEingabe($dbl, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0); + $erg_new = LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0); + if($erg_old != $erg_new){ + echo "Old LogSchichtEingabe returns".var_dump($erg_old)."\n"; + echo "New LogSchichtEingabe returns '".var_dump($erg_new)."'\n"; + } + else echo "LogSchichtEingabe ok"; +} + +function TestHelferSchichtZuweisen(){ + $dbl = old\ConnectDB(); + $erg_old = old\HelferSchichtZuweisen($dbl, $HelferID, $SchichtId, $AdminID = 0); + $erg_new = HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0); + if($erg_old != $erg_new){ + echo "Old HelferSchichtZuweisen returns".var_dump($erg_old)."\n"; + echo "New HelferSchichtZuweisen returns '".var_dump($erg_new)."'\n"; + } + else echo "HelferSchichtZuweisen ok"; +} + +function TestHelferVonSchichtLoeschen(){ + $dbl = old\ConnectDB(); + $erg_old = old\HelferVonSchichtLoeschen($dbl, $HelferID, $EinzelSchichtID, $AdminID = 0); + $erg_new = HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0); + if($erg_old != $erg_new){ + echo "Old HelferVonSchichtLoeschen returns".var_dump($erg_old)."\n"; + echo "New HelferVonSchichtLoeschen returns '".var_dump($erg_new)."'\n"; + } + else echo "HelferVonSchichtLoeschen ok"; +} + +function TestHelferVonSchichtLoeschen_SchichtID(){ + $dbl = old\ConnectDB(); + $erg_old = old\HelferVonSchichtLoeschen_SchichtID($dbl, $HelferID, $SchichtID, $AdminID = 0); + $erg_new = HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0); + if($erg_old != $erg_new){ + echo "Old HelferVonSchichtLoeschen_SchichtID returns".var_dump($erg_old)."\n"; + echo "New HelferVonSchichtLoeschen_SchichtID returns '".var_dump($erg_new)."'\n"; + } + else echo "HelferVonSchichtLoeschen_SchichtID ok"; +} + +function TestDetailSchicht(){ + $dbl = old\ConnectDB(); + $erg_old = old\DetailSchicht($dbl, $InfoSchichtID); + $erg_new = DetailSchicht($InfoSchichtID); + if($erg_old != $erg_new){ + echo "Old DetailSchicht returns".var_dump($erg_old)."\n"; + echo "New DetailSchicht returns '".var_dump($erg_new)."'\n"; + } + else echo "DetailSchicht ok"; +} + +function TestBeteiligteHelfer(){ + $dbl = old\ConnectDB(); + $erg_old = old\BeteiligteHelfer($dbl, $InfoSchichtID); + $erg_new = BeteiligteHelfer($InfoSchichtID); + if($erg_old != $erg_new){ + echo "Old BeteiligteHelfer returns".var_dump($erg_old)."\n"; + echo "New BeteiligteHelfer returns '".var_dump($erg_new)."'\n"; + } + else echo "BeteiligteHelfer ok"; +} + +function TestGetDienste(){ + $dbl = old\ConnectDB(); + $erg_old = old\GetDienste($dbl); + $erg_new = GetDienste(); + if($erg_old != $erg_new){ + echo "Old GetDienste returns".var_dump($erg_old)."\n"; + echo "New GetDienste returns '".var_dump($erg_new)."'\n"; + } + else echo "GetDienste ok\n"; +} + +function TestGetDiensteChilds(){ + $dbl = old\ConnectDB(); + $erg_old = old\GetDiensteChilds($dbl, $DienstID); + $erg_new = GetDiensteChilds($DienstID); + if($erg_old != $erg_new){ + echo "Old GetDiensteChilds returns".var_dump($erg_old)."\n"; + echo "New GetDiensteChilds returns '".var_dump($erg_new)."'\n"; + } + else echo "GetDiensteChilds ok"; +} + +function TestChangeDienst(){ + $dbl = old\ConnectDB(); + $erg_old = old\ChangeDienst($dbl, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); + $erg_new = ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); + if($erg_old != $erg_new){ + echo "Old ChangeDienst returns".var_dump($erg_old)."\n"; + echo "New ChangeDienst returns '".var_dump($erg_new)."'\n"; + } + else echo "ChangeDienst ok"; +} + +function TestNewDienst(){ + $dbl = old\ConnectDB(); + HelferLogin("max3@example.com", "hola531", 0); + $erg_old = old\NewDienst($dbl, "egal", "Badgekontrolle", "Turnhalle", "Nur Jongleure mit Badge durchlassen", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); + $erg_new = NewDienst("Badgekontrolle", "Turnhalle", "Nur Jongleure mit Badge durchlassen", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); + if($erg_old != $erg_new){ + echo "Old NewDienst returns".var_dump($erg_old)."\n"; + echo "New NewDienst returns '".var_dump($erg_new)."'\n"; + } + else echo "NewDienst ok\n"; +} + +function TestDeleteDienst(){ + $dbl = old\ConnectDB(); + $dienste_old = old\GetDienste($dbl); +var_dump($dienste_old); + $dienste_new = GetDienste(); +var_dump($dienste_new); +return; + $erg_old = old\DeleteDienst($dbl, 1, false); + $erg_new = DeleteDienst(2, false); + if($erg_old != $erg_new){ + echo "Old DeleteDienst returns".var_dump($erg_old)."\n"; + echo "New DeleteDienst returns '".var_dump($erg_new)."'\n"; + } + else echo "DeleteDienst ok"; +} + +function TestGetDiensteForDay(){ + $dbl = old\ConnectDB(); + $erg_old = old\GetDiensteForDay($dbl, $helferlevel, $datestring); + $erg_new = GetDiensteForDay($helferlevel, $datestring); + if($erg_old != $erg_new){ + echo "Old GetDiensteForDay returns".var_dump($erg_old)."\n"; + echo "New GetDiensteForDay returns '".var_dump($erg_new)."'\n"; + } + else echo "GetDiensteForDay ok"; +} + +function TestGetSchichtenForDienstForDay(){ + $dbl = old\ConnectDB(); + $erg_old = old\GetSchichtenForDienstForDay($dbl, $DienstID, $datestring); + $erg_new = GetSchichtenForDienstForDay($DienstID, $datestring); + if($erg_old != $erg_new){ + echo "Old GetSchichtenForDienstForDay returns".var_dump($erg_old)."\n"; + echo "New GetSchichtenForDienstForDay returns '".var_dump($erg_new)."'\n"; + } + else echo "GetSchichtenForDienstForDay ok"; +} + +function TestGetSchichtenEinesDienstes(){ + $dbl = old\ConnectDB(); + $erg_old = old\GetSchichtenEinesDienstes($dbl, $DienstID); + $erg_new = GetSchichtenEinesDienstes($DienstID); + if($erg_old != $erg_new){ + echo "Old GetSchichtenEinesDienstes returns".var_dump($erg_old)."\n"; + echo "New GetSchichtenEinesDienstes returns '".var_dump($erg_new)."'\n"; + } + else echo "GetSchichtenEinesDienstes ok"; +} + +function TestChangeSchicht(){ + $dbl = old\ConnectDB(); + $erg_old = old\ChangeSchicht($dbl, $SchichtID, $Von, $Bis, $Soll, $Dauer); + $erg_new = ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer); + if($erg_old != $erg_new){ + echo "Old ChangeSchicht returns".var_dump($erg_old)."\n"; + echo "New ChangeSchicht returns '".var_dump($erg_new)."'\n"; + } + else echo "ChangeSchicht ok"; +} + +function TestNewSchicht(){ + $dbl = old\ConnectDB(); + $erg_old = old\NewSchicht($dbl, $DienstID, $Von, $Bis, $Soll, $Dauer); + $erg_new = NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer); + if($erg_old != $erg_new){ + echo "Old NewSchicht returns".var_dump($erg_old)."\n"; + echo "New NewSchicht returns '".var_dump($erg_new)."'\n"; + } + else echo "NewSchicht ok"; +} + +function TestDeleteSchicht(){ + $dbl = old\ConnectDB(); + $erg_old = old\DeleteSchicht($dbl, $SchichtID, $Rekursiv); + $erg_new = DeleteSchicht($SchichtID, $Rekursiv); + if($erg_old != $erg_new){ + echo "Old DeleteSchicht returns".var_dump($erg_old)."\n"; + echo "New DeleteSchicht returns '".var_dump($erg_new)."'\n"; + } + else echo "DeleteSchicht ok"; +} + +function TestAlleHelferSchichtenUebersicht(){ + $dbl = old\ConnectDB(); + $erg_old = old\AlleHelferSchichtenUebersicht($dbl); + $erg_new = AlleHelferSchichtenUebersicht(); + if($erg_old != $erg_new){ + echo "Old AlleHelferSchichtenUebersicht returns".var_dump($erg_old)."\n"; + echo "New AlleHelferSchichtenUebersicht returns '".var_dump($erg_new)."'\n"; + } + else echo "AlleHelferSchichtenUebersicht ok"; +} + +function TestDatenbankAufDeutsch(){ + $dbl = old\ConnectDB(); + $erg_old = old\DatenbankAufDeutsch($dbl); + $erg_new = DatenbankAufDeutsch(); + if($erg_old != $erg_new){ + echo "Old DatenbankAufDeutsch returns".var_dump($erg_old)."\n"; + echo "New DatenbankAufDeutsch returns '".var_dump($erg_new)."'\n"; + } + else echo "DatenbankAufDeutsch ok"; +} + +function TestLastInsertId(){ + $dbl = old\ConnectDB(); + $erg_old = old\LastInsertId($dbl); + $erg_new = LastInsertId(); + if($erg_old != $erg_new){ + echo "Old LastInsertId returns".var_dump($erg_old)."\n"; + echo "New LastInsertId returns '".var_dump($erg_new)."'\n"; + } + else echo "LastInsertId ok"; +} + +function TestHelferLevel(){ + $dbl = old\ConnectDB(); + $erg_old = old\HelferLevel($dbl); + $erg_new = HelferLevel(); + if($erg_old != $erg_new){ + echo "Old HelferLevel returns".var_dump($erg_old)."\n"; + echo "New HelferLevel returns '".var_dump($erg_new)."'\n"; + } + else echo "HelferLevel ok"; +} + +//function HelferLevel($db_link){ +function TestDebugAusgabeDbErgebnis(){ + $dbl = old\ConnectDB(); + $erg_old = old\DebugAusgabeDbErgebnis($dbl); + $erg_new = DebugAusgabeDbErgebnis(); + if($erg_old != $erg_new){ + echo "Old DebugAusgabeDbErgebnis returns".var_dump($erg_old)."\n"; + echo "New DebugAusgabeDbErgebnis returns '".var_dump($erg_new)."'\n"; + } + else echo "DebugAusgabeDbErgebnis ok"; +} + +TestCreateHelfer(); +TestHelferIstVorhanden(); +TestHelferLogin(); +TestHelferListe(); +TestHelferdaten(); +TestHelferdatenAendern(); +TestNewDienst(); +TestGetDienste(); +TestDeleteDienst(); +?> From 55ad42b095932f9e704fd67e96677c7040416c6c Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Mon, 5 Feb 2024 06:04:12 +0100 Subject: [PATCH 13/51] Fix GetDienste --- html/AdminDienste.php | 4 ++-- html/SQL.php | 5 +++-- html/testPDO.php | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/html/AdminDienste.php b/html/AdminDienste.php index f78b906..3050edc 100644 --- a/html/AdminDienste.php +++ b/html/AdminDienste.php @@ -131,7 +131,7 @@ if (isset($_POST['DienstSearch'])) { <?php -$db_erg = GetDienste($db_link); +$zeilen = GetDienste($db_link); $Was = ""; $Wo = ""; @@ -140,7 +140,7 @@ $Leiter = ""; $Gruppe = ""; $HelferLevel = ""; -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +while ($zeilen as $zeile){ if ($zeile['DienstID'] != $DienstID) { echo "<option value='" . $zeile['DienstID'] . "'>" . $zeile['Was'] . "</option>"; } else { diff --git a/html/SQL.php b/html/SQL.php index 443b829..85fcde3 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -58,7 +58,7 @@ class DB { } public function fetchAll($method, $variant = '') { - return self::$stmts[$method . "::" . $variant]->fetchAll(); + return self::$stmts[$method . "::" . $variant]->fetchAll(PDO::FETCH_ASSOC); } public function pdoErrorCode() { @@ -536,7 +536,8 @@ function GetDienste() $db->prepare(__METHOD__,"SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); - return $db_erg; + $dienste = $db->fetchAll(__METHOD__); + return $dienste; } function GetDiensteChilds($DienstID) diff --git a/html/testPDO.php b/html/testPDO.php index c662b08..f18d7c4 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -508,5 +508,5 @@ TestHelferdaten(); TestHelferdatenAendern(); TestNewDienst(); TestGetDienste(); -TestDeleteDienst(); +#TestDeleteDienst(); ?> From cc10bd088f6a26b950044616cc7c80c569803c78 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Mon, 5 Feb 2024 21:43:32 +0100 Subject: [PATCH 14/51] Fix some return values to return arrays --- html/Admin.php | 8 +- html/AdminAlleSchichten.php | 8 +- html/AdminDienste.php | 4 +- html/AdminMeineSchichten.php | 8 +- html/AdminUserdaten.php | 4 +- html/ReadLog.php | 4 +- html/SQL.php | 6 +- html/SQL_old.php | 884 +++++++++++++++++++++++++++++++++++ html/Userdaten.php | 4 +- html/testPDO.php | 252 +++++----- 10 files changed, 1032 insertions(+), 150 deletions(-) create mode 100644 html/SQL_old.php diff --git a/html/Admin.php b/html/Admin.php index a7550c6..7cf08ab 100644 --- a/html/Admin.php +++ b/html/Admin.php @@ -47,8 +47,8 @@ if ($AliasHelferID != 0) { } //echo "AliasHelfer=$AliasHelferID <br>"; -$db_erg = Helferdaten($db_link, $HelferID); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +$zeilen = Helferdaten($db_link, $HelferID); +while ($zeilen as $zeile) { $HelferName = $zeile['Name']; $HelferIsAdmin = $zeile['Admin']; } @@ -83,8 +83,8 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { <th><b>Helfer als Admin ä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)) { + $zeilen = HelferListe($db_link); +while ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>"; } else { diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index 6a7b794..ab2f307 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -94,8 +94,8 @@ if (isset($_GET['ZeitBereich'])) { function HelferAuswahlButton($db_link, $AliasHelferID) { echo '<b>Helfer wä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)) { + $zeilen = HelferListe($db_link); + while ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>"; } else { @@ -118,8 +118,8 @@ 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)) { +$zeilen = Helferdaten($db_link, $HelferID); +while ($zeilen as $zeile) { $HelferName = $zeile['Name']; } diff --git a/html/AdminDienste.php b/html/AdminDienste.php index 3050edc..edc7f9b 100644 --- a/html/AdminDienste.php +++ b/html/AdminDienste.php @@ -190,8 +190,8 @@ echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</bu <!-- <input name="Dienst-Leiter" type="text" value="<?php echo htmlspecialchars($Leiter ?? '')?>" > --> <?php echo "<select name='Dienst-Leiter'>"; - $db_erg = HelferListe($db_link); - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $zeilen = HelferListe($db_link); + while ($zeilen as $zeile) { if ($zeile['HelferID'] != $Leiter) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</option>"; } else { diff --git a/html/AdminMeineSchichten.php b/html/AdminMeineSchichten.php index c0ce145..135e1e0 100644 --- a/html/AdminMeineSchichten.php +++ b/html/AdminMeineSchichten.php @@ -84,8 +84,8 @@ if (isset($_GET['InfoAlleSchichtID'])) { function HelferAuswahlButton($db_link, $AliasHelferID) { echo '<b>Helfer wä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)) { + $zeilen = HelferListe($db_link); + while ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>"; } else { @@ -112,9 +112,9 @@ HelferAuswahlButton($db_link, $AliasHelferID); $_SESSION["AliasHelferID"] = $AliasHelferID; $AdminID = $_SESSION["AdminID"]; -$db_erg = Helferdaten($db_link, $AliasHelferID); +$zeilen = Helferdaten($db_link, $AliasHelferID); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +while ($zeilen as $zeile) { $HelferName = $zeile['Name']; } diff --git a/html/AdminUserdaten.php b/html/AdminUserdaten.php index 9d92255..cc32491 100644 --- a/html/AdminUserdaten.php +++ b/html/AdminUserdaten.php @@ -15,8 +15,8 @@ if ($AdminStatus != 1) { function HelferAuswahlButton($db_link, $AliasHelferID) { echo '<b>Helfer wä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)) { + $zeilen = HelferListe($db_link); + while ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>"; } else { diff --git a/html/ReadLog.php b/html/ReadLog.php index 92d24d1..c752275 100644 --- a/html/ReadLog.php +++ b/html/ReadLog.php @@ -30,8 +30,8 @@ if (!isset($_SESSION["HelferID"]) || ! $_SESSION["HelferID"] > 0) { $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)) { + $zeilen = Helferdaten($db_link, $HelferID); +while ($zeilen as $zeile)) { $HelferName = $zeile['Name']; $HelferIsAdmin = $zeile['Admin']; } diff --git a/html/SQL.php b/html/SQL.php index 85fcde3..0d782a9 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -162,7 +162,8 @@ function HelferListe() $db->prepare(__METHOD__,"SELECT HelferID,Name FROM Helfer"); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); - return $db_erg; + $helfer = $db->fetchAll(__METHOD__); + return $helfer; } @@ -172,7 +173,8 @@ function Helferdaten($HelferID) $db->prepare(__METHOD__,"SELECT * FROM Helfer Where HelferID = :helferid"); $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); $db->onErrorDie(__METHOD__); - return $db_erg; + $helferdaten = $db->fetchAll(__METHOD__); + return $helferdaten; } diff --git a/html/SQL_old.php b/html/SQL_old.php new file mode 100644 index 0000000..ff5c4a6 --- /dev/null +++ b/html/SQL_old.php @@ -0,0 +1,884 @@ +<?php +namespace old; + +require_once 'konfiguration.php'; + +function ConnectDB() +{ + $db_link = mysqli_connect( + MYSQL_HOST, + MYSQL_BENUTZER, + MYSQL_KENNWORT, + MYSQL_DATENBANK + ); + DatenbankAufDeutsch($db_link); + return $db_link; +} + +function CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) +{ + $HelferName = mysqli_real_escape_string($db_link, $HelferName); + $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail); + $HelferHandy = mysqli_real_escape_string($db_link, $HelferHandy); + // level: Teilnehmer/Dauerhelfer/(Teamleiter) + $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); + + //$HelferName=mysqli_real_escape($db_link,$HelferName); + $HelferPasswort = "€" . $HelferPasswort . "ß"; + //echo "<b>".$HelferPasswort."</b>"; + $PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT); + + + // Neuen Helfer anlegen + $sql = "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel) VALUES ('$HelferName','$HelferEmail','$HelferHandy',1,'',0,'$PasswortHash','$HelferLevel')"; + $db_erg = mysqli_query($db_link, $sql); + error_log(date('Y-m-d H:i') . " CreateHelfer: $HelferName angelegt mit Email $HelferEmail Handy $HelferHandy \n", 3, LOGFILE); + return $db_erg; +} + +// testet fuer urllogin, ob Helfer bereits existiert +function HelferIstVorhanden($db_link, $Email) +{ + $Email = mysqli_real_escape_string($db_link, $Email); + $sql = "SELECT count(HelferID) as Anzahl FROM Helfer Where Email = '" . $Email . "'"; + $db_erg = mysqli_query($db_link, $sql); + $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + return $zeile['Anzahl']; +} + +//TODO: pruefen, ob Helfer bereits eingeloggt +function HelferLogin($db_link, $HelferEmail, $HelferPasswort, $HelferStatus) +{ + $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail); + $HelferStatus = mysqli_real_escape_string($db_link, $HelferStatus); + + //echo "Test<br>"; + // Helfer Suchen + $sql = "Select HelferID,Admin,Name,Passwort,HelferLevel From Helfer Where Email='" . $HelferEmail . "'"; + //echo $sql; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Login ungueltige Abfrage"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $HelferPasswort = "€" . $HelferPasswort . "ß"; + //echo "<b>".$HelferPasswort."</b><br>"; + //echo "<b>".$zeile['Passwort']."</b><br>"; + if (password_verify($HelferPasswort, $zeile['Passwort'])) { + $_SESSION["HelferID"] = $zeile['HelferID']; + $_SESSION["HelferName"] = $zeile['Name']; + //TODO: das sollte nur gesetzt werden, wenn der Helfer Admin ist + $_SESSION["AdminID"] = $zeile['HelferID']; + $_SESSION["AdminStatus"] = $zeile['Admin']; + $_SESSION["HelferLevel"] = $zeile['HelferLevel']; + return 1; + } else { + echo "Falsches Passwort<br>"; + return 0; + } + } +} + +// Liste der Helfer fuer Admin-Seite +//TODO: HelferLevel +function HelferListe($db_link) +{ + + $sql = "SELECT HelferID,Name FROM Helfer"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Helferliste ungueltige Abfrage"; + die('Unueltige Abfrage: ' . mysqli_error($db_link)); + } + + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; +} + + +function Helferdaten($db_link, $HelferID) +{ + + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + + $sql = "SELECT * FROM Helfer Where HelferID =" . $HelferID; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Helferdaten ungueltige Abfrage<br>\n"; + echo "sql:$sql<br>\n"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; +} + + + +function HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferLevel, $HelferIsAdmin = -1, $AdminID = 0) +{ + + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + $HelferName = mysqli_real_escape_string($db_link, $HelferName); + $HelferEmail = mysqli_real_escape_string($db_link, $HelferEmail); + $HelferHandy = mysqli_real_escape_string($db_link, $HelferHandy); + $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); + + if ($HelferNewPasswort == "") { + //$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID; + if ($HelferIsAdmin == -1) { + $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',HelferLevel='$HelferLevel' Where HelferId=" . $HelferID; + } else { + $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',Admin=$HelferIsAdmin,HelferLevel='$HelferLevel' Where HelferId=" . $HelferID; + } + $db_erg = mysqli_query($db_link, $sql); + echo "<li>Helferdaten geändert</li>"; + if ($AdminID != 0) { + error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Admin: $HelferIsAdmin\n", 3, LOGFILE); + } else { + error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Admin: $HelferIsAdmin\n", 3, LOGFILE); + } + } else { + $HelferNewPasswort = "€" . $HelferNewPasswort . "ß"; + $PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT); + if ($HelferIsAdmin == -1) { + $sql = "UPDATE Helfer SET Name='" . $HelferName . "',Email='" . $HelferEmail . "',Handy='" . $HelferHandy . "',HelferLevel='$HelferLevel',Passwort='" . $PasswortHash . "' Where HelferId=" . $HelferID; + } else { + $sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy',HelferLevel='$HelferLevel',Passwort='$PasswortHash',Admin=$HelferIsAdmin Where HelferId=" . $HelferID; + } + //echo $sql; + $db_erg = mysqli_query($db_link, $sql); + echo "<li>Passwort geändert</li>"; + if ($AdminID != 0) { + error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE); + } else { + error_log(date('Y-m-d H:i') . "Helferdaten update: Name: $HelferName (HelferID:$HelferID) Email: $HelferEmail Handy: $HelferHandy HelferLevel: $HelferLevel Passwort: neu gesetzt\n", 3, LOGFILE); + } + } + + if (! $db_erg) { + echo "HelferdatenAendern ungueltiges Statement"; + echo $sql; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + + return $db_erg; +} + + + + +function AlleSchichten($db_link, $Sort, $HelferLevel = 1) +{ + + $Sort = mysqli_real_escape_string($db_link, $Sort); + + if ($Sort == '1') { + $sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=$HelferLevel order by Von"; + } else { + $sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=$HelferLevel order by Was,Von"; + } + + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "AlleSchichten ungueltige Abfrage"; + echo $Sort; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + + return $db_erg; +} + +function AlleSchichtenCount($db_link, $HelferLevel = 1) +{ + + //$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel"; + $sql = "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel"; + + + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "AlleSchichtenCount ungueltige Abfrage"; + echo $Sort; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + return $zeile['Anzahl']; +} + + +function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1) +{ + + $sql = "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=$HelferLevel"; + + + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "AlleSchichtenCount ungueltige Abfrage"; + echo $Sort; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + return $zeile['Anzahl']; +} + + +function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1) +{ + error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel"); + // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden + $Von = mysqli_real_escape_string($db_link, $Von); + $Bis = mysqli_real_escape_string($db_link, $Bis); + $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); + $sql_helferlevel = "and Dienst.HelferLevel=$HelferLevel"; + if ($HelferLevel == -1) { + $sql_helferlevel = ""; + } + + $sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= '" . $Von . "' and Von <'" . $Bis . "' and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel order by Was,Von"; + error_log("AlleSchichtenImZeitbereich sql " . $sql); + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "AlleSchichtenImZeitbereich ungueltige Abfrage<br>"; + echo $sql; + die('<br>Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + + return $db_erg; +} + + +function AlleSchichtenEinesHelfers($db_link, $HelferID) +{ + + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + + $sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=" . $HelferID . " order by Von"; + + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "AlleSchichtenEinesHelfers ungueltige Abfrage"; + echo $HelferID; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + + return $db_erg; +} + +function HelferLoeschen($db_link, $HelferID, $AdminID) +{ + + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + + + $db_erg = Helferdaten($db_link, $HelferID); + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $HelferName = $zeile['Name']; + //echo "HelferName=$HelferName<br>"; + } + + $db_erg = AlleSchichtenEinesHelfers($db_link, $HelferID); + + $AnzahlHelferschichten = mysqli_num_rows($db_erg); + if ($AnzahlHelferschichten == 0) { + $sql = "Delete from Helfer where HelferID='$HelferID'"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Helfer $HelferName konnte nicht gelöscht werden<br>"; + echo "$sql <br>"; + return -2; + } else { + echo "Helfer $HelferName (HelferID:$HelferID) wurde erfolgreich geloescht<br>"; + error_log(date('Y-m-d H:i') . "(Admin $AdminID) Helfer loeschen: Name: $HelferName (HelferID:$HelferID)\n", 3, LOGFILE); + return 1; + } + } else { + echo "Helfer $HelferName hat noch $AnzahlHelferschichten Schichten. Bitte erst die Schichten löschen<br>"; + return -1; + } +} + +function SchichtIdArrayEinesHelfers($db_link, $HelferID) +{ + + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + + // Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn + $sql = "SELECT SchichtID FROM EinzelSchicht WHERE HelferID = $HelferID"; + //print_r($sql); + $db_erg = mysqli_query($db_link, $sql); + $schichtIDs = array(); + while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_NUM)) { + $schichtIDs[] = $zeile[0]; + } + return($schichtIDs); +} + +function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID) +{ + + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + // TODO: fix GETDATE() array to string conversion + $sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=" . $HelferID . " and Bis>'" . date("Y-m-d H:i:s") . "' order by Von"; + + + //$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'2023-05-20' order by Von"; + + //echo $sql; + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "AlleSchichtenEinesHelfers ungueltige Abfrage"; + echo $HelferID; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + + return $db_erg; +} + +function SchichtenSummeEinesHelfers($db_link, $HelferID) +{ + + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + + //$sql = "select count Schicht.Dauer as Anzahl FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von"; + $sql = "select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=" . $HelferID; + //echo $sql; + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "SchichtenSummeEinesHelfers ungueltige Abfrage"; + echo $HelferID; + echo $sql; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + + return $db_erg; +} + +function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) +{ + + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); + $EinzelSchichtId = mysqli_real_escape_string($db_link, $EinzelSchichtId); + $Aktion = mysqli_real_escape_string($db_link, $Aktion); + $AdminID = mysqli_real_escape_string($db_link, $AdminID); + + $sql = "SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name + FROM EinzelSchicht + JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID + JOIN Dienst ON Schicht.DienstID = Dienst.DienstID + JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID + WHERE EinzelSchicht.HelferID = $HelferID + AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) + "; + //error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE); + $db_erg = mysqli_query($db_link, $sql); + + if (mysqli_num_rows($db_erg) > 1) { + echo "HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegeben\n <br>"; + // Fehler geht ins normale Error-Management, nicht ins Logfile + error_log(date('Y-m-d H:i') . " HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegben.\n", 0); + } elseif (mysqli_num_rows($db_erg) == 1) { + $row = mysqli_fetch_assoc($db_erg); + $Von = $row["Von"]; + $Bis = $row["Bis"]; + $Was = $row["Was"]; + $HelferName = $row["Name"]; + } else { + echo "Es wurde keine Zeile zurueckgegeben."; + } + + if ($AdminID == 0) { + error_log(date('Y-m-d H:i') . " HelferSchicht: $HelferName (HelferID:$HelferID) hat Dienst $Was von $Von bis $Bis $Aktion.\n", 3, LOGFILE); + } else { + error_log(date('Y-m-d H:i') . " HelferSchicht: Admin:$AdminID hat von $HelferName (HelferID:$HelferID) den Dienst $Was von $Von bis $Bis $Aktion.\n", 3, LOGFILE); + } +} + +function HelferSchichtZuweisen($db_link, $HelferID, $SchichtId, $AdminID = 0) +{ + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); + + // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert + $sql = "SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID='$SchichtId' and HelferID='$HelferID'"; + + $db_erg = mysqli_query($db_link, $sql); + + if (mysqli_num_rows($db_erg) > 0) { + echo "HelferSchichtZuweisen: Schicht existiert bereits!"; + return false; + } + + // Helfer Schicht zuweisen + $sql = 'INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (\'' + . $SchichtId . '\',\'' + . $HelferID . '\')'; + //echo '<script> console.log("Schicht zuweiweisen: '.$sql.'")</script>'; + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "HelferSchichtZuweisen ungueltige Abfrage"; + echo $HelferID; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID); + + return $db_erg; +} + +function HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID, $AdminID = 0) +{ + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); + + + // Log vor Löschen, damit Einzelschicht abgefragt werden kann + LogSchichtEingabe($db_link, $HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID); + + // Lösche Einzelschicht + $sql = "Delete From EinzelSchicht Where EinzelSchichtID =" . $EinzelSchichtID; + //echo $sql; + $db_erg = mysqli_query($db_link, $sql); + + + return $db_erg; +} + +function HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $AdminID = 0) +{ + $HelferID = mysqli_real_escape_string($db_link, $HelferID); + $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); + + + // Log vor Löschen, damit Einzelschicht abgefragt werden kann + LogSchichtEingabe($db_link, $HelferID, $SchichtID, -1, "entfernt", $AdminID); + + // Lösche Einzelschicht + $sql = "Delete From EinzelSchicht Where SchichtID = $SchichtID and HelferID = $HelferID limit 1;"; + //echo $sql; + $db_erg = mysqli_query($db_link, $sql); + + return $db_erg; +} + + + + + +function DetailSchicht($db_link, $InfoSchichtID) +{ + $InfoSchichtID = mysqli_real_escape_string($db_link, $InfoSchichtID); + + + $sql = "select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=" . $InfoSchichtID; + + //echo $sql; + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "Details ungueltige Abfrage "; + echo $InfoSchichtID; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + return $zeile; +} + + +function BeteiligteHelfer($db_link, $InfoSchichtID) +{ + $InfoSchichtID = mysqli_real_escape_string($db_link, $InfoSchichtID); + + $sql = "select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=" . $InfoSchichtID; + + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "Details ungueltige Abfrage "; + echo $InfoSchichtID; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + return $db_erg; +} + +function GetDienste($db_link) +{ + $sql = "SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "GetDienste ungueltige Abfrage"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; +} + +function GetDiensteChilds($db_link, $DienstID) +{ + $DienstID = mysqli_real_escape_string($db_link, $DienstID); + + $sql = "SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID='" . $DienstID . "' order by Was"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "GetDienste ungueltige Abfrage"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + return $db_erg; +} + + +function ChangeDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +{ + $DienstID = mysqli_real_escape_string($db_link, $DienstID); + $Was = mysqli_real_escape_string($db_link, $Was); + $Wo = mysqli_real_escape_string($db_link, $Wo); + $Info = mysqli_real_escape_string($db_link, $Info); + $Leiter = mysqli_real_escape_string($db_link, $Leiter); + $Gruppe = mysqli_real_escape_string($db_link, $Gruppe); + $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); // int (1,2) Teilnehmer oder Dauerhelfer + + $sql = "UPDATE Dienst SET Was='" . $Was . "', Wo='" . $Wo . "', Info='" . $Info . "', Leiter=" . $Leiter . ", ElternDienstID=" . $Gruppe . " where DienstID=" . $DienstID; + + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Fehler Change Dienst"; + echo $sql; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } +} + +function NewDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) +{ + + $DienstID = mysqli_real_escape_string($db_link, $DienstID); + $Was = mysqli_real_escape_string($db_link, $Was); //Name des Dienstes + $Wo = mysqli_real_escape_string($db_link, $Wo); //Ort + $Info = mysqli_real_escape_string($db_link, $Info); //vollstaendige Beschreibung + $Leiter = mysqli_real_escape_string($db_link, $Leiter); // int HelferID des Leiters + $Gruppe = mysqli_real_escape_string($db_link, $Gruppe); // ?? + $HelferLevel = mysqli_real_escape_string($db_link, $HelferLevel); // int (1,2) Teilnehmer oder Dauerhelfer + + + $sql = "INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values ('$Was','$Wo','$Info',$Leiter,$Gruppe,$HelferLevel)"; + + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Fehler New Dienst"; + // echo $sql; + $err = mysqli_error($db_link); + die('Ungueltige Abfrage: ' . $err); + error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht konnte nicht angelegt mit Anfrage $sql Grund: $err \n", 3, LOGFILE); + } else { + 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); + } +} + +function DeleteDienst($db_link, $DienstID, $Rekursiv) +{ + $DienstID = mysqli_real_escape_string($db_link, $DienstID); + + + if ($Rekursiv) { + return false; + } else { + // Pruefen ob noch Schichten eingetragen sind + $sql = "SELECT SchichtID FROM Schicht where DienstID=" . $DienstID; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Fehler DeleteDienst"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + if (mysqli_num_rows($db_erg) == 0) { + // Eintrag löschen + $sql = "DELETE FROM Dienst where DienstID=" . $DienstID; + + echo $sql; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Fehler DeleteDienst"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + return true; + } else { + return false; + } + } +} + + +function GetDiensteForDay($db_link, $helferlevel, $datestring) +{ + $unixtime = strtotime($datestring); + $date1 = date('Y-m-d', $unixtime + 24 * 60 * 60); + $date2 = date('Y-m-d', $unixtime); + $sql = "SELECT DienstId, Was, Wo, Info FROM Dienst INNER JOIN Schicht USING (DienstID) WHERE HelferLevel=" . $helferlevel . " GROUP BY DienstId HAVING MIN(Von)<'" . $date1 . "' AND MAX(Bis)>'" . $date2 . "' ORDER BY MIN(Von) ASC;"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "GetDienste ungueltige Abfrage"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + return $db_erg; +} + +function GetSchichtenForDienstForDay($db_link, $DienstID, $datestring) +{ + $unixtime = strtotime($datestring); + $date1 = date('Y-m-d', $unixtime + 24 * 60 * 60); + $date2 = date('Y-m-d', $unixtime); + $sql = "select Von, Bis, Soll, Name, Handy from Schicht left join EinzelSchicht using (SchichtId) left join Helfer using (HelferId) where DienstId=" . $DienstID . " and Von<'" . $date1 . "' and Bis>'" . $date2 . "' order by Von;"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "GetDienste ungueltige Abfrage"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + return $db_erg; +} + + +function GetSchichtenEinesDienstes($db_link, $DienstID) +{ + $DienstID = mysqli_real_escape_string($db_link, $DienstID); + + + //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; + $sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis, DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Schicht where DienstID=" . $DienstID; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "GetSchichtenEinesDienstes ungueltige Abfrage"; + echo $sql; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + return $db_erg; +} + +function ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll, $Dauer) +{ + $SchichtID = mysqli_real_escape_string($db_link, $SchichtID); + $Von = mysqli_real_escape_string($db_link, $Von); + $Bis = mysqli_real_escape_string($db_link, $Bis); + $Soll = mysqli_real_escape_string($db_link, $Soll); + + + $sql = "UPDATE Schicht SET Von='" . $Von . "', Bis='" . $Bis . "', Soll='" . $Soll . "', Dauer='" . $Dauer . "' where SchichtID=" . $SchichtID; + + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Fehler ChangeSchicht"; + echo $sql; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } +} + +function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll, $Dauer) +{ + + $DienstID = mysqli_real_escape_string($db_link, $DienstID); + $Von = mysqli_real_escape_string($db_link, $Von); + $Bis = mysqli_real_escape_string($db_link, $Bis); + $Soll = mysqli_real_escape_string($db_link, $Soll); + + /* + if(validateDate($Von)) + { + echo "Keine Schicht erstellt Fehler in Von"; + return; + } + if(validateDate($Bis, DateTime::ATOM)) + { + echo "Keine Schicht erstellt Fehler in Bis"; + return Null; + } + */ + //$sql = "INSERT INTO Schicht (DienstID, Von, Bis, Soll, Dauer) values ('" . $DienstID . "','" . $Von . "','" . $Bis . "'," . $Soll . ",'" . $Dauer . "')"; + $sql = "INSERT INTO Schicht (DienstID, Von, Bis, Soll, Dauer) values ('" . $DienstID . "','" . $Von . "','" . $Bis . "'," . $Soll . ",'" . $Dauer . "')"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Keine Schicht erstellt"; + echo $sql; + error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); + $err = mysqli_error($db_link); + die('Ungueltige Abfrage: ' . $err); + } else { + //TODO: DienstID aufloesen + error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName hat Schicht angelegt mit DienstID $DienstID, Von $Von Bis $Bis Soll $Soll \n", 3, LOGFILE); + } +} + +function DeleteSchicht($db_link, $SchichtID, $Rekursiv) +{ + $SchichtID = mysqli_real_escape_string($db_link, $SchichtID); + + if ($Rekursiv) { + return false; + } else { + // Pruefen ob noch Helfer auf der Schicht eingetragen sind + $sql = "SELECT Name FROM EinzelSchicht,Helfer where SchichtID=" . $SchichtID . " and Helfer.HelferID=EinzelSchicht.HelferID"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Fehler Change Dienst"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + if (mysqli_num_rows($db_erg) == 0) { + // Eintrag löschen + $sql = "DELETE FROM Schicht where SchichtID=" . $SchichtID; + + echo $sql; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Fehler Change Dienst"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + return true; + } else { + return false; + } + } +} + + +function AlleHelferSchichtenUebersicht($db_link) +{ + $sql = "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"; + $sql = $sql . " UNION ALL "; + $sql = $sql . "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,'-' as Was,0 as Dauer from Helfer,EinzelSchicht where not exists(select 1 from EinzelSchicht where Helfer.HelferID=EinzelSchicht.HelferID)"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "AlleHelferSchichtenUebersicht ungueltige Abfrage"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + return $db_erg; +} + + +function DatenbankAufDeutsch($db_link) +{ + $sql = "SET lc_time_names = 'de_DE'"; + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "ungueltiges umstellen auf Deutsch"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } +} + +function LastInsertId($db_link) +{ + $sql = "SELECT LAST_INSERT_ID()"; + $db_erg = mysqli_query($db_link, $sql); + + if (! $db_erg) { + echo "ungueltige Last InsertID"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + + $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + return $zeile['LAST_INSERT_ID()']; +} + +function HelferLevel($db_link) +{ + $sql = "select HelferLevel,HelferLevelBeschreibung from HelferLevel"; + $db_erg = mysqli_query($db_link, $sql); + if (! $db_erg) { + echo "Konnte HelferLevel nicht abfragen"; + die('Ungueltige Abfrage: ' . mysqli_error($db_link)); + } + return $db_erg; +} +// TODO: als Array zurueckgeben (CreateHelfer anpassen) +// TODO: +//function HelferLevel($db_link){ +// $sql = "SELECT HelferLevel, HelferLevelBeschreibung FROM HelferLevel"; +// $db_erg = mysqli_query($db_link, $sql); +// if (!$db_erg) { +// echo "Konnte HelferLevel nicht abfragen"; +// die('Ungueltige Abfrage: ' . mysqli_error($db_link)); +// } +// +// $results = array(); +// while ($row = mysqli_fetch_assoc($db_erg)) { +// $results[] = $row; +// } +// +// mysqli_free_result($db_erg); // Freigabe des Ergebnisobjekts +// +// return $results; +//} + + +function DebugAusgabeDbErgebnis($db_erg) +{ + // Ausgabe auf Browser Console + + // if(mysqli_num_rows($db_erg) > 0) { + // $fields = mysqli_fetch_fields($db_erg); + // $field_names = []; + // foreach($fields as $field) { + // $field_names[] = $field->name; + // } + // $rows = array(); + // while($row = mysqli_fetch_row($db_erg)) { + // $rows[] = $row; + // } + // + // $js_code = "console.log('Query results:');"; + // $js_code .= "console.log('" . implode('\t', $field_names) . "');"; + // foreach($rows as $row) { + // $js_code .= "console.log('" . implode('\t', $row) . "');"; + // } + // echo "<script>" . $js_code . "</script>"; + // } else { + // echo "Keine Ergebnisse gefunden."; + // } + // + + + // direkte ausgabe in Seite + echo "<table>"; + if (mysqli_num_rows($db_erg) > 0) { + // Tabellenkopf ausgeben + echo "<tr>"; + $fields = mysqli_fetch_fields($db_erg); + foreach ($fields as $field) { + echo "<th>" . $field->name . "</th>"; + } + echo "</tr>"; + + // Tabelleninhalt ausgeben + while ($row = mysqli_fetch_row($db_erg)) { + echo "<tr>"; + foreach ($row as $value) { + echo "<td>" . $value . "</td>"; + } + echo "</tr>"; + } + } else { + echo "<tr><td>Keine Ergebnisse gefunden.</td></tr>"; + } + echo "</table>"; +} diff --git a/html/Userdaten.php b/html/Userdaten.php index 98dc017..f44d170 100644 --- a/html/Userdaten.php +++ b/html/Userdaten.php @@ -69,10 +69,10 @@ if (isset($_POST['change'])) { // Helferdate holen /////////////////////////////////////////////////////////////// -$db_erg = Helferdaten($db_link, $HelferID); +$zeilen = Helferdaten($db_link, $HelferID); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +while ($zeilen as $zeile)) { $HelferName = $zeile['Name']; $HelferEmail = $zeile['Email']; $HelferHandy = $zeile['Handy']; diff --git a/html/testPDO.php b/html/testPDO.php index f18d7c4..d96f825 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -7,9 +7,9 @@ function TestCreateHelfer(){ $dbl = old\ConnectDB(); $erg_old = old\CreateHelfer($dbl, "Max Mustermann", "max@example.com", "+49123-45", "hola234"); $erg_new = CreateHelfer("Max Mustermann", "max2@example.com", "+49123-45", "hola234"); - if($erg_old != $erg_new){ - echo "Old CreateHelfer returns '".var_dump($erg_old)."'"; - echo "New CreateHelfer returns '".var_dump($erg_new)."'"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old CreateHelfer returns '".var_export($erg_old, true)."'"; + echo "New CreateHelfer returns '".var_export($erg_new, true)."'"; } else echo "CreateHelfer ok\n"; } @@ -18,9 +18,9 @@ function TestHelferIstVorhanden(){ $dbl = old\ConnectDB(); $erg_old = old\HelferIstVorhanden($dbl, "max@example.com"); $erg_new = HelferIstVorhanden("max@example.com"); - if($erg_old != $erg_new){ - echo "Old HelferIstVorhanden returns '".var_dump($erg_old)."'"; - echo "New HelferIstVorhanden returns '".var_dump($erg_new)."'"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferIstVorhanden returns '".var_export($erg_old, true)."'"; + echo "New HelferIstVorhanden returns '".var_export($erg_new, true)."'"; } else echo "HelferIstVorhanden ok\n"; } @@ -38,21 +38,21 @@ function TestHelferLogin(){ $_SESSION = null; $erg_new_wrong = HelferLogin("max@example.com", "hola235", 0); $erg_new_session_wrong = $_SESSION; - if($erg_old != $erg_new){ - echo "Old HelferLogin returns '".var_dump($erg_old)."'"; - echo "New HelferLogin returns '".var_dump($erg_new)."'"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferLogin returns '".var_export($erg_old, true)."'"; + echo "New HelferLogin returns '".var_export($erg_new, true)."'"; } - else if($erg_old_session != $erg_new_session){ - echo "Old HelferLogin session returns '".var_dump($erg_old_session)."'"; - echo "New HelferLogin session returns '".var_dump($erg_new_session)."'"; + else if((gettype($erg_old_session) != gettype($erg_new_session)) || ($erg_old_session != $erg_new_session)){ + echo "Old HelferLogin session returns '".var_export($erg_old_session, true)."'"; + echo "New HelferLogin session returns '".var_export($erg_new_session, true)."'"; } - else if($erg_old_wrong != $erg_new_wrong){ - echo "Old HelferLogin wrong returns '".var_dump($erg_old_wrong)."'"; - echo "New HelferLogin wrong returns '".var_dump($erg_new_wrong)."'"; + else if((gettype($erg_old_wrong) != gettype($erg_new_wrong)) || ($erg_old_wrong != $erg_new_wrong)){ + echo "Old HelferLogin wrong returns '".var_export($erg_old_wrong, true)."'"; + echo "New HelferLogin wrong returns '".var_export($erg_new_wrong, true)."'"; } - else if($erg_old_session_wrong != $erg_new_session_wrong){ - echo "Old HelferLogin session wrong returns '".var_dump($erg_old_session_wrong)."'"; - echo "New HelferLogin session wrong returns '".var_dump($erg_new_session_wrong)."'"; + else if((gettype($erg_old_session_wrong) != gettype($erg_new_session_wrong)) || ($erg_old_session_wrong != $erg_new_session_wrong)){ + echo "Old HelferLogin session wrong returns '".var_export($erg_old_session_wrong, true)."'"; + echo "New HelferLogin session wrong returns '".var_export($erg_new_session_wrong, true)."'"; } else echo "HelferLogin ok\n"; } @@ -61,9 +61,9 @@ function TestHelferListe(){ $dbl = old\ConnectDB(); $erg_old = old\HelferListe($dbl); $erg_new = HelferListe(); - if($erg_old != $erg_new){ - echo "Old HelferListe returns '".var_dump($erg_old)."'"; - echo "New HelferListe returns '".var_dump($erg_new)."'"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferListe returns '".var_export($erg_old, true)."'"; + echo "New HelferListe returns '".var_export($erg_new, true)."'"; } else echo "HelferListe ok\n"; } @@ -73,9 +73,9 @@ function TestHelferdaten(){ HelferLogin("max@example.com", "hola234", 0); $erg_old = old\Helferdaten($dbl,$_SESSION["HelferID"]); $erg_new = Helferdaten($_SESSION["HelferID"]); - if($erg_old != $erg_new){ - echo "Old Helferdaten returns '".var_dump($erg_old)."'"; - echo "New Helferdaten returns '".var_dump($erg_new)."'"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old Helferdaten returns '".var_export($erg_old, true)."'"; + echo "New Helferdaten returns '".var_export($erg_new, true)."'"; } else echo "Helferdaten ok\n"; } @@ -139,9 +139,9 @@ function TestHelferdatenAendern(){ $erg_new = HelferdatenAendern($case["HelferName"], $case["HelferEmail"], $case["HelferHandy"], $case["HelferNewPasswort"], $case["HelferID"], $case["HelferLevel"], $case["HelferIsAdmin"], $case["AdminID"]); $erg_ob_new = ob_get_contents(); ob_end_clean(); - if($erg_old != $erg_new){ - echo "Old HelferdatenAendern case number ".$casenumber." returns '".var_dump($erg_old)."'\n"; - echo "New HelferdatenAendern case number ".$casenumber." returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferdatenAendern case number ".$casenumber." returns '".var_export($erg_old, true)."'\n"; + echo "New HelferdatenAendern case number ".$casenumber." returns '".var_export($erg_new, true)."'\n"; } else if($erg_ob_old != $erg_ob_new){ @@ -156,9 +156,9 @@ function TestAlleSchichten(){ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichten($dbl, $Sort, $HelferLevel = 1); $erg_new = AlleSchichten($Sort, $HelferLevel = 1); - if($erg_old != $erg_new){ - echo "Old AlleSchichten returns".var_dump($erg_old)."\n"; - echo "New AlleSchichten returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old AlleSchichten returns".var_export($erg_old, true)."\n"; + echo "New AlleSchichten returns '".var_export($erg_new, true)."'\n"; } else echo "AlleSchichten ok"; } @@ -167,9 +167,9 @@ function TestAlleSchichtenCount(){ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichtenCount($dbl, $HelferLevel = 1); $erg_new = AlleSchichtenCount($HelferLevel = 1); - if($erg_old != $erg_new){ - echo "Old AlleSchichtenCount returns".var_dump($erg_old)."\n"; - echo "New AlleSchichtenCount returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old AlleSchichtenCount returns".var_export($erg_old, true)."\n"; + echo "New AlleSchichtenCount returns '".var_export($erg_new, true)."'\n"; } else echo "AlleSchichtenCount ok"; } @@ -178,9 +178,9 @@ function TestAlleBelegteSchichtenCount(){ $dbl = old\ConnectDB(); $erg_old = old\AlleBelegteSchichtenCount($dbl, $HelferLevel = 1); $erg_new = AlleBelegteSchichtenCount($HelferLevel = 1); - if($erg_old != $erg_new){ - echo "Old AlleBelegteSchichtenCount returns".var_dump($erg_old)."\n"; - echo "New AlleBelegteSchichtenCount returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old AlleBelegteSchichtenCount returns".var_export($erg_old, true)."\n"; + echo "New AlleBelegteSchichtenCount returns '".var_export($erg_new, true)."'\n"; } else echo "AlleBelegteSchichtenCount ok"; } @@ -189,9 +189,9 @@ function TestAlleSchichtenImZeitbereich(){ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichtenImZeitbereich($dbl, $Von, $Bis, $HelferLevel = 1); $erg_new = AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1); - if($erg_old != $erg_new){ - echo "Old AlleSchichtenImZeitbereich returns".var_dump($erg_old)."\n"; - echo "New AlleSchichtenImZeitbereich returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old AlleSchichtenImZeitbereich returns".var_export($erg_old, true)."\n"; + echo "New AlleSchichtenImZeitbereich returns '".var_export($erg_new, true)."'\n"; } else echo "AlleSchichtenImZeitbereich ok"; } @@ -200,9 +200,9 @@ function TestAlleSchichtenEinesHelfers(){ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichtenEinesHelfers($dbl, $HelferID); $erg_new = AlleSchichtenEinesHelfers($HelferID); - if($erg_old != $erg_new){ - echo "Old AlleSchichtenEinesHelfers returns".var_dump($erg_old)."\n"; - echo "New AlleSchichtenEinesHelfers returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old AlleSchichtenEinesHelfers returns".var_export($erg_old, true)."\n"; + echo "New AlleSchichtenEinesHelfers returns '".var_export($erg_new, true)."'\n"; } else echo "AlleSchichtenEinesHelfers ok"; } @@ -211,9 +211,9 @@ function TestHelferLoeschen(){ $dbl = old\ConnectDB(); $erg_old = old\HelferLoeschen($dbl, $HelferID, $AdminID); $erg_new = HelferLoeschen($HelferID, $AdminID); - if($erg_old != $erg_new){ - echo "Old HelferLoeschen returns".var_dump($erg_old)."\n"; - echo "New HelferLoeschen returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferLoeschen returns".var_export($erg_old, true)."\n"; + echo "New HelferLoeschen returns '".var_export($erg_new, true)."'\n"; } else echo "HelferLoeschen ok"; } @@ -222,9 +222,9 @@ function TestSchichtIdArrayEinesHelfers(){ $dbl = old\ConnectDB(); $erg_old = old\SchichtIdArrayEinesHelfers($dbl, $HelferID); $erg_new = SchichtIdArrayEinesHelfers($HelferID); - if($erg_old != $erg_new){ - echo "Old SchichtIdArrayEinesHelfers returns".var_dump($erg_old)."\n"; - echo "New SchichtIdArrayEinesHelfers returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old SchichtIdArrayEinesHelfers returns".var_export($erg_old, true)."\n"; + echo "New SchichtIdArrayEinesHelfers returns '".var_export($erg_new, true)."'\n"; } else echo "SchichtIdArrayEinesHelfers ok"; } @@ -233,9 +233,9 @@ function TestAlleSchichtenEinesHelfersVonJetzt(){ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichtenEinesHelfersVonJetzt($dbl, $HelferID); $erg_new = AlleSchichtenEinesHelfersVonJetzt($HelferID); - if($erg_old != $erg_new){ - echo "Old AlleSchichtenEinesHelfersVonJetzt returns".var_dump($erg_old)."\n"; - echo "New AlleSchichtenEinesHelfersVonJetzt returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old AlleSchichtenEinesHelfersVonJetzt returns".var_export($erg_old, true)."\n"; + echo "New AlleSchichtenEinesHelfersVonJetzt returns '".var_export($erg_new, true)."'\n"; } else echo "AlleSchichtenEinesHelfersVonJetzt ok"; } @@ -244,9 +244,9 @@ function TestSchichtenSummeEinesHelfers(){ $dbl = old\ConnectDB(); $erg_old = old\SchichtenSummeEinesHelfers($dbl, $HelferID); $erg_new = SchichtenSummeEinesHelfers($HelferID); - if($erg_old != $erg_new){ - echo "Old SchichtenSummeEinesHelfers returns".var_dump($erg_old)."\n"; - echo "New SchichtenSummeEinesHelfers returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old SchichtenSummeEinesHelfers returns".var_export($erg_old, true)."\n"; + echo "New SchichtenSummeEinesHelfers returns '".var_export($erg_new, true)."'\n"; } else echo "SchichtenSummeEinesHelfers ok"; } @@ -255,9 +255,9 @@ function TestLogSchichtEingabe(){ $dbl = old\ConnectDB(); $erg_old = old\LogSchichtEingabe($dbl, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0); $erg_new = LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0); - if($erg_old != $erg_new){ - echo "Old LogSchichtEingabe returns".var_dump($erg_old)."\n"; - echo "New LogSchichtEingabe returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old LogSchichtEingabe returns".var_export($erg_old, true)."\n"; + echo "New LogSchichtEingabe returns '".var_export($erg_new, true)."'\n"; } else echo "LogSchichtEingabe ok"; } @@ -266,9 +266,9 @@ function TestHelferSchichtZuweisen(){ $dbl = old\ConnectDB(); $erg_old = old\HelferSchichtZuweisen($dbl, $HelferID, $SchichtId, $AdminID = 0); $erg_new = HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0); - if($erg_old != $erg_new){ - echo "Old HelferSchichtZuweisen returns".var_dump($erg_old)."\n"; - echo "New HelferSchichtZuweisen returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferSchichtZuweisen returns".var_export($erg_old, true)."\n"; + echo "New HelferSchichtZuweisen returns '".var_export($erg_new, true)."'\n"; } else echo "HelferSchichtZuweisen ok"; } @@ -277,9 +277,9 @@ function TestHelferVonSchichtLoeschen(){ $dbl = old\ConnectDB(); $erg_old = old\HelferVonSchichtLoeschen($dbl, $HelferID, $EinzelSchichtID, $AdminID = 0); $erg_new = HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0); - if($erg_old != $erg_new){ - echo "Old HelferVonSchichtLoeschen returns".var_dump($erg_old)."\n"; - echo "New HelferVonSchichtLoeschen returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferVonSchichtLoeschen returns".var_export($erg_old, true)."\n"; + echo "New HelferVonSchichtLoeschen returns '".var_export($erg_new, true)."'\n"; } else echo "HelferVonSchichtLoeschen ok"; } @@ -288,9 +288,9 @@ function TestHelferVonSchichtLoeschen_SchichtID(){ $dbl = old\ConnectDB(); $erg_old = old\HelferVonSchichtLoeschen_SchichtID($dbl, $HelferID, $SchichtID, $AdminID = 0); $erg_new = HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0); - if($erg_old != $erg_new){ - echo "Old HelferVonSchichtLoeschen_SchichtID returns".var_dump($erg_old)."\n"; - echo "New HelferVonSchichtLoeschen_SchichtID returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferVonSchichtLoeschen_SchichtID returns".var_export($erg_old, true)."\n"; + echo "New HelferVonSchichtLoeschen_SchichtID returns '".var_export($erg_new, true)."'\n"; } else echo "HelferVonSchichtLoeschen_SchichtID ok"; } @@ -299,9 +299,9 @@ function TestDetailSchicht(){ $dbl = old\ConnectDB(); $erg_old = old\DetailSchicht($dbl, $InfoSchichtID); $erg_new = DetailSchicht($InfoSchichtID); - if($erg_old != $erg_new){ - echo "Old DetailSchicht returns".var_dump($erg_old)."\n"; - echo "New DetailSchicht returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old DetailSchicht returns".var_export($erg_old, true)."\n"; + echo "New DetailSchicht returns '".var_export($erg_new, true)."'\n"; } else echo "DetailSchicht ok"; } @@ -310,9 +310,9 @@ function TestBeteiligteHelfer(){ $dbl = old\ConnectDB(); $erg_old = old\BeteiligteHelfer($dbl, $InfoSchichtID); $erg_new = BeteiligteHelfer($InfoSchichtID); - if($erg_old != $erg_new){ - echo "Old BeteiligteHelfer returns".var_dump($erg_old)."\n"; - echo "New BeteiligteHelfer returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old BeteiligteHelfer returns".var_export($erg_old, true)."\n"; + echo "New BeteiligteHelfer returns '".var_export($erg_new, true)."'\n"; } else echo "BeteiligteHelfer ok"; } @@ -321,9 +321,9 @@ function TestGetDienste(){ $dbl = old\ConnectDB(); $erg_old = old\GetDienste($dbl); $erg_new = GetDienste(); - if($erg_old != $erg_new){ - echo "Old GetDienste returns".var_dump($erg_old)."\n"; - echo "New GetDienste returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old GetDienste returns".var_export($erg_old, true)."\n"; + echo "New GetDienste returns '".var_export($erg_new, true)."'\n"; } else echo "GetDienste ok\n"; } @@ -332,9 +332,9 @@ function TestGetDiensteChilds(){ $dbl = old\ConnectDB(); $erg_old = old\GetDiensteChilds($dbl, $DienstID); $erg_new = GetDiensteChilds($DienstID); - if($erg_old != $erg_new){ - echo "Old GetDiensteChilds returns".var_dump($erg_old)."\n"; - echo "New GetDiensteChilds returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old GetDiensteChilds returns".var_export($erg_old, true)."\n"; + echo "New GetDiensteChilds returns '".var_export($erg_new, true)."'\n"; } else echo "GetDiensteChilds ok"; } @@ -343,9 +343,9 @@ function TestChangeDienst(){ $dbl = old\ConnectDB(); $erg_old = old\ChangeDienst($dbl, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); $erg_new = ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); - if($erg_old != $erg_new){ - echo "Old ChangeDienst returns".var_dump($erg_old)."\n"; - echo "New ChangeDienst returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old ChangeDienst returns".var_export($erg_old, true)."\n"; + echo "New ChangeDienst returns '".var_export($erg_new, true)."'\n"; } else echo "ChangeDienst ok"; } @@ -355,25 +355,21 @@ function TestNewDienst(){ HelferLogin("max3@example.com", "hola531", 0); $erg_old = old\NewDienst($dbl, "egal", "Badgekontrolle", "Turnhalle", "Nur Jongleure mit Badge durchlassen", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); $erg_new = NewDienst("Badgekontrolle", "Turnhalle", "Nur Jongleure mit Badge durchlassen", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); - if($erg_old != $erg_new){ - echo "Old NewDienst returns".var_dump($erg_old)."\n"; - echo "New NewDienst returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old NewDienst returns".var_export($erg_old, true)."\n"; + echo "New NewDienst returns '".var_export($erg_new, true)."'\n"; } else echo "NewDienst ok\n"; } function TestDeleteDienst(){ $dbl = old\ConnectDB(); - $dienste_old = old\GetDienste($dbl); -var_dump($dienste_old); - $dienste_new = GetDienste(); -var_dump($dienste_new); -return; - $erg_old = old\DeleteDienst($dbl, 1, false); - $erg_new = DeleteDienst(2, false); - if($erg_old != $erg_new){ - echo "Old DeleteDienst returns".var_dump($erg_old)."\n"; - echo "New DeleteDienst returns '".var_dump($erg_new)."'\n"; + $dienste = GetDienste(); + $erg_old = old\DeleteDienst($dbl, $dienste[0]["DienstID"], false); + $erg_new = DeleteDienst($dienste[1]["DienstID"], false); + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old DeleteDienst returns".var_export($erg_old, true)."\n"; + echo "New DeleteDienst returns '".var_export($erg_new, true)."'\n"; } else echo "DeleteDienst ok"; } @@ -382,9 +378,9 @@ function TestGetDiensteForDay(){ $dbl = old\ConnectDB(); $erg_old = old\GetDiensteForDay($dbl, $helferlevel, $datestring); $erg_new = GetDiensteForDay($helferlevel, $datestring); - if($erg_old != $erg_new){ - echo "Old GetDiensteForDay returns".var_dump($erg_old)."\n"; - echo "New GetDiensteForDay returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old GetDiensteForDay returns".var_export($erg_old, true)."\n"; + echo "New GetDiensteForDay returns '".var_export($erg_new, true)."'\n"; } else echo "GetDiensteForDay ok"; } @@ -393,9 +389,9 @@ function TestGetSchichtenForDienstForDay(){ $dbl = old\ConnectDB(); $erg_old = old\GetSchichtenForDienstForDay($dbl, $DienstID, $datestring); $erg_new = GetSchichtenForDienstForDay($DienstID, $datestring); - if($erg_old != $erg_new){ - echo "Old GetSchichtenForDienstForDay returns".var_dump($erg_old)."\n"; - echo "New GetSchichtenForDienstForDay returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old GetSchichtenForDienstForDay returns".var_export($erg_old, true)."\n"; + echo "New GetSchichtenForDienstForDay returns '".var_export($erg_new, true)."'\n"; } else echo "GetSchichtenForDienstForDay ok"; } @@ -404,9 +400,9 @@ function TestGetSchichtenEinesDienstes(){ $dbl = old\ConnectDB(); $erg_old = old\GetSchichtenEinesDienstes($dbl, $DienstID); $erg_new = GetSchichtenEinesDienstes($DienstID); - if($erg_old != $erg_new){ - echo "Old GetSchichtenEinesDienstes returns".var_dump($erg_old)."\n"; - echo "New GetSchichtenEinesDienstes returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old GetSchichtenEinesDienstes returns".var_export($erg_old, true)."\n"; + echo "New GetSchichtenEinesDienstes returns '".var_export($erg_new, true)."'\n"; } else echo "GetSchichtenEinesDienstes ok"; } @@ -415,9 +411,9 @@ function TestChangeSchicht(){ $dbl = old\ConnectDB(); $erg_old = old\ChangeSchicht($dbl, $SchichtID, $Von, $Bis, $Soll, $Dauer); $erg_new = ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer); - if($erg_old != $erg_new){ - echo "Old ChangeSchicht returns".var_dump($erg_old)."\n"; - echo "New ChangeSchicht returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old ChangeSchicht returns".var_export($erg_old, true)."\n"; + echo "New ChangeSchicht returns '".var_export($erg_new, true)."'\n"; } else echo "ChangeSchicht ok"; } @@ -426,9 +422,9 @@ function TestNewSchicht(){ $dbl = old\ConnectDB(); $erg_old = old\NewSchicht($dbl, $DienstID, $Von, $Bis, $Soll, $Dauer); $erg_new = NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer); - if($erg_old != $erg_new){ - echo "Old NewSchicht returns".var_dump($erg_old)."\n"; - echo "New NewSchicht returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old NewSchicht returns".var_export($erg_old, true)."\n"; + echo "New NewSchicht returns '".var_export($erg_new, true)."'\n"; } else echo "NewSchicht ok"; } @@ -437,9 +433,9 @@ function TestDeleteSchicht(){ $dbl = old\ConnectDB(); $erg_old = old\DeleteSchicht($dbl, $SchichtID, $Rekursiv); $erg_new = DeleteSchicht($SchichtID, $Rekursiv); - if($erg_old != $erg_new){ - echo "Old DeleteSchicht returns".var_dump($erg_old)."\n"; - echo "New DeleteSchicht returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old DeleteSchicht returns".var_export($erg_old, true)."\n"; + echo "New DeleteSchicht returns '".var_export($erg_new, true)."'\n"; } else echo "DeleteSchicht ok"; } @@ -448,9 +444,9 @@ function TestAlleHelferSchichtenUebersicht(){ $dbl = old\ConnectDB(); $erg_old = old\AlleHelferSchichtenUebersicht($dbl); $erg_new = AlleHelferSchichtenUebersicht(); - if($erg_old != $erg_new){ - echo "Old AlleHelferSchichtenUebersicht returns".var_dump($erg_old)."\n"; - echo "New AlleHelferSchichtenUebersicht returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old AlleHelferSchichtenUebersicht returns".var_export($erg_old, true)."\n"; + echo "New AlleHelferSchichtenUebersicht returns '".var_export($erg_new, true)."'\n"; } else echo "AlleHelferSchichtenUebersicht ok"; } @@ -459,9 +455,9 @@ function TestDatenbankAufDeutsch(){ $dbl = old\ConnectDB(); $erg_old = old\DatenbankAufDeutsch($dbl); $erg_new = DatenbankAufDeutsch(); - if($erg_old != $erg_new){ - echo "Old DatenbankAufDeutsch returns".var_dump($erg_old)."\n"; - echo "New DatenbankAufDeutsch returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old DatenbankAufDeutsch returns".var_export($erg_old, true)."\n"; + echo "New DatenbankAufDeutsch returns '".var_export($erg_new, true)."'\n"; } else echo "DatenbankAufDeutsch ok"; } @@ -470,9 +466,9 @@ function TestLastInsertId(){ $dbl = old\ConnectDB(); $erg_old = old\LastInsertId($dbl); $erg_new = LastInsertId(); - if($erg_old != $erg_new){ - echo "Old LastInsertId returns".var_dump($erg_old)."\n"; - echo "New LastInsertId returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old LastInsertId returns".var_export($erg_old, true)."\n"; + echo "New LastInsertId returns '".var_export($erg_new, true)."'\n"; } else echo "LastInsertId ok"; } @@ -481,9 +477,9 @@ function TestHelferLevel(){ $dbl = old\ConnectDB(); $erg_old = old\HelferLevel($dbl); $erg_new = HelferLevel(); - if($erg_old != $erg_new){ - echo "Old HelferLevel returns".var_dump($erg_old)."\n"; - echo "New HelferLevel returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old HelferLevel returns".var_export($erg_old, true)."\n"; + echo "New HelferLevel returns '".var_export($erg_new, true)."'\n"; } else echo "HelferLevel ok"; } @@ -493,9 +489,9 @@ function TestDebugAusgabeDbErgebnis(){ $dbl = old\ConnectDB(); $erg_old = old\DebugAusgabeDbErgebnis($dbl); $erg_new = DebugAusgabeDbErgebnis(); - if($erg_old != $erg_new){ - echo "Old DebugAusgabeDbErgebnis returns".var_dump($erg_old)."\n"; - echo "New DebugAusgabeDbErgebnis returns '".var_dump($erg_new)."'\n"; + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old DebugAusgabeDbErgebnis returns".var_export($erg_old, true)."\n"; + echo "New DebugAusgabeDbErgebnis returns '".var_export($erg_new, true)."'\n"; } else echo "DebugAusgabeDbErgebnis ok"; } @@ -508,5 +504,5 @@ TestHelferdaten(); TestHelferdatenAendern(); TestNewDienst(); TestGetDienste(); -#TestDeleteDienst(); +TestDeleteDienst(); ?> From 69b98cf80ab52bd61cd6349832a33a6839013fcd Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Tue, 6 Feb 2024 18:22:18 +0100 Subject: [PATCH 15/51] Fix DeleteDienst --- html/SQL.php | 8 ++++---- html/SQL_old.php | 1 - html/testPDO.php | 3 ++- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 0d782a9..a018dca 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -597,14 +597,14 @@ function DeleteDienst($DienstID, $Rekursiv) } else { // Pruefen ob noch Schichten eingetragen sind $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT SchichtID FROM Schicht where DienstID=:id",'check_dienst'); + $db->prepare(__METHOD__,"SELECT SchichtID FROM Schicht where DienstID=:id",'check_schicht'); $db->prepare(__METHOD__,"DELETE FROM Dienst where DienstID=:id",'delete_dienst'); - $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'check_dienst'); + $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'check_schicht'); - $db->onErrorDie(__METHOD__,'check_dienst'); + $db->onErrorDie(__METHOD__,'check_schicht'); - if ($db->fetch(__METHOD__,'check_dienst')) { + if (!$db->fetch(__METHOD__,'check_schicht')){ // Eintrag löschen $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'delete_dienst'); $db->onErrorDie(__METHOD__,'delete_dienst'); diff --git a/html/SQL_old.php b/html/SQL_old.php index ff5c4a6..5a1fc1e 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -616,7 +616,6 @@ function DeleteDienst($db_link, $DienstID, $Rekursiv) // Eintrag löschen $sql = "DELETE FROM Dienst where DienstID=" . $DienstID; - echo $sql; $db_erg = mysqli_query($db_link, $sql); if (! $db_erg) { echo "Fehler DeleteDienst"; diff --git a/html/testPDO.php b/html/testPDO.php index d96f825..125f0c1 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -371,7 +371,7 @@ function TestDeleteDienst(){ echo "Old DeleteDienst returns".var_export($erg_old, true)."\n"; echo "New DeleteDienst returns '".var_export($erg_new, true)."'\n"; } - else echo "DeleteDienst ok"; + else echo "DeleteDienst ok\n"; } function TestGetDiensteForDay(){ @@ -505,4 +505,5 @@ TestHelferdatenAendern(); TestNewDienst(); TestGetDienste(); TestDeleteDienst(); +TestNewDienst(); ?> From 108304676966e47dd45d8cb6c5c4fa287c619236 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Wed, 7 Feb 2024 05:57:00 +0100 Subject: [PATCH 16/51] Test ChangeDienst --- html/testPDO.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/html/testPDO.php b/html/testPDO.php index 125f0c1..57faf32 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -340,9 +340,11 @@ function TestGetDiensteChilds(){ } function TestChangeDienst(){ + $dienste = GetDienste(); + HelferLogin("max3@example.com", "hola531", 0); $dbl = old\ConnectDB(); - $erg_old = old\ChangeDienst($dbl, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); - $erg_new = ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); + $erg_old = old\ChangeDienst($dbl, $dienste[0]["DienstID"], "Frühstück", "Foyer", "SChnibbeln", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); + $erg_new = ChangeDienst($dienste[1]["DienstID"], "Frühstück", "Foyer", "SChnibbeln", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old ChangeDienst returns".var_export($erg_old, true)."\n"; echo "New ChangeDienst returns '".var_export($erg_new, true)."'\n"; @@ -506,4 +508,5 @@ TestNewDienst(); TestGetDienste(); TestDeleteDienst(); TestNewDienst(); +TestChangeDienst(); ?> From 8ab9a9dd46b2a9b6e63d9b633fa234af259e22b1 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Wed, 7 Feb 2024 06:34:14 +0100 Subject: [PATCH 17/51] GetDiensteChilds --- html/SQL.php | 15 ++++++++++++--- html/SQL_old.php | 4 +++- html/testPDO.php | 24 ++++++++++++++++-------- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index a018dca..ebc4cc6 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -88,6 +88,7 @@ class DB { } } +// ok function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) { // Neuen Helfer anlegen @@ -112,6 +113,7 @@ function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, return $db_erg; } +// ok // testet fuer urllogin, ob Helfer bereits existiert function HelferIstVorhanden($Email) { @@ -123,6 +125,7 @@ function HelferIstVorhanden($Email) return $zeile[0]['Anzahl']; } +// ok //TODO: pruefen, ob Helfer bereits eingeloggt function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) { @@ -154,6 +157,7 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) } } +// ok // Liste der Helfer fuer Admin-Seite //TODO: HelferLevel function HelferListe() @@ -166,7 +170,7 @@ function HelferListe() return $helfer; } - +// ok function Helferdaten($HelferID) { $db = DB::getInstance(); @@ -178,7 +182,7 @@ function Helferdaten($HelferID) } - +// ok function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) { $db = DB::getInstance(); @@ -532,6 +536,7 @@ function BeteiligteHelfer($InfoSchichtID) return $db_erg; } +// ok function GetDienste() { $db = DB::getInstance(); @@ -548,9 +553,11 @@ function GetDiensteChilds($DienstID) $db->prepare(__METHOD__,"SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); $db_erg = $db->execute(__METHOD__,["id" => $DienstID]); $db->onErrorDie(__METHOD__); - return $db_erg; + $dienste = $db->fetchAll(__METHOD__); + return $dienste; } +// ok function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); @@ -568,6 +575,7 @@ function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLeve $db->onErrorDie(__METHOD__); } +// ok function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); @@ -590,6 +598,7 @@ function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) } } +// ok function DeleteDienst($DienstID, $Rekursiv) { if ($Rekursiv) { diff --git a/html/SQL_old.php b/html/SQL_old.php index 5a1fc1e..d66338c 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -546,7 +546,9 @@ function GetDiensteChilds($db_link, $DienstID) echo "GetDienste ungueltige Abfrage"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } diff --git a/html/testPDO.php b/html/testPDO.php index 57faf32..9ca062c 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -329,14 +329,21 @@ function TestGetDienste(){ } function TestGetDiensteChilds(){ + $dienste = GetDienste(); $dbl = old\ConnectDB(); - $erg_old = old\GetDiensteChilds($dbl, $DienstID); - $erg_new = GetDiensteChilds($DienstID); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old GetDiensteChilds returns".var_export($erg_old, true)."\n"; - echo "New GetDiensteChilds returns '".var_export($erg_new, true)."'\n"; + $erg_old_empty = old\GetDiensteChilds($dbl, $dienste[1]["DienstID"]); + $erg_new_empty = GetDiensteChilds($dienste[1]["DienstID"]); + $erg_old_child = old\GetDiensteChilds($dbl, $dienste[0]["DienstID"]); + $erg_new_child = GetDiensteChilds($dienste[0]["DienstID"]); + if((gettype($erg_old_empty) != gettype($erg_new_empty)) || ($erg_old_empty != $erg_new_empty)){ + echo "Old GetDiensteChilds empty returns".var_export($erg_old_empty, true)."\n"; + echo "New GetDiensteChilds empty returns '".var_export($erg_new_empty, true)."'\n"; } - else echo "GetDiensteChilds ok"; + else if((gettype($erg_old_child) != gettype($erg_new_child)) || ($erg_old_child != $erg_new_child)){ + echo "Old GetDiensteChilds child returns".var_export($erg_old_child, true)."\n"; + echo "New GetDiensteChilds child returns '".var_export($erg_new_child, true)."'\n"; + } + else echo "GetDiensteChilds ok\n"; } function TestChangeDienst(){ @@ -344,12 +351,12 @@ function TestChangeDienst(){ HelferLogin("max3@example.com", "hola531", 0); $dbl = old\ConnectDB(); $erg_old = old\ChangeDienst($dbl, $dienste[0]["DienstID"], "Frühstück", "Foyer", "SChnibbeln", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); - $erg_new = ChangeDienst($dienste[1]["DienstID"], "Frühstück", "Foyer", "SChnibbeln", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); + $erg_new = ChangeDienst($dienste[1]["DienstID"], "Frühstück", "Foyer", "SChnibbeln", $_SESSION["HelferID"], $dienste[0]["DienstID"], $_SESSION["HelferLevel"]); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old ChangeDienst returns".var_export($erg_old, true)."\n"; echo "New ChangeDienst returns '".var_export($erg_new, true)."'\n"; } - else echo "ChangeDienst ok"; + else echo "ChangeDienst ok\n"; } function TestNewDienst(){ @@ -509,4 +516,5 @@ TestGetDienste(); TestDeleteDienst(); TestNewDienst(); TestChangeDienst(); +TestGetDiensteChilds(); ?> From 821048d5f818ebf18b7bfa3abf0b6c8387b9cbee Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Thu, 8 Feb 2024 19:29:01 +0100 Subject: [PATCH 18/51] NewSchicht --- html/SQL.php | 16 +++++++++------- html/SQL_old.php | 4 ++-- html/testPDO.php | 8 +++++--- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index ebc4cc6..1bf97d5 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -547,6 +547,7 @@ function GetDienste() return $dienste; } +// ok function GetDiensteChilds($DienstID) { $db = DB::getInstance(); @@ -649,7 +650,7 @@ function ChangeSchicht($SchichtID, $Von, $Bis, $Soll) $db->onErrorDie(__METHOD__); } -function NewSchicht($DienstID, $Von, $Bis, $Soll) +function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) { /* @@ -665,24 +666,25 @@ function NewSchicht($DienstID, $Von, $Bis, $Soll) } */ $db = DB::getInstance(); - $db->prepare(__METHOD__,"INSERT INTO Schicht (DienstID, Von, Bis, Soll) values (:id,:von,:bis,:soll)"); + $db->prepare(__METHOD__,"INSERT INTO Schicht (DienstID, Von, Bis, Soll, Dauer) values (:id,:von,:bis,:soll,:dauer)"); $db_erg = $db->execute(__METHOD__,[ 'id' => $DienstID, 'von' => $Von, 'bis' => $Bis, - 'soll' => $Soll + 'soll' => $Soll, + 'dauer' => $Dauer ]); - if ($db->errorCode(__METHOD__) != 1){ + if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000') { echo "Keine Schicht erstellt"; //echo $sql; - error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); - $err = $stmt->errorInfo(__METHOD__)[2]; + error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht konnte nicht angelegt werden mit $sql \n", 3, LOGFILE); + $err = $db->errorInfo(__METHOD__)[2]; die('Ungueltige Abfrage: ' . $err); } else { //TODO: DienstID aufloesen - error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName hat Schicht angelegt mit DienstID $DienstID, Von $Von Bis $Bis Soll $Soll \n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht wurde angelegt mit DienstID $DienstID, Von $Von Bis $Bis Soll $Soll \n", 3, LOGFILE); } } diff --git a/html/SQL_old.php b/html/SQL_old.php index d66338c..38ff176 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -720,12 +720,12 @@ function NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll, $Dauer) if (! $db_erg) { echo "Keine Schicht erstellt"; echo $sql; - error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht konnte nicht angelegt mit $sql \n", 3, LOGFILE); $err = mysqli_error($db_link); die('Ungueltige Abfrage: ' . $err); } else { //TODO: DienstID aufloesen - error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName hat Schicht angelegt mit DienstID $DienstID, Von $Von Bis $Bis Soll $Soll \n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht wurde angelegt mit DienstID $DienstID, Von $Von Bis $Bis Soll $Soll \n", 3, LOGFILE); } } diff --git a/html/testPDO.php b/html/testPDO.php index 9ca062c..5801946 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -428,14 +428,15 @@ function TestChangeSchicht(){ } function TestNewSchicht(){ + $dienste = GetDienste(); $dbl = old\ConnectDB(); - $erg_old = old\NewSchicht($dbl, $DienstID, $Von, $Bis, $Soll, $Dauer); - $erg_new = NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer); + $erg_old = old\NewSchicht($dbl, $dienste[0]["DienstID"], "2024-02-15T09:00", "2024-02-15T10:30", 2, "01:30"); + $erg_new = NewSchicht($dienste[0]["DienstID"], "2024-02-15T10:30", "2024-02-15T12:00", 2, "01:30"); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old NewSchicht returns".var_export($erg_old, true)."\n"; echo "New NewSchicht returns '".var_export($erg_new, true)."'\n"; } - else echo "NewSchicht ok"; + else echo "NewSchicht ok\n"; } function TestDeleteSchicht(){ @@ -517,4 +518,5 @@ TestDeleteDienst(); TestNewDienst(); TestChangeDienst(); TestGetDiensteChilds(); +TestNewSchicht(); ?> From bdada8a2d52693657a12820c6d46bcf0d6dae534 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Thu, 8 Feb 2024 19:52:47 +0100 Subject: [PATCH 19/51] GetSchichtenEinesHelfers / German setting for db --- html/SQL.php | 9 +++++++-- html/SQL_old.php | 4 +++- html/testPDO.php | 8 +++++--- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 1bf97d5..cfd25f1 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -21,6 +21,9 @@ class DB { { if(self::$instance == null){ self::$instance = new DB(); + // Set database to german (FIXME should be configurable) + self::prepare(__METHOD__,"SET lc_time_names = 'de_DE'"); + self::execute(__METHOD__); } return self::$instance; } @@ -629,10 +632,11 @@ function GetSchichtenEinesDienstes($DienstID) { //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis FROM Schicht where DienstID=:id"); + $db->prepare(__METHOD__,"SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis, DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Schicht where DienstID=:id"); $db_erg = $db->execute(__METHOD__,['id' => $DienstID]); $db->onErrorDie(__METHOD__); - return $db_erg; + $schichten = $db->fetchAll(__METHOD__); + return $schichten; } function ChangeSchicht($SchichtID, $Von, $Bis, $Soll) @@ -650,6 +654,7 @@ function ChangeSchicht($SchichtID, $Von, $Bis, $Soll) $db->onErrorDie(__METHOD__); } +// ok function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) { diff --git a/html/SQL_old.php b/html/SQL_old.php index 38ff176..798b900 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -673,7 +673,9 @@ function GetSchichtenEinesDienstes($db_link, $DienstID) echo $sql; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } function ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll, $Dauer) diff --git a/html/testPDO.php b/html/testPDO.php index 5801946..98a513d 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -406,14 +406,15 @@ function TestGetSchichtenForDienstForDay(){ } function TestGetSchichtenEinesDienstes(){ + $dienste = GetDienste(); $dbl = old\ConnectDB(); - $erg_old = old\GetSchichtenEinesDienstes($dbl, $DienstID); - $erg_new = GetSchichtenEinesDienstes($DienstID); + $erg_old = old\GetSchichtenEinesDienstes($dbl, $dienste[0]["DienstID"]); + $erg_new = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old GetSchichtenEinesDienstes returns".var_export($erg_old, true)."\n"; echo "New GetSchichtenEinesDienstes returns '".var_export($erg_new, true)."'\n"; } - else echo "GetSchichtenEinesDienstes ok"; + else echo "GetSchichtenEinesDienstes ok\n"; } function TestChangeSchicht(){ @@ -519,4 +520,5 @@ TestNewDienst(); TestChangeDienst(); TestGetDiensteChilds(); TestNewSchicht(); +TestGetSchichtenEinesDienstes(); ?> From 7caa5076002460579bfc9dd13204d24506cc929d Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 9 Feb 2024 05:52:35 +0100 Subject: [PATCH 20/51] ChangeSchicht and GetSchichtenForDienstForDay --- html/SQL.php | 26 ++++++++++++++++++--- html/SQL_old.php | 4 +++- html/testPDO.php | 60 +++++++++++++++++++++++++++++++++++++----------- 3 files changed, 72 insertions(+), 18 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index cfd25f1..779abc0 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -628,6 +628,24 @@ function DeleteDienst($DienstID, $Rekursiv) } } +// ok +function GetSchichtenForDienstForDay($DienstID, $datestring) +{ + $db = DB::getInstance(); + $db->prepare(__METHOD__,"select Von, Bis, Soll, Name, Handy from Schicht left join EinzelSchicht using (SchichtId) left join Helfer using (HelferId) where DienstId=:id and Von<:von and Bis>:bis order by Von;"); + $unixtime = strtotime($datestring); + $db_erg = $db->execute(__METHOD__,[ + 'id' => $DienstID, + 'von' => date('Y-m-d', $unixtime + 24 * 60 * 60), + 'bis' => date('Y-m-d', $unixtime) + ]); + $db->onErrorDie(__METHOD__); + $schichten = $db->fetchAll(__METHOD__); + return $schichten; +} + + +// ok function GetSchichtenEinesDienstes($DienstID) { //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; @@ -639,16 +657,18 @@ function GetSchichtenEinesDienstes($DienstID) return $schichten; } -function ChangeSchicht($SchichtID, $Von, $Bis, $Soll) +// ok +function ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll where SchichtID=:id"); + $db->prepare(__METHOD__,"UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll, Dauer=:dauer where SchichtID=:id"); $db_erg = $db->execute(__METHOD__,[ 'von' => $Von, 'bis' => $Bis, 'soll' => $Soll, - 'id' => $SchichtID + 'id' => $SchichtID, + 'dauer' => $Dauer ]); $db->onErrorDie(__METHOD__); diff --git a/html/SQL_old.php b/html/SQL_old.php index 798b900..90ccc7c 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -656,7 +656,9 @@ function GetSchichtenForDienstForDay($db_link, $DienstID, $datestring) echo "GetDienste ungueltige Abfrage"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } diff --git a/html/testPDO.php b/html/testPDO.php index 98a513d..cc432eb 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -3,6 +3,7 @@ session_start(); require_once 'SQL_old.php'; require_once 'SQL.php'; +// ok function TestCreateHelfer(){ $dbl = old\ConnectDB(); $erg_old = old\CreateHelfer($dbl, "Max Mustermann", "max@example.com", "+49123-45", "hola234"); @@ -14,6 +15,7 @@ function TestCreateHelfer(){ else echo "CreateHelfer ok\n"; } +// ok function TestHelferIstVorhanden(){ $dbl = old\ConnectDB(); $erg_old = old\HelferIstVorhanden($dbl, "max@example.com"); @@ -25,6 +27,7 @@ function TestHelferIstVorhanden(){ else echo "HelferIstVorhanden ok\n"; } +// ok function TestHelferLogin(){ $dbl = old\ConnectDB(); $erg_old = old\HelferLogin($dbl, "max@example.com", "hola234", 0); @@ -57,6 +60,7 @@ function TestHelferLogin(){ else echo "HelferLogin ok\n"; } +// ok function TestHelferListe(){ $dbl = old\ConnectDB(); $erg_old = old\HelferListe($dbl); @@ -68,6 +72,7 @@ function TestHelferListe(){ else echo "HelferListe ok\n"; } +// ok function TestHelferdaten(){ $dbl = old\ConnectDB(); HelferLogin("max@example.com", "hola234", 0); @@ -80,6 +85,7 @@ function TestHelferdaten(){ else echo "Helferdaten ok\n"; } +// ok function TestHelferdatenAendern(){ $dbl = old\ConnectDB(); HelferLogin("max@example.com", "hola234", 0); @@ -317,6 +323,7 @@ function TestBeteiligteHelfer(){ else echo "BeteiligteHelfer ok"; } +// ok function TestGetDienste(){ $dbl = old\ConnectDB(); $erg_old = old\GetDienste($dbl); @@ -328,6 +335,7 @@ function TestGetDienste(){ else echo "GetDienste ok\n"; } +// ok function TestGetDiensteChilds(){ $dienste = GetDienste(); $dbl = old\ConnectDB(); @@ -346,6 +354,7 @@ function TestGetDiensteChilds(){ else echo "GetDiensteChilds ok\n"; } +// ok function TestChangeDienst(){ $dienste = GetDienste(); HelferLogin("max3@example.com", "hola531", 0); @@ -359,6 +368,7 @@ function TestChangeDienst(){ else echo "ChangeDienst ok\n"; } +// ok function TestNewDienst(){ $dbl = old\ConnectDB(); HelferLogin("max3@example.com", "hola531", 0); @@ -371,6 +381,7 @@ function TestNewDienst(){ else echo "NewDienst ok\n"; } +// ok function TestDeleteDienst(){ $dbl = old\ConnectDB(); $dienste = GetDienste(); @@ -394,40 +405,59 @@ function TestGetDiensteForDay(){ else echo "GetDiensteForDay ok"; } +// ok function TestGetSchichtenForDienstForDay(){ + $dienste = GetDienste(); $dbl = old\ConnectDB(); - $erg_old = old\GetSchichtenForDienstForDay($dbl, $DienstID, $datestring); - $erg_new = GetSchichtenForDienstForDay($DienstID, $datestring); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old GetSchichtenForDienstForDay returns".var_export($erg_old, true)."\n"; - echo "New GetSchichtenForDienstForDay returns '".var_export($erg_new, true)."'\n"; + $erg_old_good = old\GetSchichtenForDienstForDay($dbl, $dienste[0]["DienstID"], "2024-02-16"); + $erg_new_good = GetSchichtenForDienstForDay($dienste[0]["DienstID"], "2024-02-16"); + $erg_old_bad = old\GetSchichtenForDienstForDay($dbl, $dienste[0]["DienstID"], "2024-02-15"); + $erg_new_bad = GetSchichtenForDienstForDay($dienste[0]["DienstID"], "2024-02-15"); + if((gettype($erg_old_good) != gettype($erg_new_good)) || ($erg_old_good != $erg_new_good)){ + echo "Old GetSchichtenForDienstForDay returns".var_export($erg_old_good, true)."\n"; + echo "New GetSchichtenForDienstForDay returns '".var_export($erg_new_good, true)."'\n"; } - else echo "GetSchichtenForDienstForDay ok"; + else if((gettype($erg_old_bad) != gettype($erg_new_bad)) || ($erg_old_bad != $erg_new_bad)){ + echo "Old GetSchichtenForDienstForDay returns".var_export($erg_old_bad, true)."\n"; + echo "New GetSchichtenForDienstForDay returns '".var_export($erg_new_bad, true)."'\n"; + } + else echo "GetSchichtenForDienstForDay ok\n"; } +// ok function TestGetSchichtenEinesDienstes(){ $dienste = GetDienste(); $dbl = old\ConnectDB(); - $erg_old = old\GetSchichtenEinesDienstes($dbl, $dienste[0]["DienstID"]); - $erg_new = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old GetSchichtenEinesDienstes returns".var_export($erg_old, true)."\n"; - echo "New GetSchichtenEinesDienstes returns '".var_export($erg_new, true)."'\n"; + $erg_old_good = old\GetSchichtenEinesDienstes($dbl, $dienste[0]["DienstID"]); + $erg_new_good = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); + $erg_old_bad = old\GetSchichtenEinesDienstes($dbl, 0); + $erg_new_bad = GetSchichtenEinesDienstes(0); + if((gettype($erg_old_good) != gettype($erg_new_good)) || ($erg_old_good != $erg_new_good)){ + echo "Old GetSchichtenEinesDienstes returns".var_export($erg_old_good, true)."\n"; + echo "New GetSchichtenEinesDienstes returns '".var_export($erg_new_good, true)."'\n"; + } + else if((gettype($erg_old_bad) != gettype($erg_new_bad)) || ($erg_old_bad != $erg_new_bad)){ + echo "Old GetSchichtenEinesDienstes returns".var_export($erg_old_bad, true)."\n"; + echo "New GetSchichtenEinesDienstes returns '".var_export($erg_new_bad, true)."'\n"; } else echo "GetSchichtenEinesDienstes ok\n"; } +// ok function TestChangeSchicht(){ + $dienste = GetDienste(); + $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); $dbl = old\ConnectDB(); - $erg_old = old\ChangeSchicht($dbl, $SchichtID, $Von, $Bis, $Soll, $Dauer); - $erg_new = ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer); + $erg_old = old\ChangeSchicht($dbl, $schichten[0]["SchichtID"], "2024-02-16T09:00", "2024-02-16T10:30", 1, "01:00"); + $erg_new = ChangeSchicht($schichten[1]["SchichtID"], "2024-02-16T10:30", "2024-02-16T12:00", 1, "01:00"); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old ChangeSchicht returns".var_export($erg_old, true)."\n"; echo "New ChangeSchicht returns '".var_export($erg_new, true)."'\n"; } - else echo "ChangeSchicht ok"; + else echo "ChangeSchicht ok\n"; } +// ok function TestNewSchicht(){ $dienste = GetDienste(); $dbl = old\ConnectDB(); @@ -521,4 +551,6 @@ TestChangeDienst(); TestGetDiensteChilds(); TestNewSchicht(); TestGetSchichtenEinesDienstes(); +TestChangeSchicht(); +TestGetSchichtenForDienstForDay(); ?> From 724e10fbc4b8ef56c94296cf31c7921b3f697db2 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Mon, 12 Feb 2024 06:04:46 +0100 Subject: [PATCH 21/51] Add view (WIP), add variable for DB type --- helferdb_structure_mariadb.sql | 8 ++++++++ helferdb_structure_sqlite.sql | 8 ++++++++ html/SQL.php | 11 +++++++---- html/SQL_old.php | 5 +++-- html/Setup.php | 3 +++ html/testPDO.php | 8 ++++++-- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/helferdb_structure_mariadb.sql b/helferdb_structure_mariadb.sql index b95af3a..aff07d2 100644 --- a/helferdb_structure_mariadb.sql +++ b/helferdb_structure_mariadb.sql @@ -52,3 +52,11 @@ CREATE TABLE `Status` ( `Text` text NOT NULL, PRIMARY KEY (`StatusID`) ); +DROP VIEW IF EXISTS `SchichtUebersicht`; +CREATE VIEW `SchichtUebersicht` AS SELECT + `Schicht`.`DienstID` AS `DienstID`, + `Schicht`.`SchichtID` AS `SchichtID`, + `Schicht`.`Von` AS `Von`,`Schicht`. + `Bis` AS `Bis`, + count(`EinzelSchicht`.`SchichtID`) AS `C`, + `Schicht`.`Soll` AS `Soll` FROM (`Schicht` LEFT JOIN `EinzelSchicht` ON(`Schicht`.`SchichtID` = `EinzelSchicht`.`SchichtID`)) GROUP BY `Schicht`.`SchichtID`; diff --git a/helferdb_structure_sqlite.sql b/helferdb_structure_sqlite.sql index 89de12b..9823983 100644 --- a/helferdb_structure_sqlite.sql +++ b/helferdb_structure_sqlite.sql @@ -52,3 +52,11 @@ CREATE TABLE `Status` ( `Text` text NOT NULL, PRIMARY KEY (`StatusID`) ); +DROP VIEW IF EXISTS `SchichtUebersicht`; +CREATE VIEW `SchichtUebersicht` AS SELECT + `Schicht`.`DienstID` AS `DienstID`, + `Schicht`.`SchichtID` AS `SchichtID`, + `Schicht`.`Von` AS `Von`,`Schicht`. + `Bis` AS `Bis`, + count(`EinzelSchicht`.`SchichtID`) AS `C`, + `Schicht`.`Soll` AS `Soll` FROM (`Schicht` LEFT JOIN `EinzelSchicht` ON(`Schicht`.`SchichtID` = `EinzelSchicht`.`SchichtID`)) GROUP BY `Schicht`.`SchichtID`; diff --git a/html/SQL.php b/html/SQL.php index 779abc0..9ebc64c 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -21,9 +21,11 @@ class DB { { if(self::$instance == null){ self::$instance = new DB(); - // Set database to german (FIXME should be configurable) - self::prepare(__METHOD__,"SET lc_time_names = 'de_DE'"); - self::execute(__METHOD__); + if(DBTYPE === 'mariadb'){ + // Set database to german (FIXME should be configurable) + self::prepare(__METHOD__,"SET lc_time_names = 'de_DE'"); + self::execute(__METHOD__); + } } return self::$instance; } @@ -269,7 +271,8 @@ function AlleSchichten($Sort, $HelferLevel = 1) $db->onErrorDie(__METHOD__,'sort_by_was_von'); } - return $db_erg; + $schichten = $db->fetchAll(__METHOD__); + return $schichten; } function AlleSchichtenCount($HelferLevel = 1) diff --git a/html/SQL_old.php b/html/SQL_old.php index 90ccc7c..741f4fb 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -191,8 +191,9 @@ function AlleSchichten($db_link, $Sort, $HelferLevel = 1) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } function AlleSchichtenCount($db_link, $HelferLevel = 1) diff --git a/html/Setup.php b/html/Setup.php index d277a78..a55a894 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -36,15 +36,18 @@ $wizard->addCode('createdatabase',function($storedvariables){ fwrite($conf_file, "<?php\n"); if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){ fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("..") . "/helferdb.sqlite3' );\n"); + fwrite($conf_file, "define( 'MYSQL_HOST', '' );\n"); fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n"); fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n"); + fwrite($conf_file, "define( 'DBTYPE', 'sqlite');\n"); } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){ fwrite($conf_file, "define( 'MYSQL_DSN', 'mysql:host=" . $storedvariables['enterlogindata']['host'] . ";dbname=". $storedvariables['enterlogindata']['dbname'] . ";charset=utf8mb4' );\n"); fwrite($conf_file, "define( 'MYSQL_HOST', '".$storedvariables['enterlogindata']['host']."' );\n"); fwrite($conf_file, "define( 'MYSQL_BENUTZER', '".$storedvariables['enterlogindata']['user']."' );\n"); fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$storedvariables['enterlogindata']['password']."' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$storedvariables['enterlogindata']['dbname']."' );\n"); + fwrite($conf_file, "define( 'DBTYPE', 'mariadb');\n"); } fwrite($conf_file, "define( 'LOGFILE', '".$storedvariables['basedata']['logfile']."' );\n"); fwrite($conf_file, "define( 'EVENTNAME', '".$storedvariables['basedata']['eventname']."' );\n"); diff --git a/html/testPDO.php b/html/testPDO.php index cc432eb..85b9d11 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -160,8 +160,11 @@ function TestHelferdatenAendern(){ function TestAlleSchichten(){ $dbl = old\ConnectDB(); - $erg_old = old\AlleSchichten($dbl, $Sort, $HelferLevel = 1); - $erg_new = AlleSchichten($Sort, $HelferLevel = 1); + $erg_old = old\AlleSchichten($dbl, 1, 2); +var_dump($erg_old); + $erg_new = AlleSchichten(1, 2); +var_dump($erg_new); +die("Test"); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old AlleSchichten returns".var_export($erg_old, true)."\n"; echo "New AlleSchichten returns '".var_export($erg_new, true)."'\n"; @@ -553,4 +556,5 @@ TestNewSchicht(); TestGetSchichtenEinesDienstes(); TestChangeSchicht(); TestGetSchichtenForDienstForDay(); +TestAlleSchichten(); ?> From bd5d02abae863bc8ebfe81a0215c4ab62cbcec90 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Mon, 11 Mar 2024 06:11:46 +0100 Subject: [PATCH 22/51] Fix setub for mariadb again (probably needs some different code for sqlite) --- html/Setup.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/Setup.php b/html/Setup.php index a55a894..338c0b3 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -71,7 +71,7 @@ $wizard->addCode('createdatabase',function($storedvariables){ catch( PDOException $exception ) { echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"".$exception->getMessage( )."\"</p>"; } - if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '1'){ + if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000'){ echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; $_POST['step'] = 'createdatabase'; } else { @@ -87,7 +87,7 @@ $wizard->addCode('createdatabasetables',function($storedvariables){ catch( PDOException $exception ) { echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"".$exception->getMessage( )."\"</p>"; } - if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '1'){ + if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000'){ echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; $_POST['step'] = 'createdatabase'; } else { From 61a913d536d7c45687824ebbe6829e5ebe8ed8ba Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Wed, 13 Mar 2024 05:45:34 +0100 Subject: [PATCH 23/51] AlleSchichten --- html/SQL.php | 3 ++- html/testPDO.php | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 9ebc64c..90796de 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -266,12 +266,13 @@ function AlleSchichten($Sort, $HelferLevel = 1) if ($Sort == '1') { $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel],'sort_by_von'); $db->onErrorDie(__METHOD__,'sort_by_von'); + $schichten = $db->fetchAll(__METHOD__,'sort_by_von'); } else { $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel],'sort_by_was_von'); $db->onErrorDie(__METHOD__,'sort_by_was_von'); + $schichten = $db->fetchAll(__METHOD__,'sort_by_was_von'); } - $schichten = $db->fetchAll(__METHOD__); return $schichten; } diff --git a/html/testPDO.php b/html/testPDO.php index 85b9d11..1b4596b 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -158,18 +158,16 @@ function TestHelferdatenAendern(){ } } +// ok function TestAlleSchichten(){ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichten($dbl, 1, 2); -var_dump($erg_old); $erg_new = AlleSchichten(1, 2); -var_dump($erg_new); -die("Test"); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old AlleSchichten returns".var_export($erg_old, true)."\n"; echo "New AlleSchichten returns '".var_export($erg_new, true)."'\n"; } - else echo "AlleSchichten ok"; + else echo "AlleSchichten ok\n"; } function TestAlleSchichtenCount(){ From 002ad0cecc75c122dd35e50c0b868244d8a87073 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Wed, 13 Mar 2024 06:05:29 +0100 Subject: [PATCH 24/51] AlleSchichtenCount --- html/SQL.php | 2 +- html/testPDO.php | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 90796de..6b7082a 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -285,7 +285,7 @@ function AlleSchichtenCount($HelferLevel = 1) $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel]); $db->onErrorDie(__METHOD__); $zeile = $db->fetchAll(__METHOD__); - return $zeile['Anzahl']; + return $zeile[0]['Anzahl']; } diff --git a/html/testPDO.php b/html/testPDO.php index 1b4596b..406f7ec 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -170,15 +170,16 @@ function TestAlleSchichten(){ else echo "AlleSchichten ok\n"; } +// ok function TestAlleSchichtenCount(){ $dbl = old\ConnectDB(); - $erg_old = old\AlleSchichtenCount($dbl, $HelferLevel = 1); - $erg_new = AlleSchichtenCount($HelferLevel = 1); + $erg_old = old\AlleSchichtenCount($dbl, 2); + $erg_new = AlleSchichtenCount(2); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old AlleSchichtenCount returns".var_export($erg_old, true)."\n"; echo "New AlleSchichtenCount returns '".var_export($erg_new, true)."'\n"; } - else echo "AlleSchichtenCount ok"; + else echo "AlleSchichtenCount ok\n"; } function TestAlleBelegteSchichtenCount(){ @@ -555,4 +556,5 @@ TestGetSchichtenEinesDienstes(); TestChangeSchicht(); TestGetSchichtenForDienstForDay(); TestAlleSchichten(); +TestAlleSchichtenCount(); ?> From 9fcd60d0245e02aefddd222542c1a46ef88529d2 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Thu, 14 Mar 2024 05:32:37 +0100 Subject: [PATCH 25/51] Helferschicht zuweisen --- html/SQL.php | 36 ++++++++++++++++++++---------------- html/testPDO.php | 22 ++++++++++++++++------ 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 6b7082a..7a412dd 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -289,14 +289,14 @@ function AlleSchichtenCount($HelferLevel = 1) } -function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1) +function AlleBelegteSchichtenCount($HelferLevel = 1) { $db = DB::getInstance(); $db->prepare(__METHOD__,"select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); - $db_erg = $db->execute(__METHOD__,["helferlevel" => $Helferlevel]); + $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel]); $db->onErrorDie(__METHOD__); $zeile = $db->fetchAll(__METHOD__); - return $zeile['Anzahl']; + return $zeile[0]['Anzahl']; } @@ -420,8 +420,8 @@ function SchichtenSummeEinesHelfers($db_link, $HelferID) } -// FIXME -function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) +// ok (?) +function LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) { $db = DB::getInstance(); @@ -430,22 +430,26 @@ function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $A JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID JOIN Dienst ON Schicht.DienstID = Dienst.DienstID JOIN Helfer ON EinzelSchicht.HelferID = Helfer.HelferID - WHERE EinzelSchicht.HelferID = $HelferID - AND ( Schicht.SchichtID = $SchichtId OR EinzelSchicht.EinzelSchichtID = $EinzelSchichtId) + WHERE EinzelSchicht.HelferID = :helferid + AND ( Schicht.SchichtID = :schichtid OR EinzelSchicht.EinzelSchichtID = :einzelschichtid) "); //error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE); - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $db->execute(__METHOD__,[ + "helferid" => $HelferID, + "schichtid" => $SchichtId, + "einzelschichtid" => $EinzelSchichtId + ]); + $zeile = $db->fetchAll(__METHOD__); - if (mysqli_num_rows($db_erg) > 1) { + if (is_array($zeile) && count($zeile) > 1) { echo "HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegeben\n <br>"; // Fehler geht ins normale Error-Management, nicht ins Logfile error_log(date('Y-m-d H:i') . " HelferSchichtZuweisen: Es wurden mehr als eine Zeile zurueckgegben.\n", 0); - } elseif (mysqli_num_rows($db_erg) == 1) { - $row = mysqli_fetch_assoc($db_erg); - $Von = $row["Von"]; - $Bis = $row["Bis"]; - $Was = $row["Was"]; - $HelferName = $row["Name"]; + } elseif (is_array($zeile) && (count($zeile) == 1)) { + $Von = $zeile[0]["Von"]; + $Bis = $zeile[0]["Bis"]; + $Was = $zeile[0]["Was"]; + $HelferName = $zeile[0]["Name"]; } else { echo "Es wurde keine Zeile zurueckgegeben."; } @@ -483,7 +487,7 @@ function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) $db->onErrorDie(__METHOD__,'new_einzelschicht'); - LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID); + LogSchichtEingabe($HelferID, $SchichtId, -1, "eingetragen", $AdminID); return $db_erg; } diff --git a/html/testPDO.php b/html/testPDO.php index 406f7ec..549fe4b 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -182,15 +182,16 @@ function TestAlleSchichtenCount(){ else echo "AlleSchichtenCount ok\n"; } +// ok function TestAlleBelegteSchichtenCount(){ $dbl = old\ConnectDB(); - $erg_old = old\AlleBelegteSchichtenCount($dbl, $HelferLevel = 1); - $erg_new = AlleBelegteSchichtenCount($HelferLevel = 1); + $erg_old = old\AlleBelegteSchichtenCount($dbl, 2); + $erg_new = AlleBelegteSchichtenCount(2); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old AlleBelegteSchichtenCount returns".var_export($erg_old, true)."\n"; echo "New AlleBelegteSchichtenCount returns '".var_export($erg_new, true)."'\n"; } - else echo "AlleBelegteSchichtenCount ok"; + else echo "AlleBelegteSchichtenCount ok\n"; } function TestAlleSchichtenImZeitbereich(){ @@ -270,15 +271,22 @@ function TestLogSchichtEingabe(){ else echo "LogSchichtEingabe ok"; } +// ok function TestHelferSchichtZuweisen(){ $dbl = old\ConnectDB(); - $erg_old = old\HelferSchichtZuweisen($dbl, $HelferID, $SchichtId, $AdminID = 0); - $erg_new = HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0); + HelferLogin("max2@example.com", "hola234", 0); + $helfer1 = $_SESSION; + HelferLogin("max3@example.com", "hola531", 0); + $helfer2 = $_SESSION; + $dienste = GetDienste(); + $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); + $erg_old = old\HelferSchichtZuweisen($dbl, $helfer1['HelferID'], $schichten[0]['SchichtID'],0); + $erg_new = HelferSchichtZuweisen($helfer2['HelferID'], $schichten[0]['SchichtID'],0); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old HelferSchichtZuweisen returns".var_export($erg_old, true)."\n"; echo "New HelferSchichtZuweisen returns '".var_export($erg_new, true)."'\n"; } - else echo "HelferSchichtZuweisen ok"; + else echo "HelferSchichtZuweisen ok\n"; } function TestHelferVonSchichtLoeschen(){ @@ -557,4 +565,6 @@ TestChangeSchicht(); TestGetSchichtenForDienstForDay(); TestAlleSchichten(); TestAlleSchichtenCount(); +TestHelferSchichtZuweisen(); +TestAlleBelegteSchichtenCount(); ?> From 0cf61a4b75b43636d93c9359e34d99c0dea7af80 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 15 Mar 2024 05:24:00 +0100 Subject: [PATCH 26/51] AlleSchichtenImZeitbereich --- html/SQL.php | 5 +++-- html/SQL_old.php | 6 +++--- html/testPDO.php | 15 ++++++++++++--- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 7a412dd..d529795 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -314,6 +314,7 @@ function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) "bis" => $Bis ],'helferlevel_not_set'); $db->onErrorDie(__METHOD__,'helferlevel_not_set'); + $zeilen = $db->fetchAll(__METHOD__,'helferlevel_not_set'); } else { $db_erg = $db->execute(__METHOD__,[ @@ -322,9 +323,9 @@ function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) "helferlevel" => $HelferLevel ],'helferlevel_set'); $db->onErrorDie(__METHOD__,'helferlevel_set'); + $zeilen = $db->fetchAll(__METHOD__,'helferlevel_set'); } - - return $db_erg; + return $zeilen; } diff --git a/html/SQL_old.php b/html/SQL_old.php index 741f4fb..29fbd75 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -237,7 +237,6 @@ function AlleBelegteSchichtenCount($db_link, $HelferLevel = 1) function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1) { - error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel"); // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden $Von = mysqli_real_escape_string($db_link, $Von); $Bis = mysqli_real_escape_string($db_link, $Bis); @@ -248,7 +247,6 @@ function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1) } $sql = "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= '" . $Von . "' and Von <'" . $Bis . "' and Dienst.DienstID=SchichtUebersicht.DienstID $sql_helferlevel order by Was,Von"; - error_log("AlleSchichtenImZeitbereich sql " . $sql); $db_erg = mysqli_query($db_link, $sql); if (! $db_erg) { @@ -258,7 +256,9 @@ function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1) } - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } diff --git a/html/testPDO.php b/html/testPDO.php index 549fe4b..44c2742 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -194,15 +194,23 @@ function TestAlleBelegteSchichtenCount(){ else echo "AlleBelegteSchichtenCount ok\n"; } +// ok function TestAlleSchichtenImZeitbereich(){ $dbl = old\ConnectDB(); - $erg_old = old\AlleSchichtenImZeitbereich($dbl, $Von, $Bis, $HelferLevel = 1); - $erg_new = AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1); + $erg_old = old\AlleSchichtenImZeitbereich($dbl, "2024-02-01", "2024-03-01", 2); + $erg_new = AlleSchichtenImZeitbereich("2024-02-01", "2024-03-01", 2); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old AlleSchichtenImZeitbereich returns".var_export($erg_old, true)."\n"; echo "New AlleSchichtenImZeitbereich returns '".var_export($erg_new, true)."'\n"; } - else echo "AlleSchichtenImZeitbereich ok"; + $erg_old = old\AlleSchichtenImZeitbereich($dbl, "2024-03-01", "2024-04-01", 2); + $erg_new = AlleSchichtenImZeitbereich("2024-03-01", "2024-04-01", 2); + if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ + echo "Old AlleSchichtenImZeitbereich returns".var_export($erg_old, true)."\n"; + echo "New AlleSchichtenImZeitbereich returns '".var_export($erg_new, true)."'\n"; + } + + else echo "AlleSchichtenImZeitbereich ok\n"; } function TestAlleSchichtenEinesHelfers(){ @@ -567,4 +575,5 @@ TestAlleSchichten(); TestAlleSchichtenCount(); TestHelferSchichtZuweisen(); TestAlleBelegteSchichtenCount(); +TestAlleSchichtenImZeitbereich(); ?> From 5bb945fc287e5f9473d21df29e2aaf5c3c15253d Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 15 Mar 2024 05:30:14 +0100 Subject: [PATCH 27/51] AlleSchichtenEinesHelfers --- html/SQL.php | 3 ++- html/SQL_old.php | 4 +++- html/testPDO.php | 9 ++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index d529795..8bec9ee 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -335,7 +335,8 @@ function AlleSchichtenEinesHelfers($HelferID) $db->prepare(__METHOD__,"select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); $db->onErrorDie(__METHOD__); - return $db_erg; + $zeilen = $db->fetchAll(__METHOD__); + return $zeilen; } // FIXME diff --git a/html/SQL_old.php b/html/SQL_old.php index 29fbd75..8f2868d 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -278,7 +278,9 @@ function AlleSchichtenEinesHelfers($db_link, $HelferID) } - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } function HelferLoeschen($db_link, $HelferID, $AdminID) diff --git a/html/testPDO.php b/html/testPDO.php index 44c2742..17b0caf 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -215,13 +215,15 @@ function TestAlleSchichtenImZeitbereich(){ function TestAlleSchichtenEinesHelfers(){ $dbl = old\ConnectDB(); - $erg_old = old\AlleSchichtenEinesHelfers($dbl, $HelferID); - $erg_new = AlleSchichtenEinesHelfers($HelferID); + HelferLogin("max2@example.com", "hola234", 0); + $helfer = $_SESSION; + $erg_old = old\AlleSchichtenEinesHelfers($dbl,$helfer['HelferID']); + $erg_new = AlleSchichtenEinesHelfers($helfer['HelferID']); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old AlleSchichtenEinesHelfers returns".var_export($erg_old, true)."\n"; echo "New AlleSchichtenEinesHelfers returns '".var_export($erg_new, true)."'\n"; } - else echo "AlleSchichtenEinesHelfers ok"; + else echo "AlleSchichtenEinesHelfers ok\n"; } function TestHelferLoeschen(){ @@ -576,4 +578,5 @@ TestAlleSchichtenCount(); TestHelferSchichtZuweisen(); TestAlleBelegteSchichtenCount(); TestAlleSchichtenImZeitbereich(); +TestAlleSchichtenEinesHelfers(); ?> From e0e3f8893d6122393e4d5bbb168cef43d208c147 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sat, 16 Mar 2024 17:32:46 +0100 Subject: [PATCH 28/51] HelferVonSchichtLoeschen --- html/SQL.php | 2 +- html/SQL_old.php | 1 - html/testPDO.php | 18 +++++++++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 8bec9ee..215cc73 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -497,7 +497,7 @@ function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann - LogSchichtEingabe($db_link, $HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID); + LogSchichtEingabe($HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID); // Lösche Einzelschicht $db = DB::getInstance(); diff --git a/html/SQL_old.php b/html/SQL_old.php index 8f2868d..829f4e3 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -452,7 +452,6 @@ function HelferSchichtZuweisen($db_link, $HelferID, $SchichtId, $AdminID = 0) function HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID, $AdminID = 0) { $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); // Log vor Löschen, damit Einzelschicht abgefragt werden kann diff --git a/html/testPDO.php b/html/testPDO.php index 17b0caf..764ca0f 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -213,6 +213,7 @@ function TestAlleSchichtenImZeitbereich(){ else echo "AlleSchichtenImZeitbereich ok\n"; } +// ok function TestAlleSchichtenEinesHelfers(){ $dbl = old\ConnectDB(); HelferLogin("max2@example.com", "hola234", 0); @@ -229,7 +230,10 @@ function TestAlleSchichtenEinesHelfers(){ function TestHelferLoeschen(){ $dbl = old\ConnectDB(); $erg_old = old\HelferLoeschen($dbl, $HelferID, $AdminID); +var_dump($erg_old); $erg_new = HelferLoeschen($HelferID, $AdminID); +var_dump($erg_new); +die("--\n"); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old HelferLoeschen returns".var_export($erg_old, true)."\n"; echo "New HelferLoeschen returns '".var_export($erg_new, true)."'\n"; @@ -299,15 +303,22 @@ function TestHelferSchichtZuweisen(){ else echo "HelferSchichtZuweisen ok\n"; } +// ok function TestHelferVonSchichtLoeschen(){ $dbl = old\ConnectDB(); - $erg_old = old\HelferVonSchichtLoeschen($dbl, $HelferID, $EinzelSchichtID, $AdminID = 0); - $erg_new = HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0); + HelferLogin("max2@example.com", "hola234", 0); + $helfer1 = $_SESSION; + $schichten1 = AlleSchichtenEinesHelfers($helfer1['HelferID']); + HelferLogin("max3@example.com", "hola531", 0); + $helfer2 = $_SESSION; + $schichten2 = AlleSchichtenEinesHelfers($helfer2['HelferID']); + $erg_old = old\HelferVonSchichtLoeschen($dbl, $helfer1['HelferID'], $schichten1[0]['EinzelSchichtID']); + $erg_new = HelferVonSchichtLoeschen($helfer2['HelferID'], $schichten2[0]['EinzelSchichtID']); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old HelferVonSchichtLoeschen returns".var_export($erg_old, true)."\n"; echo "New HelferVonSchichtLoeschen returns '".var_export($erg_new, true)."'\n"; } - else echo "HelferVonSchichtLoeschen ok"; + else echo "HelferVonSchichtLoeschen ok\n"; } function TestHelferVonSchichtLoeschen_SchichtID(){ @@ -579,4 +590,5 @@ TestHelferSchichtZuweisen(); TestAlleBelegteSchichtenCount(); TestAlleSchichtenImZeitbereich(); TestAlleSchichtenEinesHelfers(); +TestHelferVonSchichtLoeschen(); ?> From 6ee794a42e374e62875beb40f25a2e8a4913236f Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 04:26:40 +0100 Subject: [PATCH 29/51] SchichtIdArrayEinesHelfers --- html/testPDO.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/html/testPDO.php b/html/testPDO.php index 764ca0f..b280072 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -241,15 +241,18 @@ die("--\n"); else echo "HelferLoeschen ok"; } +// ok function TestSchichtIdArrayEinesHelfers(){ $dbl = old\ConnectDB(); - $erg_old = old\SchichtIdArrayEinesHelfers($dbl, $HelferID); - $erg_new = SchichtIdArrayEinesHelfers($HelferID); + HelferLogin("max2@example.com", "hola234", 0); + $helfer = $_SESSION; + $erg_old = old\SchichtIdArrayEinesHelfers($dbl, $helfer['HelferID']); + $erg_new = SchichtIdArrayEinesHelfers($helfer['HelferID']); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old SchichtIdArrayEinesHelfers returns".var_export($erg_old, true)."\n"; echo "New SchichtIdArrayEinesHelfers returns '".var_export($erg_new, true)."'\n"; } - else echo "SchichtIdArrayEinesHelfers ok"; + else echo "SchichtIdArrayEinesHelfers ok\n"; } function TestAlleSchichtenEinesHelfersVonJetzt(){ @@ -556,7 +559,6 @@ function TestHelferLevel(){ else echo "HelferLevel ok"; } -//function HelferLevel($db_link){ function TestDebugAusgabeDbErgebnis(){ $dbl = old\ConnectDB(); $erg_old = old\DebugAusgabeDbErgebnis($dbl); @@ -591,4 +593,6 @@ TestAlleBelegteSchichtenCount(); TestAlleSchichtenImZeitbereich(); TestAlleSchichtenEinesHelfers(); TestHelferVonSchichtLoeschen(); +TestHelferSchichtZuweisen(); +TestSchichtIdArrayEinesHelfers(); ?> From 86e512b8056d4665e032409b10b2041fbc205bd2 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 04:58:15 +0100 Subject: [PATCH 30/51] AlleSchichtenEinesHelfersVonJetzt --- .gitignore | 4 ++++ html/SQL.php | 6 ++++-- html/SQL_old.php | 5 +++-- html/testPDO.php | 14 +++++++++++--- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 4a9640d..35dda7d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ *.pdf *.swp +bengelsystem_konfiguration.php +convention.log +*.sql +*.sqlite3 etc diff --git a/html/SQL.php b/html/SQL.php index 215cc73..30c60ed 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -403,10 +403,12 @@ function AlleSchichtenEinesHelfersVonJetzt($HelferID) $db_erg = $db->execute(__METHOD__,[ "id" => $HelferID, - "bis" => GETDATE() + "bis" => date("Y-m-d H:i:s") ]); $db->onErrorDie(__METHOD__); - return $db_erg; + + $zeilen = $db->fetchAll(__METHOD__); + return $zeilen; } function SchichtenSummeEinesHelfers($db_link, $HelferID) diff --git a/html/SQL_old.php b/html/SQL_old.php index 829f4e3..9c4c44b 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -351,8 +351,9 @@ function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } function SchichtenSummeEinesHelfers($db_link, $HelferID) diff --git a/html/testPDO.php b/html/testPDO.php index b280072..74169e5 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -255,15 +255,22 @@ function TestSchichtIdArrayEinesHelfers(){ else echo "SchichtIdArrayEinesHelfers ok\n"; } +// ok function TestAlleSchichtenEinesHelfersVonJetzt(){ $dbl = old\ConnectDB(); - $erg_old = old\AlleSchichtenEinesHelfersVonJetzt($dbl, $HelferID); - $erg_new = AlleSchichtenEinesHelfersVonJetzt($HelferID); + HelferLogin("max2@example.com", "hola234", 0); + $helfer = $_SESSION; + $dienste = GetDienste(); + NewSchicht($dienste[0]["DienstID"], date('Y-m-d H:i',time()+60*60*24), date('Y-m-d H:i',time()+60*60*24+60*60*1.5), 2, "01:30"); + $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); + HelferSchichtZuweisen($helfer['HelferID'], $schichten[2]['SchichtID'],0); + $erg_old = old\AlleSchichtenEinesHelfersVonJetzt($dbl, $helfer['HelferID']); + $erg_new = AlleSchichtenEinesHelfersVonJetzt($helfer['HelferID']); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old AlleSchichtenEinesHelfersVonJetzt returns".var_export($erg_old, true)."\n"; echo "New AlleSchichtenEinesHelfersVonJetzt returns '".var_export($erg_new, true)."'\n"; } - else echo "AlleSchichtenEinesHelfersVonJetzt ok"; + else echo "AlleSchichtenEinesHelfersVonJetzt ok\n"; } function TestSchichtenSummeEinesHelfers(){ @@ -595,4 +602,5 @@ TestAlleSchichtenEinesHelfers(); TestHelferVonSchichtLoeschen(); TestHelferSchichtZuweisen(); TestSchichtIdArrayEinesHelfers(); +TestAlleSchichtenEinesHelfersVonJetzt(); ?> From d77267ce6d32eeed5a7413de12b2ad6cc9a73445 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 05:03:55 +0100 Subject: [PATCH 31/51] SchichtenSummeEinesHelfers --- html/SQL.php | 6 ++++-- html/SQL_old.php | 4 +++- html/testPDO.php | 10 +++++++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 30c60ed..4e37b4a 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -411,7 +411,7 @@ function AlleSchichtenEinesHelfersVonJetzt($HelferID) return $zeilen; } -function SchichtenSummeEinesHelfers($db_link, $HelferID) +function SchichtenSummeEinesHelfers($HelferID) { //$sql = "select count Schicht.Dauer as Anzahl FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von"; @@ -420,7 +420,9 @@ function SchichtenSummeEinesHelfers($db_link, $HelferID) //echo $sql; $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); $db->onErrorDie(__METHOD__); - return $db_erg; + + $zeilen = $db->fetchAll(__METHOD__); + return $zeilen; } diff --git a/html/SQL_old.php b/html/SQL_old.php index 9c4c44b..0617a8a 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -374,7 +374,9 @@ function SchichtenSummeEinesHelfers($db_link, $HelferID) } - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } function LogSchichtEingabe($db_link, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) diff --git a/html/testPDO.php b/html/testPDO.php index 74169e5..fac158f 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -273,15 +273,18 @@ function TestAlleSchichtenEinesHelfersVonJetzt(){ else echo "AlleSchichtenEinesHelfersVonJetzt ok\n"; } +// ok function TestSchichtenSummeEinesHelfers(){ $dbl = old\ConnectDB(); - $erg_old = old\SchichtenSummeEinesHelfers($dbl, $HelferID); - $erg_new = SchichtenSummeEinesHelfers($HelferID); + HelferLogin("max2@example.com", "hola234", 0); + $helfer = $_SESSION; + $erg_old = old\SchichtenSummeEinesHelfers($dbl, $helfer['HelferID']); + $erg_new = SchichtenSummeEinesHelfers($helfer['HelferID']); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old SchichtenSummeEinesHelfers returns".var_export($erg_old, true)."\n"; echo "New SchichtenSummeEinesHelfers returns '".var_export($erg_new, true)."'\n"; } - else echo "SchichtenSummeEinesHelfers ok"; + else echo "SchichtenSummeEinesHelfers ok\n"; } function TestLogSchichtEingabe(){ @@ -603,4 +606,5 @@ TestHelferVonSchichtLoeschen(); TestHelferSchichtZuweisen(); TestSchichtIdArrayEinesHelfers(); TestAlleSchichtenEinesHelfersVonJetzt(); +TestSchichtenSummeEinesHelfers(); ?> From 9c60db1cc480f6bc3f604bb9c16aa15f36b126c0 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 08:47:30 +0100 Subject: [PATCH 32/51] LogSchichtEingabe --- html/testPDO.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/html/testPDO.php b/html/testPDO.php index fac158f..c2b599e 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -287,15 +287,16 @@ function TestSchichtenSummeEinesHelfers(){ else echo "SchichtenSummeEinesHelfers ok\n"; } +// ok (looked at log file afterwards) function TestLogSchichtEingabe(){ $dbl = old\ConnectDB(); - $erg_old = old\LogSchichtEingabe($dbl, $HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0); - $erg_new = LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old LogSchichtEingabe returns".var_export($erg_old, true)."\n"; - echo "New LogSchichtEingabe returns '".var_export($erg_new, true)."'\n"; - } - else echo "LogSchichtEingabe ok"; + HelferLogin("max2@example.com", "hola234", 0); + $helfer = $_SESSION; + $dienste = GetDienste(); + $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); + old\LogSchichtEingabe($dbl, $helfer['HelferID'], $schichten[0]['SchichtID'], -1, "test"); + LogSchichtEingabe($helfer['HelferID'], $schichten[0]['SchichtID'], -1, "test"); + echo "LogSchichtEingabe ok\n"; } // ok @@ -607,4 +608,5 @@ TestHelferSchichtZuweisen(); TestSchichtIdArrayEinesHelfers(); TestAlleSchichtenEinesHelfersVonJetzt(); TestSchichtenSummeEinesHelfers(); +TestLogSchichtEingabe(); ?> From 25124205310f72bc635d8aa080c9aebb8d607252 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 08:57:19 +0100 Subject: [PATCH 33/51] DetailSchicht --- html/SQL.php | 2 +- html/testPDO.php | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 4e37b4a..a8eb3b2 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -541,7 +541,7 @@ function DetailSchicht($InfoSchichtID) $db->onErrorDie(__METHOD__); $zeile = $db->fetchAll(__METHOD__); - return $zeile; + return $zeile[0]; } function BeteiligteHelfer($InfoSchichtID) diff --git a/html/testPDO.php b/html/testPDO.php index c2b599e..77a8041 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -346,15 +346,19 @@ function TestHelferVonSchichtLoeschen_SchichtID(){ else echo "HelferVonSchichtLoeschen_SchichtID ok"; } +// ok function TestDetailSchicht(){ $dbl = old\ConnectDB(); - $erg_old = old\DetailSchicht($dbl, $InfoSchichtID); - $erg_new = DetailSchicht($InfoSchichtID); + HelferLogin("max2@example.com", "hola234", 0); + $helfer = $_SESSION; + $schichten = AlleSchichtenEinesHelfers($helfer['HelferID']); + $erg_old = old\DetailSchicht($dbl, $schichten[0]['SchichtID']); + $erg_new = DetailSchicht($schichten[0]['SchichtID']); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old DetailSchicht returns".var_export($erg_old, true)."\n"; echo "New DetailSchicht returns '".var_export($erg_new, true)."'\n"; } - else echo "DetailSchicht ok"; + else echo "DetailSchicht ok\n"; } function TestBeteiligteHelfer(){ @@ -609,4 +613,5 @@ TestSchichtIdArrayEinesHelfers(); TestAlleSchichtenEinesHelfersVonJetzt(); TestSchichtenSummeEinesHelfers(); TestLogSchichtEingabe(); +TestDetailSchicht(); ?> From a2abd8b5549e8f919c749547ae5b44e969b6d2a4 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 09:04:04 +0100 Subject: [PATCH 34/51] BeteiligteHelfer --- html/SQL.php | 4 +++- html/SQL_old.php | 4 +++- html/testPDO.php | 11 ++++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index a8eb3b2..ae9b79d 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -550,7 +550,9 @@ function BeteiligteHelfer($InfoSchichtID) $db->prepare(__METHOD__,"select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); $db_erg = $db->execute(__METHOD__,["id" => $InfoSchichtID]); $db->onErrorDie(__METHOD__); - return $db_erg; + + $zeile = $db->fetchAll(__METHOD__); + return $zeile; } // ok diff --git a/html/SQL_old.php b/html/SQL_old.php index 0617a8a..166b303 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -525,7 +525,9 @@ function BeteiligteHelfer($db_link, $InfoSchichtID) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } function GetDienste($db_link) diff --git a/html/testPDO.php b/html/testPDO.php index 77a8041..c2d3352 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -361,15 +361,19 @@ function TestDetailSchicht(){ else echo "DetailSchicht ok\n"; } +// ok function TestBeteiligteHelfer(){ $dbl = old\ConnectDB(); - $erg_old = old\BeteiligteHelfer($dbl, $InfoSchichtID); - $erg_new = BeteiligteHelfer($InfoSchichtID); + HelferLogin("max2@example.com", "hola234", 0); + $helfer = $_SESSION; + $schichten = AlleSchichtenEinesHelfers($helfer['HelferID']); + $erg_old = old\BeteiligteHelfer($dbl, $schichten[0]['SchichtID']); + $erg_new = BeteiligteHelfer($schichten[0]['SchichtID']); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old BeteiligteHelfer returns".var_export($erg_old, true)."\n"; echo "New BeteiligteHelfer returns '".var_export($erg_new, true)."'\n"; } - else echo "BeteiligteHelfer ok"; + else echo "BeteiligteHelfer ok\n"; } // ok @@ -614,4 +618,5 @@ TestAlleSchichtenEinesHelfersVonJetzt(); TestSchichtenSummeEinesHelfers(); TestLogSchichtEingabe(); TestDetailSchicht(); +TestBeteiligteHelfer(); ?> From 173e3578d75158ed709a5e67ac9e96294f47a5da Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 09:16:17 +0100 Subject: [PATCH 35/51] GetDiensteForDay --- html/SQL.php | 18 ++++++++++++++++++ html/SQL_old.php | 5 ++++- html/testPDO.php | 8 +++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index ae9b79d..6f41eb7 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -644,6 +644,24 @@ function DeleteDienst($DienstID, $Rekursiv) } } +function GetDiensteForDay($helferlevel, $datestring) +{ + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT DienstId, Was, Wo, Info FROM Dienst INNER JOIN Schicht USING (DienstID) WHERE HelferLevel=" . $helferlevel . " GROUP BY DienstId HAVING MIN(Von)<:date1 AND MAX(Bis)>:date2 ORDER BY MIN(Von) ASC;"); + + $unixtime = strtotime($datestring); + $date1 = + $date2 = date('Y-m-d', $unixtime); + + $db_erg = $db->execute(__METHOD__,[ + 'date1' => date('Y-m-d', $unixtime + 24 * 60 * 60), + 'date2' => date('Y-m-d', $unixtime) + ]); + $db->onErrorDie(__METHOD__); + $schichten = $db->fetchAll(__METHOD__); + return $schichten; +} + // ok function GetSchichtenForDienstForDay($DienstID, $datestring) { diff --git a/html/SQL_old.php b/html/SQL_old.php index 166b303..9d82e4c 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -649,7 +649,10 @@ function GetDiensteForDay($db_link, $helferlevel, $datestring) echo "GetDienste ungueltige Abfrage"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - return $db_erg; + + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } function GetSchichtenForDienstForDay($db_link, $DienstID, $datestring) diff --git a/html/testPDO.php b/html/testPDO.php index c2d3352..1df4be7 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -447,15 +447,16 @@ function TestDeleteDienst(){ else echo "DeleteDienst ok\n"; } +// ok function TestGetDiensteForDay(){ $dbl = old\ConnectDB(); - $erg_old = old\GetDiensteForDay($dbl, $helferlevel, $datestring); - $erg_new = GetDiensteForDay($helferlevel, $datestring); + $erg_old = old\GetDiensteForDay($dbl, 2, "2024-02-16"); + $erg_new = GetDiensteForDay(2, "2024-02-16"); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old GetDiensteForDay returns".var_export($erg_old, true)."\n"; echo "New GetDiensteForDay returns '".var_export($erg_new, true)."'\n"; } - else echo "GetDiensteForDay ok"; + else echo "GetDiensteForDay ok\n"; } // ok @@ -619,4 +620,5 @@ TestSchichtenSummeEinesHelfers(); TestLogSchichtEingabe(); TestDetailSchicht(); TestBeteiligteHelfer(); +TestGetDiensteForDay(); ?> From 199f43ae28b99a2aad9ebbe16e3b346311a54391 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 09:23:28 +0100 Subject: [PATCH 36/51] AlleHelferSchichtenUebersicht --- html/SQL.php | 9 +++++++-- html/SQL_old.php | 4 +++- html/testPDO.php | 4 +++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 6f41eb7..2f34408 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -776,10 +776,15 @@ function DeleteSchicht($SchichtID, $Rekursiv) function AlleHelferSchichtenUebersicht() { $db = DB::getInstance(); - $db->prepare(__METHOD__,"select Helfer.HelferID as AliasHelferID,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"); + $sql = "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"; + $sql = $sql . " UNION ALL "; + $sql = $sql . "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,'-' as Was,0 as Dauer from Helfer,EinzelSchicht where not exists(select 1 from EinzelSchicht where Helfer.HelferID=EinzelSchicht.HelferID)"; + $db->prepare(__METHOD__,$sql); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); - return $db_erg; + + $zeilen = $db->fetchAll(__METHOD__); + return $zeilen; } diff --git a/html/SQL_old.php b/html/SQL_old.php index 9d82e4c..e87e473 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -786,7 +786,9 @@ function AlleHelferSchichtenUebersicht($db_link) echo "AlleHelferSchichtenUebersicht ungueltige Abfrage"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - return $db_erg; + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } diff --git a/html/testPDO.php b/html/testPDO.php index 1df4be7..5994dc8 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -535,6 +535,7 @@ function TestDeleteSchicht(){ else echo "DeleteSchicht ok"; } +// ok function TestAlleHelferSchichtenUebersicht(){ $dbl = old\ConnectDB(); $erg_old = old\AlleHelferSchichtenUebersicht($dbl); @@ -543,7 +544,7 @@ function TestAlleHelferSchichtenUebersicht(){ echo "Old AlleHelferSchichtenUebersicht returns".var_export($erg_old, true)."\n"; echo "New AlleHelferSchichtenUebersicht returns '".var_export($erg_new, true)."'\n"; } - else echo "AlleHelferSchichtenUebersicht ok"; + else echo "AlleHelferSchichtenUebersicht ok\n"; } function TestDatenbankAufDeutsch(){ @@ -621,4 +622,5 @@ TestLogSchichtEingabe(); TestDetailSchicht(); TestBeteiligteHelfer(); TestGetDiensteForDay(); +TestAlleHelferSchichtenUebersicht(); ?> From e7837574cecafd9203d753153de58c93250b80ad Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 09:33:13 +0100 Subject: [PATCH 37/51] DatenbankAufDeutsch --- html/testPDO.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/html/testPDO.php b/html/testPDO.php index 5994dc8..921a9e3 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -547,15 +547,12 @@ function TestAlleHelferSchichtenUebersicht(){ else echo "AlleHelferSchichtenUebersicht ok\n"; } +// ok function TestDatenbankAufDeutsch(){ $dbl = old\ConnectDB(); $erg_old = old\DatenbankAufDeutsch($dbl); $erg_new = DatenbankAufDeutsch(); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old DatenbankAufDeutsch returns".var_export($erg_old, true)."\n"; - echo "New DatenbankAufDeutsch returns '".var_export($erg_new, true)."'\n"; - } - else echo "DatenbankAufDeutsch ok"; + echo "DatenbankAufDeutsch ok\n"; } function TestLastInsertId(){ @@ -623,4 +620,5 @@ TestDetailSchicht(); TestBeteiligteHelfer(); TestGetDiensteForDay(); TestAlleHelferSchichtenUebersicht(); +TestDatenbankAufDeutsch(); ?> From 9e13a7f6c96d45439854d1ae4970400f4673874b Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 10:14:26 +0100 Subject: [PATCH 38/51] LastInsertId --- html/SQL.php | 10 ++++++++++ html/testPDO.php | 14 +++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 2f34408..07d817a 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -796,6 +796,16 @@ function DatenbankAufDeutsch() $db->onErrorDie(__METHOD__); } +function LastInsertId() +{ + $db = DB::getInstance(); + $db->prepare(__METHOD__,"SELECT LAST_INSERT_ID()"); + $db_erg = $db->execute(__METHOD__); + $db->onErrorDie(__METHOD__); + + $zeile = $db->fetch(__METHOD__); + return $zeile['LAST_INSERT_ID()']; +} function HelferLevel() { diff --git a/html/testPDO.php b/html/testPDO.php index 921a9e3..5132830 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -550,20 +550,19 @@ function TestAlleHelferSchichtenUebersicht(){ // ok function TestDatenbankAufDeutsch(){ $dbl = old\ConnectDB(); - $erg_old = old\DatenbankAufDeutsch($dbl); - $erg_new = DatenbankAufDeutsch(); + old\DatenbankAufDeutsch($dbl); + DatenbankAufDeutsch(); echo "DatenbankAufDeutsch ok\n"; } +// ok, checked by hand (will be different for both connections) function TestLastInsertId(){ $dbl = old\ConnectDB(); + $dienste = GetDienste(); + Old\NewSchicht($dbl, $dienste[0]["DienstID"], "2024-02-17T10:30", "2024-02-17T12:00", 2, "01:30"); $erg_old = old\LastInsertId($dbl); $erg_new = LastInsertId(); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old LastInsertId returns".var_export($erg_old, true)."\n"; - echo "New LastInsertId returns '".var_export($erg_new, true)."'\n"; - } - else echo "LastInsertId ok"; + echo "LastInsertId ok\n"; } function TestHelferLevel(){ @@ -621,4 +620,5 @@ TestBeteiligteHelfer(); TestGetDiensteForDay(); TestAlleHelferSchichtenUebersicht(); TestDatenbankAufDeutsch(); +TestLastInsertId(); ?> From c05745e5751ba385bde3d7ddbfbc0a8ffa01530a Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 10:35:01 +0100 Subject: [PATCH 39/51] HelferLevel --- html/SQL.php | 6 ++++-- html/SQL_old.php | 5 ++++- html/testPDO.php | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 07d817a..c89cc97 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -811,9 +811,11 @@ function HelferLevel() { $db = DB::getInstance(); $db->prepare(__METHOD__,"select HelferLevel,HelferLevelBeschreibung from HelferLevel"); - $db_erg = $stmt->execute(__METHOD__); + $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); - return $db_erg; + + $zeilen = $db->fetchAll(__METHOD__); + return $zeilen; } // TODO: als Array zurueckgeben (CreateHelfer anpassen) // TODO: diff --git a/html/SQL_old.php b/html/SQL_old.php index e87e473..d09ee4b 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -825,7 +825,10 @@ function HelferLevel($db_link) echo "Konnte HelferLevel nicht abfragen"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - return $db_erg; + + while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + array_pop($zeilen); + return $zeilen; } // TODO: als Array zurueckgeben (CreateHelfer anpassen) // TODO: diff --git a/html/testPDO.php b/html/testPDO.php index 5132830..173885e 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -565,6 +565,7 @@ function TestLastInsertId(){ echo "LastInsertId ok\n"; } +// ok function TestHelferLevel(){ $dbl = old\ConnectDB(); $erg_old = old\HelferLevel($dbl); @@ -573,7 +574,7 @@ function TestHelferLevel(){ echo "Old HelferLevel returns".var_export($erg_old, true)."\n"; echo "New HelferLevel returns '".var_export($erg_new, true)."'\n"; } - else echo "HelferLevel ok"; + else echo "HelferLevel ok\n"; } function TestDebugAusgabeDbErgebnis(){ @@ -621,4 +622,5 @@ TestGetDiensteForDay(); TestAlleHelferSchichtenUebersicht(); TestDatenbankAufDeutsch(); TestLastInsertId(); +TestHelferLevel(); ?> From 013f8037e522f28806dddef0f76c346463579bc3 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 11:01:30 +0100 Subject: [PATCH 40/51] HelferVonSchichtLoeschen_SchichtID --- html/SQL.php | 2 +- html/SQL_old.php | 2 +- html/testPDO.php | 26 ++++++++++++-------------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index c89cc97..1d7a65e 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -516,7 +516,7 @@ function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann - LogSchichtEingabe($db_link, $HelferID, $SchichtID, -1, "entfernt", $AdminID); + LogSchichtEingabe($HelferID, $SchichtID, -1, "entfernt", $AdminID); // Lösche Einzelschicht $db = DB::getInstance(); diff --git a/html/SQL_old.php b/html/SQL_old.php index d09ee4b..9ab6883 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -472,7 +472,7 @@ function HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID, $AdminI function HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $AdminID = 0) { $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $SchichtId = mysqli_real_escape_string($db_link, $SchichtId); + $SchichtID = mysqli_real_escape_string($db_link, $SchichtID); // Log vor Löschen, damit Einzelschicht abgefragt werden kann diff --git a/html/testPDO.php b/html/testPDO.php index 173885e..cfe2218 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -335,15 +335,23 @@ function TestHelferVonSchichtLoeschen(){ else echo "HelferVonSchichtLoeschen ok\n"; } +// ok function TestHelferVonSchichtLoeschen_SchichtID(){ $dbl = old\ConnectDB(); - $erg_old = old\HelferVonSchichtLoeschen_SchichtID($dbl, $HelferID, $SchichtID, $AdminID = 0); - $erg_new = HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0); + $schichten = AlleSchichten(1, 2); + HelferLogin("max2@example.com", "hola234", 0); + $helfer1 = $_SESSION; + HelferSchichtZuweisen($helfer1['HelferID'], $schichten[1]['SchichtID'],0); + HelferLogin("max3@example.com", "hola531", 0); + $helfer2 = $_SESSION; + HelferSchichtZuweisen($helfer2['HelferID'], $schichten[1]['SchichtID'],0); + $erg_old = old\HelferVonSchichtLoeschen_SchichtID($dbl,$helfer1['HelferID'], $schichten[1]['SchichtID']); + $erg_new = HelferVonSchichtLoeschen_SchichtID($helfer2['HelferID'], $schichten[1]['SchichtID']); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old HelferVonSchichtLoeschen_SchichtID returns".var_export($erg_old, true)."\n"; echo "New HelferVonSchichtLoeschen_SchichtID returns '".var_export($erg_new, true)."'\n"; } - else echo "HelferVonSchichtLoeschen_SchichtID ok"; + else echo "HelferVonSchichtLoeschen_SchichtID ok\n"; } // ok @@ -577,17 +585,6 @@ function TestHelferLevel(){ else echo "HelferLevel ok\n"; } -function TestDebugAusgabeDbErgebnis(){ - $dbl = old\ConnectDB(); - $erg_old = old\DebugAusgabeDbErgebnis($dbl); - $erg_new = DebugAusgabeDbErgebnis(); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old DebugAusgabeDbErgebnis returns".var_export($erg_old, true)."\n"; - echo "New DebugAusgabeDbErgebnis returns '".var_export($erg_new, true)."'\n"; - } - else echo "DebugAusgabeDbErgebnis ok"; -} - TestCreateHelfer(); TestHelferIstVorhanden(); TestHelferLogin(); @@ -623,4 +620,5 @@ TestAlleHelferSchichtenUebersicht(); TestDatenbankAufDeutsch(); TestLastInsertId(); TestHelferLevel(); +TestHelferVonSchichtLoeschen_SchichtID(); ?> From 3c53822b9b568aebe4bbbacf1180370e0c5fbcda Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 11:32:55 +0100 Subject: [PATCH 41/51] DeleteSchicht --- html/SQL_old.php | 1 - html/testPDO.php | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/html/SQL_old.php b/html/SQL_old.php index 9ab6883..34c9cce 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -762,7 +762,6 @@ function DeleteSchicht($db_link, $SchichtID, $Rekursiv) // Eintrag löschen $sql = "DELETE FROM Schicht where SchichtID=" . $SchichtID; - echo $sql; $db_erg = mysqli_query($db_link, $sql); if (! $db_erg) { echo "Fehler Change Dienst"; diff --git a/html/testPDO.php b/html/testPDO.php index cfe2218..e69abba 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -532,15 +532,20 @@ function TestNewSchicht(){ else echo "NewSchicht ok\n"; } +// ok function TestDeleteSchicht(){ $dbl = old\ConnectDB(); - $erg_old = old\DeleteSchicht($dbl, $SchichtID, $Rekursiv); - $erg_new = DeleteSchicht($SchichtID, $Rekursiv); + $dienste = GetDienste(); + NewSchicht($dienste[0]["DienstID"], "2024-02-17T10:30", "2024-02-17T12:00", 2, "01:30"); + NewSchicht($dienste[0]["DienstID"], "2024-02-17T10:30", "2024-02-17T12:00", 2, "01:30"); + $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); + $erg_old = old\DeleteSchicht($dbl, $schichten[4]["SchichtID"], false); + $erg_new = DeleteSchicht($schichten[5]["SchichtID"], false); if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ echo "Old DeleteSchicht returns".var_export($erg_old, true)."\n"; echo "New DeleteSchicht returns '".var_export($erg_new, true)."'\n"; } - else echo "DeleteSchicht ok"; + else echo "DeleteSchicht ok\n"; } // ok @@ -621,4 +626,5 @@ TestDatenbankAufDeutsch(); TestLastInsertId(); TestHelferLevel(); TestHelferVonSchichtLoeschen_SchichtID(); +TestDeleteSchicht(); ?> From 91329f6c48b1e2314c617cb2486afc92f94b98a9 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 13:38:40 +0100 Subject: [PATCH 42/51] HelferLoeschen --- helferdb_structure_mariadb.sql | 4 ++++ html/SQL.php | 27 ++++++++--------------- html/SQL_old.php | 11 +++++----- html/testPDO.php | 39 ++++++++++++++++++++++++++-------- 4 files changed, 48 insertions(+), 33 deletions(-) diff --git a/helferdb_structure_mariadb.sql b/helferdb_structure_mariadb.sql index aff07d2..b106b24 100644 --- a/helferdb_structure_mariadb.sql +++ b/helferdb_structure_mariadb.sql @@ -36,6 +36,10 @@ CREATE TABLE `HelferLevel` ( `HelferLevel` int(11) DEFAULT NULL, `HelferLevelBeschreibung` varchar(255) DEFAULT NULL ); +INSERT INTO HelferLevel(HelferLevel, HelferLevelBeschreibung) +VALUES (1,'Orga'); +INSERT INTO HelferLevel(HelferLevel, HelferLevelBeschreibung) +VALUES (2,'Teilnehmer'); DROP TABLE IF EXISTS `Schicht`; CREATE TABLE `Schicht` ( `SchichtID` int(11) NOT NULL AUTO_INCREMENT, diff --git a/html/SQL.php b/html/SQL.php index 1d7a65e..cc7a2ef 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -340,33 +340,24 @@ function AlleSchichtenEinesHelfers($HelferID) } // FIXME -function HelferLoeschen($db_link, $HelferID, $AdminID) +function HelferLoeschen($HelferID, $AdminID) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"Delete from Helfer where HelferID=:id"); - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("Delete from Helfer where HelferID='$HelferID'"); - $stmt_prepared = true; + $helfer = Helferdaten($HelferID); + if(count($helfer) == 1){ + $HelferName = $helfer[0]['Name']; } - $db_erg = Helferdaten($db_link, $HelferID); - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { - $HelferName = $zeile['Name']; - //echo "HelferName=$HelferName<br>"; - } + $schichten = AlleSchichtenEinesHelfers($HelferID); - $db_erg = AlleSchichtenEinesHelfers($db_link, $HelferID); - - $AnzahlHelferschichten = mysqli_num_rows($db_erg); + $AnzahlHelferschichten = count($schichten); if ($AnzahlHelferschichten == 0) { - $sql = "Delete from Helfer where HelferID='$HelferID'"; - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $db->execute(__METHOD__,["id" => $HelferID]); if (! $db_erg) { echo "Helfer $HelferName konnte nicht gelöscht werden<br>"; - echo "$sql <br>"; return -2; } else { echo "Helfer $HelferName (HelferID:$HelferID) wurde erfolgreich geloescht<br>"; diff --git a/html/SQL_old.php b/html/SQL_old.php index 34c9cce..28e21a6 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -289,15 +289,14 @@ function HelferLoeschen($db_link, $HelferID, $AdminID) $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $db_erg = Helferdaten($db_link, $HelferID); - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { - $HelferName = $zeile['Name']; - //echo "HelferName=$HelferName<br>"; + $helfer = Helferdaten($db_link, $HelferID); + if(count($helfer) == 1){ + $HelferName = $helfer[0]['Name']; } - $db_erg = AlleSchichtenEinesHelfers($db_link, $HelferID); + $schichten = AlleSchichtenEinesHelfers($db_link, $HelferID); - $AnzahlHelferschichten = mysqli_num_rows($db_erg); + $AnzahlHelferschichten = count($schichten); if ($AnzahlHelferschichten == 0) { $sql = "Delete from Helfer where HelferID='$HelferID'"; $db_erg = mysqli_query($db_link, $sql); diff --git a/html/testPDO.php b/html/testPDO.php index e69abba..632a16f 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -227,18 +227,38 @@ function TestAlleSchichtenEinesHelfers(){ else echo "AlleSchichtenEinesHelfers ok\n"; } +// ok function TestHelferLoeschen(){ $dbl = old\ConnectDB(); - $erg_old = old\HelferLoeschen($dbl, $HelferID, $AdminID); -var_dump($erg_old); - $erg_new = HelferLoeschen($HelferID, $AdminID); -var_dump($erg_new); -die("--\n"); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferLoeschen returns".var_export($erg_old, true)."\n"; - echo "New HelferLoeschen returns '".var_export($erg_new, true)."'\n"; + HelferLogin("max2@example.com", "hola234", 0); + $helfer1 = $_SESSION; + HelferLogin("max3@example.com", "hola531", 0); + $helfer2 = $_SESSION; + ob_start(); + $erg_old1 = old\HelferLoeschen($dbl, $helfer1['HelferID'],0); + $erg_new1 = HelferLoeschen($helfer2['HelferID'],0); + $schichten = AlleSchichtenEinesHelfers($helfer1['HelferID']); + foreach($schichten as $schicht) + { + HelferVonSchichtLoeschen($helfer1['HelferID'], $schicht['EinzelSchichtID']); } - else echo "HelferLoeschen ok"; + $schichten = AlleSchichtenEinesHelfers($helfer2['HelferID']); + foreach($schichten as $schicht) + { + HelferVonSchichtLoeschen($helfer2['HelferID'], $schicht['EinzelSchichtID']); + } + $erg_old2 = old\HelferLoeschen($dbl, $helfer1['HelferID'],0); + $erg_new2 = HelferLoeschen($helfer2['HelferID'],0); + ob_end_clean(); + if((gettype($erg_old1) != gettype($erg_new1)) || ($erg_old1 != $erg_new1)){ + echo "Old HelferLoeschen returns".var_export($erg_old1, true)."\n"; + echo "New HelferLoeschen returns '".var_export($erg_new1, true)."'\n"; + } + else if((gettype($erg_old2) != gettype($erg_new2)) || ($erg_old2 != $erg_new2)){ + echo "Old HelferLoeschen returns".var_export($erg_old2, true)."\n"; + echo "New HelferLoeschen returns '".var_export($erg_new2, true)."'\n"; + } + else echo "HelferLoeschen ok\n"; } // ok @@ -627,4 +647,5 @@ TestLastInsertId(); TestHelferLevel(); TestHelferVonSchichtLoeschen_SchichtID(); TestDeleteSchicht(); +TestHelferLoeschen(); ?> From 68d405eda4f7cea966ac706c41ef134add05b238 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Sun, 17 Mar 2024 14:59:18 +0100 Subject: [PATCH 43/51] Fix code for new functions --- html/Admin.php | 10 +++--- html/AdminAlleSchichten.php | 56 +++++++++++++------------------ html/AdminDienste.php | 30 ++++++++--------- html/AdminHelferUebersicht.php | 6 ++-- html/AdminMeineSchichten.php | 53 +++++++++++++----------------- html/AdminUserdaten.php | 12 +++---- html/AlleSchichten.php | 48 +++++++++++---------------- html/Ausdrucke.php | 20 ++++++------ html/CreateHelfer.php | 6 ++-- html/MeineSchichten.php | 47 +++++++++++--------------- html/ReadLog.php | 6 ++-- html/SQL.php | 60 +++++++++++++++++++++------------- html/SQL_old.php | 8 ++--- html/UrlLogin.php | 6 ++-- html/Userdaten.php | 8 ++--- html/_login.php | 2 +- html/index.php | 10 +++--- 17 files changed, 182 insertions(+), 206 deletions(-) diff --git a/html/Admin.php b/html/Admin.php index 7cf08ab..cf41d60 100644 --- a/html/Admin.php +++ b/html/Admin.php @@ -26,7 +26,7 @@ if ($AdminStatus != 1) { <?php -DatenbankAufDeutsch($db_link); +DatenbankAufDeutsch(); $AliasHelferID = 0; @@ -47,8 +47,8 @@ if ($AliasHelferID != 0) { } //echo "AliasHelfer=$AliasHelferID <br>"; -$zeilen = Helferdaten($db_link, $HelferID); -while ($zeilen as $zeile) { +$zeilen = Helferdaten($HelferID); +foreach ($zeilen as $zeile) { $HelferName = $zeile['Name']; $HelferIsAdmin = $zeile['Admin']; } @@ -83,8 +83,8 @@ while ($zeilen as $zeile) { <th><b>Helfer als Admin ä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 - $zeilen = HelferListe($db_link); -while ($zeilen as $zeile) { + $zeilen = HelferListe(); +foreach ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>"; } else { diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index ab2f307..a196b50 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -42,7 +42,7 @@ if (isset($_POST['InfoMeineSchichtID'])) { unset($InfoAlleSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoMeineSchichtID); + $zeile = DetailSchicht($InfoMeineSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -59,7 +59,7 @@ if (isset($_GET['InfoAlleSchichtID'])) { unset($InfoMeineSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); + $zeile = DetailSchicht($InfoAlleSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -72,12 +72,12 @@ if (isset($_GET['InfoAlleSchichtID'])) { // Beteiligte Helfer Holen - $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); + $helfer = BeteiligteHelfer($InfoAlleSchichtID); $x = 0; - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + foreach ($helfer as $zeile) { $MitHelferID[$x] = $zeile['HelferID']; $MitHelfer[$x] = $zeile['Name']; $MitHelferHandy[$x] = $zeile['Handy']; @@ -94,8 +94,8 @@ if (isset($_GET['ZeitBereich'])) { function HelferAuswahlButton($db_link, $AliasHelferID) { echo '<b>Helfer wählen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">'; - $zeilen = HelferListe($db_link); - while ($zeilen as $zeile) { + $zeilen = HelferListe(); + foreach ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>"; } else { @@ -118,8 +118,8 @@ HelferAuswahlButton($db_link, $AliasHelferID); $_SESSION["AliasHelferID"] = $AliasHelferID; $AdminID = $_SESSION["AdminID"]; -$zeilen = Helferdaten($db_link, $HelferID); -while ($zeilen as $zeile) { +$zeilen = Helferdaten($HelferID); +foreach ($zeilen as $zeile) { $HelferName = $zeile['Name']; } @@ -151,7 +151,7 @@ if (isset($_POST['plusschicht'])) { if (empty($messages)) { // Helfer Schicht zuweisen - $db_erg = HelferSchichtZuweisen($db_link, $AliasHelferID, $SchichtId, $AdminID); + $db_erg = HelferSchichtZuweisen($AliasHelferID, $SchichtId, $AdminID); // Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird $HelferName = ''; @@ -176,7 +176,7 @@ if (isset($_POST['minusschicht'])) { if (empty($messages)) { // Helfer aus Schicht entfernen - $db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $AliasHelferID, $SchichtID, $AdminID); + $db_erg = HelferVonSchichtLoeschen_SchichtID($AliasHelferID, $SchichtID, $AdminID); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -190,12 +190,11 @@ if (isset($_POST['minusschicht'])) { /// Ausgabe auf Deutsch umstellen ///////////////////////////////////////////////////////////////////////// - DatenbankAufDeutsch($db_link); + DatenbankAufDeutsch(); // Zusammenfassung Eigener Schichten - $db_erg = SchichtenSummeEinesHelfers($db_link, $AliasHelferID); - $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + $zeile = SchichtenSummeEinesHelfers($AliasHelferID); echo '<table id="customers"><tr class="header"><th onclick="window.location.href=\'AdminMeineSchichten.php\'">'; echo " Dienstplan von $HelferName (Zusammenfassung)<br>"; @@ -240,29 +239,29 @@ 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-05-18 00:00:00", "2200-05-19 00:00:00", -1); + $db_erg = AlleSchichtenImZeitbereich("2000-05-18 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-05-18 00:00:00", -1); + $db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2023-05-18 00:00:00", -1); } if ($ZeitBereich == 3) { // Do - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-18 00:00:00", "2023-05-19 00:00:00", -1); + $db_erg = AlleSchichtenImZeitbereich("2023-05-18 00:00:00", "2023-05-19 00:00:00", -1); } if ($ZeitBereich == 4) { // Fr - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-19 00:00:00", "2023-05-20 00:00:00", -1); + $db_erg = AlleSchichtenImZeitbereich("2023-05-19 00:00:00", "2023-05-20 00:00:00", -1); } if ($ZeitBereich == 5) { // Sa - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-20 00:00:00", "2023-05-21 00:00:00", -1); + $db_erg = AlleSchichtenImZeitbereich("2023-05-20 00:00:00", "2023-05-21 00:00:00", -1); } if ($ZeitBereich == 6) { // So - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-21 00:00:00", "2023-05-22 00:00:00", -1); + $db_erg = AlleSchichtenImZeitbereich("2023-05-21 00:00:00", "2023-05-22 00:00:00", -1); } if ($ZeitBereich == 7) { // Danach - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-22 00:00:00", "2223-05-22 00:00:00", -1); + $db_erg = AlleSchichtenImZeitbereich("2023-05-22 00:00:00", "2223-05-22 00:00:00", -1); } // fuer Anzahlanzeige in Ueberschrift - $iAlleSchichtenCount = AlleSchichtenCount($db_link); - $iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link); + $iAlleSchichtenCount = AlleSchichtenCount(); + $iBelegteSchichtenCount = AlleBelegteSchichtenCount(); //echo "<p><button name='addschicht' value='0'><b>↩</b></button></p>"; @@ -329,13 +328,13 @@ if ($addschicht != '0') { $OldTag = ""; $OldWas = ""; // um Zeilen mit von mir belegten Schichten hervorzuheben - $MeineDienste = SchichtIdArrayEinesHelfers($db_link, $AliasHelferID); + $MeineDienste = SchichtIdArrayEinesHelfers($AliasHelferID); //print_r($MeineDienste); echo '</table>'; echo '<table id="customers">'; - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + foreach ($MeineDienste as $zeile) { if ($dienstsort == '1') { $Tag = $zeile['Tag']; @@ -406,15 +405,6 @@ if ($addschicht != '0') { echo "</table>"; } - - - - - - -mysqli_free_result($db_erg); - - ?> </form> diff --git a/html/AdminDienste.php b/html/AdminDienste.php index edc7f9b..652fa36 100644 --- a/html/AdminDienste.php +++ b/html/AdminDienste.php @@ -27,7 +27,7 @@ if ($AdminStatus != 1) { <?php -DatenbankAufDeutsch($db_link); +DatenbankAufDeutsch(); $DienstID = $_SESSION["DienstID"]; $SchichtID = $_SESSION["SchichtID"]; @@ -54,7 +54,7 @@ if (isset($_POST['ChangeDienst'])) { $Leiter = $_POST['Dienst-Leiter']; $Gruppe = $_POST['Dienst-Gruppe']; $HelferLevel = $_POST['HelferLevel']; - ChangeDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); + ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); } if (isset($_POST['NewDienst'])) { @@ -64,12 +64,12 @@ if (isset($_POST['NewDienst'])) { $Leiter = $_POST['Dienst-Leiter']; $Gruppe = $_POST['Dienst-Gruppe']; $HelferLevel = $_POST['HelferLevel']; - NewDienst($db_link, $DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); + NewDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel); } if (isset($_POST['DeleteDienst'])) { - if (!DeleteDienst($db_link, $DienstID, false)) { + if (!DeleteDienst($DienstID, false)) { echo "Erst Schichten des Dienstes Löschen!"; } } @@ -80,7 +80,7 @@ if (isset($_POST['ChangeSchicht'])) { $Bis = $_POST['Schicht-Bis']; $Soll = $_POST['Schicht-Soll']; - ChangeSchicht($db_link, $SchichtID, $Von, $Bis, $Soll); + ChangeSchicht($SchichtID, $Von, $Bis, $Soll); } @@ -89,12 +89,12 @@ if (isset($_POST['NewSchicht'])) { $Bis = $_POST['Schicht-Bis']; $Soll = $_POST['Schicht-Soll']; - NewSchicht($db_link, $DienstID, $Von, $Bis, $Soll); + NewSchicht($DienstID, $Von, $Bis, $Soll); } if (isset($_POST['DeleteSchicht'])) { - if (!DeleteSchicht($db_link, $SchichtID, false)) { + if (!DeleteSchicht($SchichtID, false)) { echo "Erst Helfer aus Schicht austragen<br>"; } } @@ -131,7 +131,7 @@ if (isset($_POST['DienstSearch'])) { <?php -$zeilen = GetDienste($db_link); +$zeilen = GetDienste(); $Was = ""; $Wo = ""; @@ -140,7 +140,7 @@ $Leiter = ""; $Gruppe = ""; $HelferLevel = ""; -while ($zeilen as $zeile){ +foreach ($zeilen as $zeile){ if ($zeile['DienstID'] != $DienstID) { echo "<option value='" . $zeile['DienstID'] . "'>" . $zeile['Was'] . "</option>"; } else { @@ -190,8 +190,8 @@ echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</bu <!-- <input name="Dienst-Leiter" type="text" value="<?php echo htmlspecialchars($Leiter ?? '')?>" > --> <?php echo "<select name='Dienst-Leiter'>"; - $zeilen = HelferListe($db_link); - while ($zeilen as $zeile) { + $zeilen = HelferListe(); + foreach ($zeilen as $zeile) { if ($zeile['HelferID'] != $Leiter) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</option>"; } else { @@ -208,8 +208,8 @@ echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</bu <?php //echo "#####".$Gruppe."#####"; echo "<select name='Dienst-Gruppe'>"; - $db_erg = GetDiensteChilds($db_link, 0); - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + $dienste = GetDiensteChilds(0); + foreach ($dienste as $zeile) { if ($zeile['DienstID'] != $Gruppe) { echo "<option value='" . $zeile['DienstID'] . "'>" . $zeile['Was'] . "</option>"; } else { @@ -251,9 +251,9 @@ echo "<p><noscript><button name='ShowSchichten' value='1'>Schichten Anzeigen</bu $Soll = 1; -$db_erg = GetSchichtenEinesDienstes($db_link, $DienstID); +$schichten = GetSchichtenEinesDienstes($DienstID); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +foreach ($schichten as $zeile) { if ($SchichtID == 0) { $SchichtID = $zeile['SchichtID']; } diff --git a/html/AdminHelferUebersicht.php b/html/AdminHelferUebersicht.php index 3d74ca8..b07e510 100644 --- a/html/AdminHelferUebersicht.php +++ b/html/AdminHelferUebersicht.php @@ -32,7 +32,7 @@ if ($AdminStatus != 1) { <?php -DatenbankAufDeutsch($db_link); +DatenbankAufDeutsch(); //$DienstID =$_SESSION["DienstID"]; //$SchichtID =$_SESSION["SchichtID"]; @@ -73,13 +73,13 @@ echo "<br><br><table class='commontable' style='page-break-before:always'>"; </table> <table class="commontable"> <?php -$db_erg = AlleHelferSchichtenUebersicht($db_link); +$db_erg = AlleHelferSchichtenUebersicht(); $dauer = 0; $i = 0; $OldHelferName = ""; $EinzelDienstStunden = ""; $HelferUeberschrift = ""; -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +foreach ($db_erg as $zeile) { $HelferName = $zeile["Name"]; $AliasHelferID = $zeile["AliasHelferID"]; //echo $HelferName." ".$AliasHelferID."<br>"; diff --git a/html/AdminMeineSchichten.php b/html/AdminMeineSchichten.php index 135e1e0..62ce9a4 100644 --- a/html/AdminMeineSchichten.php +++ b/html/AdminMeineSchichten.php @@ -38,7 +38,7 @@ if (isset($_POST['InfoMeineSchichtID'])) { unset($InfoAlleSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoMeineSchichtID); + $zeile = DetailSchicht($InfoMeineSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -55,7 +55,7 @@ if (isset($_GET['InfoAlleSchichtID'])) { unset($InfoMeineSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); + $zeile = DetailSchicht($InfoAlleSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -68,12 +68,12 @@ if (isset($_GET['InfoAlleSchichtID'])) { // Beteiligte Helfer Holen - $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); + $helfer = BeteiligteHelfer($InfoAlleSchichtID); $x = 0; - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + foreach ($helfer as $zeile) { $MitHelferID[$x] = $zeile['HelferID']; $MitHelfer[$x] = $zeile['Name']; $MitHelferHandy[$x] = $zeile['Handy']; @@ -84,8 +84,8 @@ if (isset($_GET['InfoAlleSchichtID'])) { function HelferAuswahlButton($db_link, $AliasHelferID) { echo '<b>Helfer wählen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">'; - $zeilen = HelferListe($db_link); - while ($zeilen as $zeile) { + $zeilen = HelferListe(); + foreach ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>"; } else { @@ -112,9 +112,9 @@ HelferAuswahlButton($db_link, $AliasHelferID); $_SESSION["AliasHelferID"] = $AliasHelferID; $AdminID = $_SESSION["AdminID"]; -$zeilen = Helferdaten($db_link, $AliasHelferID); +$zeilen = Helferdaten($AliasHelferID); -while ($zeilen as $zeile) { +foreach ($zeilen as $zeile) { $HelferName = $zeile['Name']; } @@ -136,7 +136,7 @@ if (isset($_POST['Del'])) { if (empty($messages)) { - $db_erg = HelferVonSchichtLoeschen($db_link, $AliasHelferID, $EinzelSchichtID, $HelferID); + $db_erg = HelferVonSchichtLoeschen($AliasHelferID, $EinzelSchichtID, $HelferID); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -176,7 +176,7 @@ if (isset($_POST['sent'])) { if (empty($messages)) { // Helfer Schicht zuweisen - $db_erg = HelferSchichtZuweisen($db_link, $AliasHelferID, $SchichtId, $HelferID); + $db_erg = HelferSchichtZuweisen($AliasHelferID, $SchichtId, $HelferID); // Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird $HelferName = ''; @@ -196,20 +196,15 @@ if (isset($_POST['sent'])) { /// Ausgabe auf Deutsch umstellen ///////////////////////////////////////////////////////////////////////// - DatenbankAufDeutsch($db_link); + DatenbankAufDeutsch(); /// Alle Schichten Des Helfers Anzeigen //////////////////////////////////////////////////////// -$db_erg = AlleSchichtenEinesHelfers($db_link, $AliasHelferID); +$schichten = AlleSchichtenEinesHelfers($AliasHelferID); -if (! $db_erg) { - echo "AlleSchichten des Helfes ungültige Abfrage"; - die('Ungültige Abfrage: ' . mysqli_error()); -} - - $iSQLCount = mysqli_num_rows($db_erg); + $iSQLCount = count($schichten); //$iSQLCount = 3; echo '<table id="customers">'; @@ -227,21 +222,21 @@ echo '<table id="customers">'; -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=\'DetailsSchichten.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>"; +foreach($schichten as $schicht) { + //echo '<tr title="Details anzeigen" onclick="parent.DetailsSchichten.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$schicht['SchichtID'].'#Info\';" >'; + echo '<tr title="Details anzeigen" onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID=' . $schicht['SchichtID'] . '#Info\';" >'; + echo "<td>" . $schicht['Was'] . "</td>"; + echo "<td>" . $schicht['Ab'] . "</td>"; + echo "<td>" . $schicht['Bis'] . "</td>"; + echo "<td>" . "<p><button title='Schicht entfernen' name='Del' value='" . $schicht['EinzelSchichtID'] . "'>-</button></p>" . "</td>"; echo "</tr>"; } echo "</table>"; echo "<br><br>"; -$iAlleSchichtenCount = AlleSchichtenCount($db_link); -$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link); +$iAlleSchichtenCount = AlleSchichtenCount(); +$iBelegteSchichtenCount = AlleBelegteSchichtenCount(); echo '<table id="customers" onclick="window.location.href=\'AdminAlleSchichten.php\'">'; echo "<tr>"; @@ -249,10 +244,6 @@ echo '<table id="customers" onclick="window.location.href=\'AdminAlleSchichten.p echo "</tr>"; echo "</table>"; - -mysqli_free_result($db_erg); - - ?> </form> diff --git a/html/AdminUserdaten.php b/html/AdminUserdaten.php index cc32491..879e622 100644 --- a/html/AdminUserdaten.php +++ b/html/AdminUserdaten.php @@ -15,8 +15,8 @@ if ($AdminStatus != 1) { function HelferAuswahlButton($db_link, $AliasHelferID) { echo '<b>Helfer wählen:<b> <form style="display:inline-block;" method=post><select style="height:33px;width:350px;" name="AliasHelfer" id="AliasHelfer" onchange="submit()">'; - $zeilen = HelferListe($db_link); - while ($zeilen as $zeile) { + $zeilen = HelferListe(); + foreach ($zeilen as $zeile) { if ($AliasHelferID != $zeile['HelferID']) { echo "<option value='" . $zeile['HelferID'] . "'>" . $zeile['Name'] . "</optionen>"; } else { @@ -87,7 +87,7 @@ if (isset($_POST['change'])) { } if (empty($messages)) { // Helferdaten Ändern - HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $AliasHelferID, $HelferIsAdmin, $HelferID); + HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $AliasHelferID, $HelferIsAdmin, $HelferID); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -104,17 +104,17 @@ if (isset($_POST['change'])) { /////////////////////////////////////////////////////////////// if (isset($_POST['del'])) { - HelferLoeschen($db_link, $AliasHelferID, $AdminID); + HelferLoeschen($AliasHelferID, $AdminID); } //////////////////////////////////////////////////////////////// // Helferdate holen /////////////////////////////////////////////////////////////// -$db_erg = Helferdaten($db_link, $AliasHelferID); +$db_erg = Helferdaten($AliasHelferID); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { $HelferName = $zeile['Name']; $HelferEmail = $zeile['Email']; $HelferHandy = $zeile['Handy']; diff --git a/html/AlleSchichten.php b/html/AlleSchichten.php index c3641cc..70898fb 100644 --- a/html/AlleSchichten.php +++ b/html/AlleSchichten.php @@ -46,7 +46,7 @@ if (isset($_POST['InfoMeineSchichtID'])) { unset($InfoAlleSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoMeineSchichtID); + $zeile = DetailSchicht($InfoMeineSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -63,7 +63,7 @@ if (isset($_GET['InfoAlleSchichtID'])) { unset($InfoMeineSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); + $zeile = DetailSchicht($InfoAlleSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -76,12 +76,12 @@ if (isset($_GET['InfoAlleSchichtID'])) { // Beteiligte Helfer Holen - $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); + $helfer = BeteiligteHelfer($InfoAlleSchichtID); $x = 0; - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + foreach ($helfer as $zeile) { $MitHelferID[$x] = $zeile['HelferID']; $MitHelfer[$x] = $zeile['Name']; $MitHelferHandy[$x] = $zeile['Handy']; @@ -123,7 +123,7 @@ if (isset($_POST['plusschicht'])) { if (empty($messages)) { // Helfer Schicht zuweisen - $db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtId); + $db_erg = HelferSchichtZuweisen($HelferID, $SchichtId); // Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird $HelferName = ''; @@ -148,7 +148,7 @@ if (isset($_POST['minusschicht'])) { if (empty($messages)) { // Helfer aus Schicht entfernen - $db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID); + $db_erg = HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -162,12 +162,11 @@ if (isset($_POST['minusschicht'])) { /// Ausgabe auf Deutsch umstellen ///////////////////////////////////////////////////////////////////////// - DatenbankAufDeutsch($db_link); + DatenbankAufDeutsch(); // Zusammenfassung Eigener Schichten - $db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID); - $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + $zeile = SchichtenSummeEinesHelfers($HelferID); echo '<table class="commontable"><tr class="header"><th onclick="window.location.href=\'MeineSchichten.php\'">'; echo '<img src="Bilder/PfeilRechts2.png" style="width:30px;height:30px;align:middle;">' . " Mein Dienstplan ("; @@ -212,29 +211,29 @@ 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); + $db_erg = AlleSchichtenImZeitbereich("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-05-18 00:00:00", $HelferLevel); + $db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2023-05-18 00:00:00", $HelferLevel); } if ($ZeitBereich == 3) { // Do - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-18 00:00:00", "2023-05-19 00:00:00", $HelferLevel); + $db_erg = AlleSchichtenImZeitbereich("2023-05-18 00:00:00", "2023-05-19 00:00:00", $HelferLevel); } if ($ZeitBereich == 4) { // Fr - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-19 00:00:00", "2023-05-20 00:00:00", $HelferLevel); + $db_erg = AlleSchichtenImZeitbereich("2023-05-19 00:00:00", "2023-05-20 00:00:00", $HelferLevel); } if ($ZeitBereich == 5) { // Sa - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-20 00:00:00", "2023-05-21 00:00:00", $HelferLevel); + $db_erg = AlleSchichtenImZeitbereich("2023-05-20 00:00:00", "2023-05-21 00:00:00", $HelferLevel); } if ($ZeitBereich == 6) { // So - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-21 00:00:00", "2023-05-22 00:00:00", $HelferLevel); + $db_erg = AlleSchichtenImZeitbereich("2023-05-21 00:00:00", "2023-05-22 00:00:00", $HelferLevel); } if ($ZeitBereich == 7) { // Danach - $db_erg = AlleSchichtenImZeitbereich($db_link, "2023-05-22 00:00:00", "2223-05-22 00:00:00", $HelferLevel); + $db_erg = AlleSchichtenImZeitbereich("2023-05-22 00:00:00", "2223-05-22 00:00:00", $HelferLevel); } // fuer Anzahlanzeige in Ueberschrift - $iAlleSchichtenCount = AlleSchichtenCount($db_link); - $iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link); + $iAlleSchichtenCount = AlleSchichtenCount(); + $iBelegteSchichtenCount = AlleBelegteSchichtenCount(); echo "<button type='button' onclick='expand_all_table_rows();'>Alles Ausklappen</button>"; //echo "<p><button name='addschicht' value='0'><b>↩</b></button></p>"; @@ -294,12 +293,12 @@ if ($addschicht != '0') { $OldTag = ""; $OldWas = ""; // um Zeilen mit von mir belegten Schichten hervorzuheben - $MeineDienste = SchichtIdArrayEinesHelfers($db_link, $HelferID); + $MeineDienste = SchichtIdArrayEinesHelfers($HelferID); //print_r($MeineDienste); echo '</table>'; echo '<table id="customers">'; - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + foreach ($MeineDienste as $zeile) { if ($dienstsort == '1') { $Tag = $zeile['Tag']; @@ -370,15 +369,6 @@ if ($addschicht != '0') { echo "</table>"; } - - - - - - -mysqli_free_result($db_erg); - - ?> </form> diff --git a/html/Ausdrucke.php b/html/Ausdrucke.php index 2e3af9e..edabb5c 100644 --- a/html/Ausdrucke.php +++ b/html/Ausdrucke.php @@ -27,7 +27,7 @@ $db_link = mysqli_connect( MYSQL_KENNWORT, MYSQL_DATENBANK ); -DatenbankAufDeutsch($db_link); +DatenbankAufDeutsch(); require '_login.php'; @@ -45,14 +45,14 @@ require '_login.php'; echo '<table id="customers" >'; -$db_erg = GetDiensteChilds($db_link, 0); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +$dienste = GetDiensteChilds(0); +foreach ($dienste as $zeile) { 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)) { + $dienste = GetDiensteChilds($zeile["DienstID"]); + foreach ($dienste as $zeile) { echo "<tr><td>"; echo $zeile["Was"]; echo "</td></tr>"; @@ -64,7 +64,7 @@ echo "</table>"; -$db_erg = AlleSchichtenImZeitbereich($db_link, "2000-05-18 00:00:00", "2200-05-19 00:00:00"); +$db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2200-05-19 00:00:00"); $OldWas = ""; echo "<br><br><table id='customers' style='page-break-before:always'>"; @@ -92,8 +92,8 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { echo $zeile["Bis"]; echo "</td><td>"; - $db_erg2 = BeteiligteHelfer($db_link, $zeile["SchichtID"]); - while ($zeile = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) { + $helfer = BeteiligteHelfer($zeile["SchichtID"]); + foreach ($helfer as $zeile) { echo $zeile["Name"]; echo " "; echo $zeile["Handy"]; @@ -112,8 +112,8 @@ echo "<br><br><table id='customers' style='page-break-before:always'>"; <th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button>   <b>Übersicht Helfer und Ihre Schichten DAS 2023</b></th> </tr> <?php -$db_erg = AlleHelferSchichtenUebersicht($db_link); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +$db_erg = AlleHelferSchichtenUebersicht(); +foreach ($db_erg as $zeile) { $HelferName = $zeile["Name"]; if ($HelferName != $OldHelferName) { diff --git a/html/CreateHelfer.php b/html/CreateHelfer.php index 7fc647e..7ecb604 100644 --- a/html/CreateHelfer.php +++ b/html/CreateHelfer.php @@ -68,7 +68,7 @@ if (isset($_POST['sent'])) { if (empty($messages)) { - $db_erg = CreateHelfer($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel); + $db_erg = CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel); if ($db_erg) { //$insertID = mysql_insert_id(); //echo "InserId = ".$insertID; @@ -139,9 +139,9 @@ if (isset($_POST['sent'])) { <tr><td> <select name="helfer-level"> <?php -$db_erg = HelferLevel($db_link); +$db_erg = HelferLevel(); $selected = ""; -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +foreach ($db_erg as $zeile) { $HelferLevel = $zeile['HelferLevel']; $HelferLevelBeschreibung = $zeile['HelferLevelBeschreibung']; if ($HelferLevel == 1) { diff --git a/html/MeineSchichten.php b/html/MeineSchichten.php index e9b822a..3d4e053 100644 --- a/html/MeineSchichten.php +++ b/html/MeineSchichten.php @@ -41,7 +41,7 @@ if (isset($_POST['InfoMeineSchichtID'])) { unset($InfoAlleSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoMeineSchichtID); + $zeile = DetailSchicht($InfoMeineSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -58,7 +58,7 @@ if (isset($_GET['InfoAlleSchichtID'])) { unset($InfoMeineSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); + $zeile = DetailSchicht($InfoAlleSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -71,12 +71,12 @@ if (isset($_GET['InfoAlleSchichtID'])) { // Beteiligte Helfer Holen - $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); + $helfer = BeteiligteHelfer($InfoAlleSchichtID); $x = 0; - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + foreach ($helfer as $zeile) { $MitHelferID[$x] = $zeile['HelferID']; $MitHelfer[$x] = $zeile['Name']; $MitHelferHandy[$x] = $zeile['Handy']; @@ -106,7 +106,7 @@ if (isset($_POST['login'])) { $HelferPasswort = $_POST['helfer-passwort']; if (empty($messages)) { - HelferLogin($db_link, $HelferEmail, $HelferPasswort, 0); + HelferLogin($HelferEmail, $HelferPasswort, 0); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -195,7 +195,7 @@ if (isset($_POST['Del'])) { if (empty($messages)) { - $db_erg = HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID); + $db_erg = HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -235,7 +235,7 @@ if (isset($_POST['sent'])) { if (empty($messages)) { // Helfer Schicht zuweisen - $db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtId); + $db_erg = HelferSchichtZuweisen($HelferID, $SchichtId); // Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird $HelferName = ''; @@ -255,20 +255,15 @@ if (isset($_POST['sent'])) { /// Ausgabe auf Deutsch umstellen ///////////////////////////////////////////////////////////////////////// - DatenbankAufDeutsch($db_link); + DatenbankAufDeutsch(); /// Alle Schichten Des Helfers Anzeigen //////////////////////////////////////////////////////// -$db_erg = AlleSchichtenEinesHelfers($db_link, $HelferID); +$schichten = AlleSchichtenEinesHelfers($HelferID); -if (! $db_erg) { - echo "AlleSchichten des Helfes ungültige Abfrage"; - die('Ungültige Abfrage: ' . mysqli_error()); -} - - $iSQLCount = mysqli_num_rows($db_erg); + $iSQLCount = mysqli_num_rows($schichten); //$iSQLCount = 3; echo '<table id="customers">'; @@ -286,21 +281,21 @@ echo '<table id="customers">'; -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=\'DetailsSchichten.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>"; +foreach ($schichten as $schicht) { + //echo '<tr title="Details anzeigen" onclick="parent.DetailsSchichten.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$schicht['SchichtID'].'#Info\';" >'; + echo '<tr title="Details anzeigen" onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID=' . $schicht['SchichtID'] . '#Info\';" >'; + echo "<td>" . $schicht['Was'] . "</td>"; + echo "<td>" . $schicht['Ab'] . "</td>"; + echo "<td>" . $schicht['Bis'] . "</td>"; + echo "<td>" . "<button title='Schicht entfernen' name='Del' value='" . $schicht['EinzelSchichtID'] . "'>-</button>" . "</td>"; echo "</tr>"; } echo "</table>"; echo "<br><br>"; -$iAlleSchichtenCount = AlleSchichtenCount($db_link); -$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link); +$iAlleSchichtenCount = AlleSchichtenCount(); +$iBelegteSchichtenCount = AlleBelegteSchichtenCount(); echo '<table id="customers" onclick="window.location.href=\'AlleSchichten.php\'">'; echo "<tr>"; @@ -308,10 +303,6 @@ echo '<table id="customers" onclick="window.location.href=\'AlleSchichten.php\'" echo "</tr>"; echo "</table>"; - -mysqli_free_result($db_erg); - - ?> </form> diff --git a/html/ReadLog.php b/html/ReadLog.php index c752275..a102f7a 100644 --- a/html/ReadLog.php +++ b/html/ReadLog.php @@ -28,10 +28,10 @@ if (!isset($_SESSION["HelferID"]) || ! $_SESSION["HelferID"] > 0) { $AdminID = $_SESSION["AdminID"]; require 'SQL.php'; $db_link = mysqli_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK); - DatenbankAufDeutsch($db_link); + DatenbankAufDeutsch(); - $zeilen = Helferdaten($db_link, $HelferID); -while ($zeilen as $zeile)) { + $zeilen = Helferdaten($HelferID); +foreach ($zeilen as $zeile)) { $HelferName = $zeile['Name']; $HelferIsAdmin = $zeile['Admin']; } diff --git a/html/SQL.php b/html/SQL.php index cc7a2ef..72bdae1 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -93,7 +93,7 @@ class DB { } } -// ok +// ok ok function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) { // Neuen Helfer anlegen @@ -118,19 +118,18 @@ function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, return $db_erg; } -// ok +// ok ok // testet fuer urllogin, ob Helfer bereits existiert function HelferIstVorhanden($Email) { $db = DB::getInstance(); $db->prepare(__METHOD__,"SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"); $db->execute(__METHOD__,["email" => $Email]); - // TODO Test, that this still works $zeile = $db->fetchAll(__METHOD__); return $zeile[0]['Anzahl']; } -// ok +// ok ok //TODO: pruefen, ob Helfer bereits eingeloggt function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) { @@ -162,7 +161,7 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) } } -// ok +// ok ok // Liste der Helfer fuer Admin-Seite //TODO: HelferLevel function HelferListe() @@ -175,7 +174,7 @@ function HelferListe() return $helfer; } -// ok +// ok ok function Helferdaten($HelferID) { $db = DB::getInstance(); @@ -187,7 +186,7 @@ function Helferdaten($HelferID) } -// ok +// ok ok function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) { $db = DB::getInstance(); @@ -257,6 +256,7 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP return $db_erg; } +// ok ok (but unused?) function AlleSchichten($Sort, $HelferLevel = 1) { $db = DB::getInstance(); @@ -276,6 +276,7 @@ function AlleSchichten($Sort, $HelferLevel = 1) return $schichten; } +// ok ok function AlleSchichtenCount($HelferLevel = 1) { @@ -288,7 +289,7 @@ function AlleSchichtenCount($HelferLevel = 1) return $zeile[0]['Anzahl']; } - +// ok ok function AlleBelegteSchichtenCount($HelferLevel = 1) { $db = DB::getInstance(); @@ -299,7 +300,7 @@ function AlleBelegteSchichtenCount($HelferLevel = 1) return $zeile[0]['Anzahl']; } - +// ok ok function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) { // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden @@ -328,7 +329,7 @@ function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) return $zeilen; } - +// ok ok function AlleSchichtenEinesHelfers($HelferID) { $db = DB::getInstance(); @@ -339,7 +340,7 @@ function AlleSchichtenEinesHelfers($HelferID) return $zeilen; } -// FIXME +// ok ok function HelferLoeschen($HelferID, $AdminID) { @@ -370,6 +371,7 @@ function HelferLoeschen($HelferID, $AdminID) } } +// ok ok function SchichtIdArrayEinesHelfers($HelferID) { // Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn @@ -384,6 +386,7 @@ function SchichtIdArrayEinesHelfers($HelferID) return($schichtIDs); } +// ok ok function AlleSchichtenEinesHelfersVonJetzt($HelferID) { // TODO: fix GETDATE() array to string conversion @@ -402,6 +405,7 @@ function AlleSchichtenEinesHelfersVonJetzt($HelferID) return $zeilen; } +// ok ok function SchichtenSummeEinesHelfers($HelferID) { @@ -416,8 +420,7 @@ function SchichtenSummeEinesHelfers($HelferID) return $zeilen; } - -// ok (?) +// ok ok function LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) { $db = DB::getInstance(); @@ -458,6 +461,7 @@ function LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $Ad } } +// ok ok function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) { // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert @@ -489,6 +493,7 @@ function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) return $db_erg; } +// ok ok function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann @@ -504,6 +509,7 @@ function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) return $db_erg; } +// ok ok function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann @@ -521,6 +527,7 @@ function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) return $db_erg; } +// ok ok function DetailSchicht($InfoSchichtID) { $db = DB::getInstance(); @@ -535,6 +542,7 @@ function DetailSchicht($InfoSchichtID) return $zeile[0]; } +// ok ok function BeteiligteHelfer($InfoSchichtID) { $db = DB::getInstance(); @@ -546,7 +554,7 @@ function BeteiligteHelfer($InfoSchichtID) return $zeile; } -// ok +// ok ok function GetDienste() { $db = DB::getInstance(); @@ -557,7 +565,7 @@ function GetDienste() return $dienste; } -// ok +// ok ok function GetDiensteChilds($DienstID) { $db = DB::getInstance(); @@ -568,7 +576,7 @@ function GetDiensteChilds($DienstID) return $dienste; } -// ok +// ok ok function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); @@ -586,7 +594,7 @@ function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLeve $db->onErrorDie(__METHOD__); } -// ok +// ok ok function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); @@ -609,7 +617,7 @@ function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) } } -// ok +// ok ok function DeleteDienst($DienstID, $Rekursiv) { if ($Rekursiv) { @@ -635,6 +643,7 @@ function DeleteDienst($DienstID, $Rekursiv) } } +// ok ok (not used?) function GetDiensteForDay($helferlevel, $datestring) { $db = DB::getInstance(); @@ -653,7 +662,7 @@ function GetDiensteForDay($helferlevel, $datestring) return $schichten; } -// ok +// ok ok (unused?) function GetSchichtenForDienstForDay($DienstID, $datestring) { $db = DB::getInstance(); @@ -670,7 +679,7 @@ function GetSchichtenForDienstForDay($DienstID, $datestring) } -// ok +// ok ok function GetSchichtenEinesDienstes($DienstID) { //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; @@ -682,7 +691,7 @@ function GetSchichtenEinesDienstes($DienstID) return $schichten; } -// ok +// ok ok function ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer) { $db = DB::getInstance(); @@ -699,7 +708,7 @@ function ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer) $db->onErrorDie(__METHOD__); } -// ok +// ok ok function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) { @@ -738,6 +747,7 @@ function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) } } +// ok ok function DeleteSchicht($SchichtID, $Rekursiv) { $db = DB::getInstance(); @@ -764,6 +774,7 @@ function DeleteSchicht($SchichtID, $Rekursiv) } +// ok ok function AlleHelferSchichtenUebersicht() { $db = DB::getInstance(); @@ -779,6 +790,7 @@ function AlleHelferSchichtenUebersicht() } +// ok ok function DatenbankAufDeutsch() { $db = DB::getInstance(); @@ -787,6 +799,7 @@ function DatenbankAufDeutsch() $db->onErrorDie(__METHOD__); } +// ok ok (unused?) function LastInsertId() { $db = DB::getInstance(); @@ -798,6 +811,7 @@ function LastInsertId() return $zeile['LAST_INSERT_ID()']; } +// ok ok function HelferLevel() { $db = DB::getInstance(); @@ -828,7 +842,7 @@ function HelferLevel() // return $results; //} -//FIXME +//FIXME (not in use for production code anyway) function DebugAusgabeDbErgebnis($db_erg) { // Ausgabe auf Browser Console diff --git a/html/SQL_old.php b/html/SQL_old.php index 28e21a6..01ba164 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -11,7 +11,7 @@ function ConnectDB() MYSQL_KENNWORT, MYSQL_DATENBANK ); - DatenbankAufDeutsch($db_link); + DatenbankAufDeutsch(); return $db_link; } @@ -446,7 +446,7 @@ function HelferSchichtZuweisen($db_link, $HelferID, $SchichtId, $AdminID = 0) echo $HelferID; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - LogSchichtEingabe($db_link, $HelferID, $SchichtId, -1, "eingetragen", $AdminID); + LogSchichtEingabe($HelferID, $SchichtId, -1, "eingetragen", $AdminID); return $db_erg; } @@ -457,7 +457,7 @@ function HelferVonSchichtLoeschen($db_link, $HelferID, $EinzelSchichtID, $AdminI // Log vor Löschen, damit Einzelschicht abgefragt werden kann - LogSchichtEingabe($db_link, $HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID); + LogSchichtEingabe($HelferID, -1, $EinzelSchichtID, "entfernt", $AdminID); // Lösche Einzelschicht $sql = "Delete From EinzelSchicht Where EinzelSchichtID =" . $EinzelSchichtID; @@ -475,7 +475,7 @@ function HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID, $Ad // Log vor Löschen, damit Einzelschicht abgefragt werden kann - LogSchichtEingabe($db_link, $HelferID, $SchichtID, -1, "entfernt", $AdminID); + LogSchichtEingabe($HelferID, $SchichtID, -1, "entfernt", $AdminID); // Lösche Einzelschicht $sql = "Delete From EinzelSchicht Where SchichtID = $SchichtID and HelferID = $HelferID limit 1;"; diff --git a/html/UrlLogin.php b/html/UrlLogin.php index 01cb933..11cc129 100644 --- a/html/UrlLogin.php +++ b/html/UrlLogin.php @@ -81,14 +81,14 @@ if ($success == 1 && $email != "") { } error_log("2email: " . $HelferEmail . ",level: " . $helfer_level . ",success: " . $success); // Helfer Anlegen, wenn er nicht existiert - if (! HelferIstVorhanden($db_link, $HelferEmail)) { + if (! HelferIstVorhanden($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($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($HelferEmail, $HelferPasswort, 0); echo '<html><head><meta http-equiv="Refresh" content="0; URL=index.php" /></head></html>'; exit; } diff --git a/html/Userdaten.php b/html/Userdaten.php index f44d170..30a4fc9 100644 --- a/html/Userdaten.php +++ b/html/Userdaten.php @@ -52,7 +52,7 @@ if (isset($_POST['change'])) { $HelferNewPasswort = $_POST['helfer-newpasswort']; if (empty($messages)) { // Helferdaten Ändern - HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID); + HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -69,10 +69,10 @@ if (isset($_POST['change'])) { // Helferdate holen /////////////////////////////////////////////////////////////// -$zeilen = Helferdaten($db_link, $HelferID); +$zeilen = Helferdaten($HelferID); -while ($zeilen as $zeile)) { +foreach ($zeilen as $zeile)) { $HelferName = $zeile['Name']; $HelferEmail = $zeile['Email']; $HelferHandy = $zeile['Handy']; @@ -99,7 +99,7 @@ if (isset($_POST['login'])) { $HelferPasswort = $_POST['helfer-passwort']; if (empty($messages)) { - HelferLogin($db_link, $HelferEmail, $HelferPasswort, 0); + HelferLogin($HelferEmail, $HelferPasswort, 0); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; diff --git a/html/_login.php b/html/_login.php index 42320d5..787f803 100644 --- a/html/_login.php +++ b/html/_login.php @@ -26,7 +26,7 @@ if (isset($_POST['login'])) { $HelferPasswort = $_POST['helfer-passwort']; if (empty($messages)) { - HelferLogin($db_link, $HelferEmail, $HelferPasswort, 0); + HelferLogin($HelferEmail, $HelferPasswort, 0); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; diff --git a/html/index.php b/html/index.php index 8981092..c1d6e72 100644 --- a/html/index.php +++ b/html/index.php @@ -18,7 +18,7 @@ require 'SQL.php'; $pdo = ConnectDB(); -DatenbankAufDeutsch($pdo); +DatenbankAufDeutsch(); require '_login.php'; @@ -64,20 +64,20 @@ if ($HelferIsAdmin) { //////////////////////////////////////////////////////// //$HelferID=72; -$db_erg = AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID); +$schichten = AlleSchichtenEinesHelfersVonJetzt($HelferID); - $iSQLCount = mysqli_num_rows($db_erg); + $iSQLCount = count($schichten); //$iSQLCount = 3; $iCount = 0; -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC) and $iCount < 3) { +foreach ($schichten as $zeile) { echo "<li>" . $zeile['Ab'] . " " . $zeile['Was'] . "</li>"; $iCount++; + if(iCount>2) break; } - ?> </ul> From d9846e78f02327c4398faec8c8379a2453d7e462 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Mon, 18 Mar 2024 05:54:38 +0100 Subject: [PATCH 44/51] Fix function calls from merge --- html/AdminDienste.php | 2 +- html/AdminUserdaten.php | 8 +-- html/Ausdrucke-alles.php | 23 ++++---- html/Ausdrucke.php | 4 +- html/DetailsSchichten.php | 8 +-- html/SQL.php | 75 +++++++++++++-------------- html/TeilnehmerSchichtenAusdruck.php | 34 ++++++------ html/TeilnehmerSchichtenAusdruck2.php | 16 +++--- html/UrlLogin.php | 2 +- 9 files changed, 81 insertions(+), 91 deletions(-) diff --git a/html/AdminDienste.php b/html/AdminDienste.php index c5e3b41..66a3562 100644 --- a/html/AdminDienste.php +++ b/html/AdminDienste.php @@ -115,7 +115,7 @@ if (isset($_POST['NewSchicht'])) { $Bis = $Temp->format('Y-m-d H:i:s'); } NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer, $HelferName); - $SchichtID = LastInsertId($db_link); + $SchichtID = LastInsertId(); //echo "+".$SchichtID."+"; } diff --git a/html/AdminUserdaten.php b/html/AdminUserdaten.php index b22e210..7dca845 100644 --- a/html/AdminUserdaten.php +++ b/html/AdminUserdaten.php @@ -86,11 +86,7 @@ if (isset($_POST['change'])) { } if (empty($messages)) { // Helferdaten Ändern -<<<<<<< HEAD HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $AliasHelferID, $HelferIsAdmin, $HelferID); -======= - HelferdatenAendern($db_link, $HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $AliasHelferID, $HelferLevel, $HelferIsAdmin, $HelferID); ->>>>>>> main } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -164,9 +160,9 @@ foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { <tr><td> <select name="helfer-level"> <?php -$db_erg = HelferLevel($db_link); +$db_erg = HelferLevel(); $selected = ""; -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +foreach ($db_erg as $zeile) { $HelferLevel = $zeile['HelferLevel']; $HelferLevelBeschreibung = $zeile['HelferLevelBeschreibung']; if ($HelferLevel == 1) { diff --git a/html/Ausdrucke-alles.php b/html/Ausdrucke-alles.php index a022e81..024bf56 100644 --- a/html/Ausdrucke-alles.php +++ b/html/Ausdrucke-alles.php @@ -3,7 +3,6 @@ require_once 'konfiguration.php'; SESSION_START(); require 'SQL.php'; -$db_link = ConnectDB(); require '_login.php'; ?> @@ -33,16 +32,16 @@ require '_login.php'; echo '<table class="commontable" >'; -$db_erg = GetDiensteChilds($db_link, 0); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +$db_erg = GetDiensteChilds(0); +foreach ($db_erg as $zeile) { 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)) { + $db_erg2 = GetDiensteChilds($zeile["DienstID"]); + foreach ($db_erg2 as $zeile2) { echo "<tr><td>"; - echo $zeile["Was"]; + echo $zeile2["Was"]; echo "</td></tr>"; } } @@ -52,7 +51,7 @@ echo "</table>"; -$db_erg = AlleSchichtenImZeitbereich($db_link, "2000-05-18 00:00:00", "2200-05-19 00:00:00"); +$db_erg = AlleSchichtenImZeitbereich("2000-05-18 00:00:00", "2200-05-19 00:00:00"); $OldWas = ""; echo "<br><br><table class='commontable' style='page-break-before:always'>"; @@ -61,7 +60,7 @@ echo "<br><br><table class='commontable' style='page-break-before:always'>"; <th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button>   <b>Übersicht Schichten der Dienste DAS 2023</b></th> </tr> <?php -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +while ($db_erg as $zeile) { $Was = $zeile["Was"]; if ($Was != $OldWas) { @@ -80,8 +79,8 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { echo $zeile["Bis"]; echo "</td><td>"; - $db_erg2 = BeteiligteHelfer($db_link, $zeile["SchichtID"]); - while ($zeile = mysqli_fetch_array($db_erg2, MYSQLI_ASSOC)) { + $db_erg2 = BeteiligteHelfer($zeile["SchichtID"]); + while ($db_erg2 as $zeile) { echo $zeile["Name"]; echo " "; echo $zeile["Handy"]; @@ -100,8 +99,8 @@ echo "<br><br><table class='commontable' style='page-break-before:always'>"; <th><button name="BackHelferdaten" value="1" onclick="window.location.href = 'Admin.php';"><b>↩</b></button>   <b>Übersicht Helfer und Ihre Schichten DAS 2023</b></th> </tr> <?php -$db_erg = AlleHelferSchichtenUebersicht($db_link); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +$db_erg = AlleHelferSchichtenUebersicht(); +while ($db_erg as $zeile) { $HelferName = $zeile["Name"]; if ($HelferName != $OldHelferName) { diff --git a/html/Ausdrucke.php b/html/Ausdrucke.php index de20599..645ab38 100644 --- a/html/Ausdrucke.php +++ b/html/Ausdrucke.php @@ -42,8 +42,8 @@ if ($AliasHelferID != 0) { $_SESSION["AliasHelferID"] = $AliasHelferID; } -$db_erg = Helferdaten($db_link, $HelferID); -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +$db_erg = Helferdaten($HelferID); +foreach ($db_erg as $zeile) { $HelferName = $zeile['Name']; $HelferIsAdmin = $zeile['Admin']; } diff --git a/html/DetailsSchichten.php b/html/DetailsSchichten.php index f653ecf..6a5910b 100644 --- a/html/DetailsSchichten.php +++ b/html/DetailsSchichten.php @@ -27,7 +27,7 @@ if (isset($_GET['InfoAlleSchichtID'])) { unset($InfoMeineSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); + $zeile = DetailSchicht($InfoAlleSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -40,12 +40,12 @@ if (isset($_GET['InfoAlleSchichtID'])) { // Beteiligte Helfer Holen - $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); + $db_erg = BeteiligteHelfer($InfoAlleSchichtID); $x = 0; - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + while ($db_erg as $zeile) { $MitHelferID[$x] = $zeile['HelferID']; $MitHelfer[$x] = $zeile['Name']; $MitHelferHandy[$x] = $zeile['Handy']; @@ -99,7 +99,7 @@ $_SESSION["HelferID"] = $HelferID; /// Ausgabe auf Deutsch umstellen ///////////////////////////////////////////////////////////////////////// - DatenbankAufDeutsch($db_link); + DatenbankAufDeutsch(); /// Alle Schichten Des Helfers Anzeigen //////////////////////////////////////////////////////// diff --git a/html/SQL.php b/html/SQL.php index 0f8b617..8283e93 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -93,7 +93,7 @@ class DB { } } -// ok ok +// ok ok ok function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel = 1) { // Neuen Helfer anlegen @@ -118,7 +118,7 @@ function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, return $db_erg; } -// ok ok +// ok ok ok // testet fuer urllogin, ob Helfer bereits existiert function HelferIstVorhanden($Email) { @@ -129,7 +129,7 @@ function HelferIstVorhanden($Email) return $zeile[0]['Anzahl']; } -// ok ok +// ok ok ok //TODO: pruefen, ob Helfer bereits eingeloggt function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) { @@ -161,7 +161,7 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) } } -// ok ok +// ok ok ok // Liste der Helfer fuer Admin-Seite //TODO: HelferLevel function HelferListe() @@ -174,7 +174,7 @@ function HelferListe() return $helfer; } -// ok ok +// ok ok ok function Helferdaten($HelferID) { $db = DB::getInstance(); @@ -186,7 +186,7 @@ function Helferdaten($HelferID) } -// ok ok +// ok ok ok function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) { $db = DB::getInstance(); @@ -256,7 +256,7 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP return $db_erg; } -// ok ok (but unused?) +// ok ok ok (but unused?) function AlleSchichten($Sort, $HelferLevel = 1) { $db = DB::getInstance(); @@ -276,7 +276,7 @@ function AlleSchichten($Sort, $HelferLevel = 1) return $schichten; } -// ok ok +// ok ok ok function AlleSchichtenCount($HelferLevel = 1) { @@ -289,7 +289,7 @@ function AlleSchichtenCount($HelferLevel = 1) return $zeile[0]['Anzahl']; } -// ok ok +// ok ok ok function AlleBelegteSchichtenCount($HelferLevel = 1) { $db = DB::getInstance(); @@ -300,7 +300,7 @@ function AlleBelegteSchichtenCount($HelferLevel = 1) return $zeile[0]['Anzahl']; } -// ok ok +// ok ok ak function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) { error_log("AlleSchichtenImZeitbereich Abfrage: $Von, $Bis, $HelferLevel"); @@ -330,7 +330,7 @@ function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) return $zeilen; } -// ok ok +// ok ok ok function AlleSchichtenEinesHelfers($HelferID) { $db = DB::getInstance(); @@ -341,7 +341,7 @@ function AlleSchichtenEinesHelfers($HelferID) return $zeilen; } -// ok ok +// ok ok ok function HelferLoeschen($HelferID, $AdminID) { @@ -372,7 +372,7 @@ function HelferLoeschen($HelferID, $AdminID) } } -// ok ok +// ok ok ok function SchichtIdArrayEinesHelfers($HelferID) { // Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn @@ -387,7 +387,7 @@ function SchichtIdArrayEinesHelfers($HelferID) return($schichtIDs); } -// ok ok +// ok ok ok function AlleSchichtenEinesHelfersVonJetzt($HelferID) { // TODO: fix GETDATE() array to string conversion @@ -406,7 +406,7 @@ function AlleSchichtenEinesHelfersVonJetzt($HelferID) return $zeilen; } -// ok ok +// ok ok ok function SchichtenSummeEinesHelfers($HelferID) { @@ -421,7 +421,7 @@ function SchichtenSummeEinesHelfers($HelferID) return $zeilen; } -// ok ok +// ok ok ok function LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $AdminID = 0) { $db = DB::getInstance(); @@ -462,7 +462,7 @@ function LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $Ad } } -// ok ok +// ok ok ok function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) { // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert @@ -494,7 +494,7 @@ function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) return $db_erg; } -// ok ok +// ok ok ok function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann @@ -510,7 +510,7 @@ function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) return $db_erg; } -// ok ok +// ok ok ok function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) { // Log vor Löschen, damit Einzelschicht abgefragt werden kann @@ -528,7 +528,7 @@ function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) return $db_erg; } -// ok ok +// ok ok ok function DetailSchicht($InfoSchichtID) { $db = DB::getInstance(); @@ -543,7 +543,7 @@ function DetailSchicht($InfoSchichtID) return $zeile[0]; } -// ok ok +// ok ok ok function BeteiligteHelfer($InfoSchichtID) { $db = DB::getInstance(); @@ -555,7 +555,7 @@ function BeteiligteHelfer($InfoSchichtID) return $zeile; } -// ok ok +// ok ok ok function GetDienste() { $db = DB::getInstance(); @@ -566,7 +566,7 @@ function GetDienste() return $dienste; } -// ok ok +// ok ok ok function GetDiensteChilds($DienstID) { $db = DB::getInstance(); @@ -577,7 +577,7 @@ function GetDiensteChilds($DienstID) return $dienste; } -// ok ok +// ok ok ok function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); @@ -595,7 +595,7 @@ function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLeve $db->onErrorDie(__METHOD__); } -// ok ok +// ok ok ok function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); @@ -618,7 +618,7 @@ function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) } } -// ok ok +// ok ok ok function DeleteDienst($DienstID, $Rekursiv) { if ($Rekursiv) { @@ -644,7 +644,7 @@ function DeleteDienst($DienstID, $Rekursiv) } } -// ok ok (not used?) +// ok ok ok function GetDiensteForDay($helferlevel, $datestring) { $db = DB::getInstance(); @@ -663,7 +663,7 @@ function GetDiensteForDay($helferlevel, $datestring) return $schichten; } -// ok ok (unused?) +// ok ok ok function GetSchichtenForDienstForDay($DienstID, $datestring) { $db = DB::getInstance(); @@ -679,8 +679,7 @@ function GetSchichtenForDienstForDay($DienstID, $datestring) return $schichten; } - -// ok ok +// ok ok ok function GetSchichtenEinesDienstes($DienstID) { //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; @@ -692,7 +691,7 @@ function GetSchichtenEinesDienstes($DienstID) return $schichten; } -// ok ok +// ok ok ok function ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer) { $db = DB::getInstance(); @@ -709,7 +708,7 @@ function ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer) $db->onErrorDie(__METHOD__); } -// ok ok +// ok ok ok function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) { @@ -748,7 +747,7 @@ function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) } } -// ok ok +// ok ok ok function DeleteSchicht($SchichtID, $Rekursiv) { $db = DB::getInstance(); @@ -774,8 +773,7 @@ function DeleteSchicht($SchichtID, $Rekursiv) } } - -// ok ok +// ok ok ok function AlleHelferSchichtenUebersicht() { $db = DB::getInstance(); @@ -790,8 +788,7 @@ function AlleHelferSchichtenUebersicht() return $zeilen; } - -// ok ok +// ok ok ok function DatenbankAufDeutsch() { $db = DB::getInstance(); @@ -800,7 +797,7 @@ function DatenbankAufDeutsch() $db->onErrorDie(__METHOD__); } -// ok ok (unused?) +// ok ok ok function LastInsertId() { $db = DB::getInstance(); @@ -812,7 +809,7 @@ function LastInsertId() return $zeile['LAST_INSERT_ID()']; } -// ok ok +// ok ok ok function HelferLevel() { $db = DB::getInstance(); diff --git a/html/TeilnehmerSchichtenAusdruck.php b/html/TeilnehmerSchichtenAusdruck.php index b33eb2c..fd975e9 100644 --- a/html/TeilnehmerSchichtenAusdruck.php +++ b/html/TeilnehmerSchichtenAusdruck.php @@ -3,7 +3,6 @@ require_once 'konfiguration.php'; SESSION_START(); require 'SQL.php'; -$db_link = ConnectDB(); require '_login.php'; if ($AdminStatus != 1) { @@ -38,7 +37,7 @@ if (isset($_POST['InfoMeineSchichtID'])) { unset($InfoAlleSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoMeineSchichtID); + $zeile = DetailSchicht($InfoMeineSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -55,7 +54,7 @@ if (isset($_GET['InfoAlleSchichtID'])) { unset($InfoMeineSchichtID); //echo "<b>". $SchichtID . "</b><br>"; - $zeile = DetailSchicht($db_link, $InfoAlleSchichtID); + $zeile = DetailSchicht($InfoAlleSchichtID); $Was = $zeile['Was']; $Wo = $zeile['Wo']; @@ -68,12 +67,12 @@ if (isset($_GET['InfoAlleSchichtID'])) { // Beteiligte Helfer Holen - $db_erg = BeteiligteHelfer($db_link, $InfoAlleSchichtID); + $helfer = BeteiligteHelfer($InfoAlleSchichtID); $x = 0; - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { + foreach ($helfer as $zeile) { $MitHelferID[$x] = $zeile['HelferID']; $MitHelfer[$x] = $zeile['Name']; $MitHelferHandy[$x] = $zeile['Handy']; @@ -114,7 +113,7 @@ if (isset($_POST['plusschicht'])) { if (empty($messages)) { // Helfer Schicht zuweisen - $db_erg = HelferSchichtZuweisen($db_link, $HelferID, $SchichtId); + $db_erg = HelferSchichtZuweisen($HelferID, $SchichtId); // Erfolg vermelden und Skript beenden, damit Formular nicht erneut ausgegeben wird $HelferName = ''; @@ -139,7 +138,7 @@ if (isset($_POST['minusschicht'])) { if (empty($messages)) { // Helfer aus Schicht entfernen - $db_erg = HelferVonSchichtLoeschen_SchichtID($db_link, $HelferID, $SchichtID); + $db_erg = HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID); } else { // Fehlermeldungen ausgeben: echo '<div class="error"><ul>'; @@ -153,20 +152,19 @@ if (isset($_POST['minusschicht'])) { /// Ausgabe auf Deutsch umstellen ///////////////////////////////////////////////////////////////////////// - DatenbankAufDeutsch($db_link); + DatenbankAufDeutsch(); // Zusammenfassung Eigener Schichten - $db_erg = SchichtenSummeEinesHelfers($db_link, $HelferID); - $zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC); + $zeile = SchichtenSummeEinesHelfers($HelferID); /// Schichten Auswahl //////////////////////////////////////////////////////// // fuer Anzahlanzeige in Ueberschrift -$iAlleSchichtenCount = AlleSchichtenCount($db_link); -$iBelegteSchichtenCount = AlleBelegteSchichtenCount($db_link); +$iAlleSchichtenCount = AlleSchichtenCount(); +$iBelegteSchichtenCount = AlleBelegteSchichtenCount(); //echo "<p><button name='addschicht' value='0'><b>↩</b></button></p>"; echo '<table class="commontable">'; @@ -181,13 +179,13 @@ $Bereich = AusgabeZeitbereichZeile($start_date, $ZeitBereich, $TageNamenDeutsch, $MeinVon = $Bereich['MeinVon']; $MeinBis = $Bereich['MeinBis']; -$db_erg = AlleSchichtenImZeitbereich($db_link, $MeinVon, $MeinBis, $HelferLevel); +$db_erg = AlleSchichtenImZeitbereich($MeinVon, $MeinBis, $HelferLevel); //echo "<tr><th class=header> AlleSchichtenImZeitbereich(db_link,$Von,$Bis,$HelferLevel);</th></tr>"; // debug $OldTag = ""; $OldWas = ""; // um Zeilen mit von mir belegten Schichten hervorzuheben -$MeineDienste = SchichtIdArrayEinesHelfers($db_link, $HelferID); +$MeineDienste = SchichtIdArrayEinesHelfers($HelferID); //print_r($MeineDienste); echo "</table>\n"; @@ -206,7 +204,7 @@ echo "<table class='commontable'>\n"; // $db_erg ist aus AlleSchichtenImZeitbereich // und gibt zurueck Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden $OldWas = ""; -while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +while ($db_link as $zeile) { $Tag = $zeile['Tag']; //this should be set above, because we only look at one day $Ab = $zeile['Ab']; $Bis = $zeile['Bis']; @@ -222,11 +220,11 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { echo "<th colspan=5 style='text-align:center'>$Was ($TagKurz)</th></tr>\n"; } // get the people who are already signed up for this shift - $db_erg_helfer = BeteiligteHelfer($db_link, $zeile['SchichtID']); + $db_erg_helfer = BeteiligteHelfer($zeile['SchichtID']); // Wir geben zwei Helfer pro Zeile fuer die selbe Schicht aus while ($Soll > 0) { $Soll = $Soll - 1; - $HelferZeile = mysqli_fetch_array($db_erg_helfer, MYSQLI_ASSOC); + $HelferZeile = array_shift($db_erg_helfer); if (isset($HelferZeile['Name'])) { $Helfername = $HelferZeile['Name']; } else { @@ -237,7 +235,7 @@ while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { echo "<td>$Was <br>$Ab-$Bis</td>"; if ($Soll > 0) { // zweite Spalte nur ausgeben, wenn noch eine Schicht offen ist $Soll = $Soll - 1; - $HelferZeile = mysqli_fetch_array($db_erg_helfer, MYSQLI_ASSOC); // get the next person + $HelferZeile = array_shift($db_erg_helfer); if (isset($HelferZeile['Name'])) { $Helfername = $HelferZeile['Name']; } else { diff --git a/html/TeilnehmerSchichtenAusdruck2.php b/html/TeilnehmerSchichtenAusdruck2.php index d9b1991..6aaf031 100644 --- a/html/TeilnehmerSchichtenAusdruck2.php +++ b/html/TeilnehmerSchichtenAusdruck2.php @@ -34,15 +34,15 @@ $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); + $db_erg = GetDiensteForDay(2, $datestring); + foreach ($db_erg as $zeile) { + $db_erg2 = GetSchichtenForDienstForDay($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)) { + foreach ($db_erg2 as $zeile2) { if ($zeile2["Von"] != $OldVon && $schichten != 0) { while ($schichten < $OldSoll) { $schichten++; @@ -92,15 +92,15 @@ $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); + $db_erg = GetDiensteForDay(1, $datestring); + while ($db_erg as $zeile) { + $db_erg2 = GetSchichtenForDienstForDay($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)) { + foreach ($db_erg2 as $zeile2) { if ($zeile2["Von"] != $OldVon && $schichten != 0) { while ($schichten < $OldSoll) { $schichten++; diff --git a/html/UrlLogin.php b/html/UrlLogin.php index ac6e0da..eba3ff8 100644 --- a/html/UrlLogin.php +++ b/html/UrlLogin.php @@ -77,7 +77,7 @@ if ($success == 1 && $email != "") { // Helfer Anlegen, wenn er nicht existiert if (! HelferIstVorhanden($HelferEmail)) { error_log("Helfer " . $HelferEmail . " nicht vorhanden, lege an"); - error_log("CreateHelfer(db_link,$HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);"); + error_log("CreateHelfer($HelferName,$HelferEmail, $HelferHandy,$HelferPasswort,$HelferLevel);"); $db_erg = CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $HelferLevel); } // Login-Versuch, entweder direkt nach Anlegen oder wenn existiert hat From 8abc400ef63f9032d5c9265d47f7d6bd46e7f099 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 22 Mar 2024 16:43:57 +0100 Subject: [PATCH 45/51] Remove remaining mysqli statements --- html/AdminAlleSchichten.php | 1 - html/AdminDienste.php | 3 -- html/AdminUserdaten.php | 2 +- html/Ausdrucke-alles.php | 8 ---- html/CreateHelfer.php | 7 --- html/DetailsSchichten.php | 11 ----- html/MeineSchichten.php | 2 +- html/ReadLog.php | 2 - html/SQL.php | 72 ---------------------------- html/TeilnehmerSchichtenAusdruck.php | 6 --- 10 files changed, 2 insertions(+), 112 deletions(-) diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index 82d7138..4648b1c 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -3,7 +3,6 @@ require_once 'konfiguration.php'; SESSION_START(); require 'SQL.php'; -$db_link = ConnectDB(); require '_login.php'; if ($AdminStatus != 1) { diff --git a/html/AdminDienste.php b/html/AdminDienste.php index 66a3562..2e18f13 100644 --- a/html/AdminDienste.php +++ b/html/AdminDienste.php @@ -372,9 +372,6 @@ echo "<p><noscript><button name='ShowSchicht' value='1'>Schicht Anzeigen</button <?php -mysqli_free_result($db_erg); - - $_SESSION["DienstID"] = $DienstID; $_SESSION["SchichtID"] = $SchichtID; diff --git a/html/AdminUserdaten.php b/html/AdminUserdaten.php index 7dca845..74de366 100644 --- a/html/AdminUserdaten.php +++ b/html/AdminUserdaten.php @@ -113,7 +113,7 @@ if (isset($_POST['del'])) { $db_erg = Helferdaten($AliasHelferID); -foreach ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { +foreach ($zeilen as $zeile) { $HelferName = $zeile['Name']; $HelferEmail = $zeile['Email']; $HelferHandy = $zeile['Handy']; diff --git a/html/Ausdrucke-alles.php b/html/Ausdrucke-alles.php index 024bf56..40b7f13 100644 --- a/html/Ausdrucke-alles.php +++ b/html/Ausdrucke-alles.php @@ -125,13 +125,5 @@ echo "</table>"; ?> - - -<?php - -mysqli_free_result($db_erg); -?> - - </body> </html> diff --git a/html/CreateHelfer.php b/html/CreateHelfer.php index 0de5de2..3113758 100644 --- a/html/CreateHelfer.php +++ b/html/CreateHelfer.php @@ -158,12 +158,5 @@ foreach ($db_erg as $zeile) { </form> - - -<?php - -mysqli_free_result($db_erg); -?> - </body> </html> diff --git a/html/DetailsSchichten.php b/html/DetailsSchichten.php index 6a5910b..c049e16 100644 --- a/html/DetailsSchichten.php +++ b/html/DetailsSchichten.php @@ -136,17 +136,6 @@ while ($x < $arrayLength) { echo "</table>"; - - - - - - - - -mysqli_free_result($db_erg); - - ?> </form> diff --git a/html/MeineSchichten.php b/html/MeineSchichten.php index dab0f8b..146ba44 100644 --- a/html/MeineSchichten.php +++ b/html/MeineSchichten.php @@ -255,7 +255,7 @@ if (isset($_POST['sent'])) { $schichten = AlleSchichtenEinesHelfers($HelferID); - $iSQLCount = mysqli_num_rows($schichten); + $iSQLCount = count($schichten); //$iSQLCount = 3; echo '<table class="commontable">'; diff --git a/html/ReadLog.php b/html/ReadLog.php index 6ed3df2..4bdb3f1 100644 --- a/html/ReadLog.php +++ b/html/ReadLog.php @@ -28,8 +28,6 @@ require '_login.php'; //check for admin status $HelferID = $_SESSION["HelferID"]; $AdminID = $_SESSION["AdminID"]; - $db_link = mysqli_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK); - DatenbankAufDeutsch(); $zeilen = Helferdaten($HelferID); foreach ($zeilen as $zeile)) { diff --git a/html/SQL.php b/html/SQL.php index 8283e93..6e9f49d 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -820,75 +820,3 @@ function HelferLevel() $zeilen = $db->fetchAll(__METHOD__); return $zeilen; } -// TODO: als Array zurueckgeben (CreateHelfer anpassen) -// TODO: -//function HelferLevel($db_link){ -// $sql = "SELECT HelferLevel, HelferLevelBeschreibung FROM HelferLevel"; -// $db_erg = mysqli_query($db_link, $sql); -// if (!$db_erg) { -// echo "Konnte HelferLevel nicht abfragen"; -// die('Ungueltige Abfrage: ' . mysqli_error($db_link)); -// } -// -// $results = array(); -// while ($row = mysqli_fetch_assoc($db_erg)) { -// $results[] = $row; -// } -// -// mysqli_free_result($db_erg); // Freigabe des Ergebnisobjekts -// -// return $results; -//} - -//FIXME (not in use for production code anyway) -function DebugAusgabeDbErgebnis($db_erg) -{ - // Ausgabe auf Browser Console - - // if(mysqli_num_rows($db_erg) > 0) { - // $fields = mysqli_fetch_fields($db_erg); - // $field_names = []; - // foreach($fields as $field) { - // $field_names[] = $field->name; - // } - // $rows = array(); - // while($row = mysqli_fetch_row($db_erg)) { - // $rows[] = $row; - // } - // - // $js_code = "console.log('Query results:');"; - // $js_code .= "console.log('" . implode('\t', $field_names) . "');"; - // foreach($rows as $row) { - // $js_code .= "console.log('" . implode('\t', $row) . "');"; - // } - // echo "<script>" . $js_code . "</script>"; - // } else { - // echo "Keine Ergebnisse gefunden."; - // } - // - - - // direkte ausgabe in Seite - echo "<table>"; - if (mysqli_num_rows($db_erg) > 0) { - // Tabellenkopf ausgeben - echo "<tr>"; - $fields = mysqli_fetch_fields($db_erg); - foreach ($fields as $field) { - echo "<th>" . $field->name . "</th>"; - } - echo "</tr>"; - - // Tabelleninhalt ausgeben - while ($row = mysqli_fetch_row($db_erg)) { - echo "<tr>"; - foreach ($row as $value) { - echo "<td>" . $value . "</td>"; - } - echo "</tr>"; - } - } else { - echo "<tr><td>Keine Ergebnisse gefunden.</td></tr>"; - } - echo "</table>"; -} diff --git a/html/TeilnehmerSchichtenAusdruck.php b/html/TeilnehmerSchichtenAusdruck.php index fd975e9..28bad3c 100644 --- a/html/TeilnehmerSchichtenAusdruck.php +++ b/html/TeilnehmerSchichtenAusdruck.php @@ -251,12 +251,6 @@ while ($db_link as $zeile) { } echo "</table>\n"; - -// old table, remove later - -mysqli_free_result($db_erg); - - ?> <!--/form--> From 9e9f346fdac31e3c32c57a4656db05172d170f35 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 22 Mar 2024 17:05:23 +0100 Subject: [PATCH 46/51] Fix formatting errors --- html/AdminDienste.php | 2 +- html/AdminMeineSchichten.php | 2 +- html/ReadLog.php | 2 +- html/SQL.php | 258 ++++++++--------- html/SQL_old.php | 33 ++- html/Setup.php | 80 +++-- html/Userdaten.php | 2 +- html/Wizard.php | 127 ++++---- html/index.php | 4 +- html/testPDO.php | 547 +++++++++++++++++++---------------- 10 files changed, 558 insertions(+), 499 deletions(-) diff --git a/html/AdminDienste.php b/html/AdminDienste.php index 2e18f13..24ae838 100644 --- a/html/AdminDienste.php +++ b/html/AdminDienste.php @@ -171,7 +171,7 @@ $Leiter = ""; $Gruppe = ""; $HelferLevel = ""; -foreach ($zeilen as $zeile){ +foreach ($zeilen as $zeile) { if ($zeile['DienstID'] != $DienstID) { echo "<option value='" . $zeile['DienstID'] . "'>" . $zeile['Was'] . "</option>"; } else { diff --git a/html/AdminMeineSchichten.php b/html/AdminMeineSchichten.php index 7ee08f2..8a262bd 100644 --- a/html/AdminMeineSchichten.php +++ b/html/AdminMeineSchichten.php @@ -224,7 +224,7 @@ echo '<table class="commontable">'; -foreach($schichten as $schicht) { +foreach ($schichten as $schicht) { //echo '<tr title="Details anzeigen" onclick="parent.DetailsSchichten.location.href=\'DetailsSchichten.php?InfoAlleSchichtID='.$schicht['SchichtID'].'#Info\';" >'; echo '<tr title="Details anzeigen" onclick="window.location.href=\'DetailsSchichten.php?InfoAlleSchichtID=' . $schicht['SchichtID'] . '#Info\';" >'; echo "<td>" . $schicht['Was'] . "</td>"; diff --git a/html/ReadLog.php b/html/ReadLog.php index 4bdb3f1..b0358ac 100644 --- a/html/ReadLog.php +++ b/html/ReadLog.php @@ -30,7 +30,7 @@ require '_login.php'; $AdminID = $_SESSION["AdminID"]; $zeilen = Helferdaten($HelferID); -foreach ($zeilen as $zeile)) { +foreach ($zeilen as $zeile) { $HelferName = $zeile['Name']; $HelferIsAdmin = $zeile['Admin']; } diff --git a/html/SQL.php b/html/SQL.php index 6e9f49d..2b0b5a9 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -2,7 +2,8 @@ require_once 'konfiguration.php'; -class DB { +class DB +{ private static $instance = null; private static $pdo = null; private static $stmts = array(); @@ -10,20 +11,20 @@ class DB { private function __construct() { self::$pdo = new PDO( - MYSQL_DSN, - MYSQL_BENUTZER, - MYSQL_KENNWORT, - array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING) - ); + MYSQL_DSN, + MYSQL_BENUTZER, + MYSQL_KENNWORT, + array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING) + ); } public static function getInstance() { - if(self::$instance == null){ + if (self::$instance == null) { self::$instance = new DB(); - if(DBTYPE === 'mariadb'){ + if (DBTYPE === 'mariadb') { // Set database to german (FIXME should be configurable) - self::prepare(__METHOD__,"SET lc_time_names = 'de_DE'"); + self::prepare(__METHOD__, "SET lc_time_names = 'de_DE'"); self::execute(__METHOD__); } } @@ -42,19 +43,19 @@ class DB { 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); } public function executeScript($method, $filename, $variant = '') { $sqlFromFile = file_get_contents($filename); $sqlStatements = explode(";", $sqlFromFile); $statementcounter = 0; - foreach($sqlStatements as $sqlStatement){ - if(self::prepare($method, $sqlStatement.";", $variant) == false){ + foreach ($sqlStatements as $sqlStatement) { + if (self::prepare($method, $sqlStatement . ";", $variant) == false) { return array(); }; - $retval[$statementcounter] = self::execute($method,array(),$variant); - if(!is_null(self::pdoErrorCode()) && self::pdoErrorCode() != '00000'){ + $retval[$statementcounter] = self::execute($method, array(), $variant); + if (!is_null(self::pdoErrorCode()) && self::pdoErrorCode() != '00000') { return $retval; } $statementcounter++; @@ -101,9 +102,9 @@ function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, $PasswortHash = password_hash($HelferPasswort, PASSWORD_DEFAULT); $db = DB::getInstance(); - $db->prepare(__METHOD__,"INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel)". + $db->prepare(__METHOD__, "INSERT INTO Helfer(Name,Email,Handy,Status,BildFile,DoReport,Passwort,HelferLevel)" . " VALUES (:name,:email,:handy,:status,:bildfile,:doreport,:passwort,:helferlevel)"); - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, @@ -123,8 +124,8 @@ function CreateHelfer($HelferName, $HelferEmail, $HelferHandy, $HelferPasswort, function HelferIstVorhanden($Email) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"); - $db->execute(__METHOD__,["email" => $Email]); + $db->prepare(__METHOD__, "SELECT count(HelferID) AS Anzahl FROM Helfer WHERE Email = :email"); + $db->execute(__METHOD__, ["email" => $Email]); $zeile = $db->fetchAll(__METHOD__); return $zeile[0]['Anzahl']; } @@ -136,8 +137,8 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) //echo "Test<br>"; // Helfer Suchen $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"); - $db_erg = $db->execute(__METHOD__,["email" => $HelferEmail]); + $db->prepare(__METHOD__, "SELECT HelferID,Admin,Name,Passwort,HelferLevel FROM Helfer WHERE Email=:email"); + $db_erg = $db->execute(__METHOD__, ["email" => $HelferEmail]); if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000') { echo "Login ungueltige Abfrage"; die('Ungueltige Abfrage: ' . $db->errorInfo(__METHOD__)[2]); @@ -167,7 +168,7 @@ function HelferLogin($HelferEmail, $HelferPasswort, $HelferStatus) function HelferListe() { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT HelferID,Name FROM Helfer"); + $db->prepare(__METHOD__, "SELECT HelferID,Name FROM Helfer"); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); $helfer = $db->fetchAll(__METHOD__); @@ -178,8 +179,8 @@ function HelferListe() function Helferdaten($HelferID) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT * FROM Helfer Where HelferID = :helferid"); - $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db->prepare(__METHOD__, "SELECT * FROM Helfer Where HelferID = :helferid"); + $db_erg = $db->execute(__METHOD__, ["helferid" => $HelferID]); $db->onErrorDie(__METHOD__); $helferdaten = $db->fetchAll(__METHOD__); return $helferdaten; @@ -190,30 +191,30 @@ function Helferdaten($HelferID) function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) { $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,Admin=:admin Where HelferId=:id",'password_empty_admin'); - $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort Where HelferId=:id",'password_given'); - $db->prepare(__METHOD__,"UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort,Admin=:admin Where HelferId=:id",'password_given_admin'); + $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,Admin=:admin Where HelferId=:id", 'password_empty_admin'); + $db->prepare(__METHOD__, "UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort Where HelferId=:id", 'password_given'); + $db->prepare(__METHOD__, "UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort,Admin=:admin Where HelferId=:id", 'password_given_admin'); if ($HelferNewPasswort == "") { //$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID; if ($HelferIsAdmin == -1) { - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "id" => $HelferID - ],'password_empty'); - $db->onErrorDie(__METHOD__,'password_empty'); + ], 'password_empty'); + $db->onErrorDie(__METHOD__, 'password_empty'); } else { - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "admin" => $HelferIsAdmin, "id" => $HelferID - ],'password_empty_admin'); - $db->onErrorDie(__METHOD__,'password_empty_admin'); + ], 'password_empty_admin'); + $db->onErrorDie(__METHOD__, 'password_empty_admin'); } echo "<li>Helferdaten geändert</li>"; if ($AdminID != 0) { @@ -225,23 +226,23 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP $HelferNewPasswort = "€" . $HelferNewPasswort . "ß"; $PasswortHash = password_hash($HelferNewPasswort, PASSWORD_DEFAULT); if ($HelferIsAdmin == -1) { - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "passwort" => $PasswortHash, "id" => $HelferID - ],'password_given'); + ], 'password_given'); $db->onErrorDie(__METHOD__, 'password_given'); } else { - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, "passwort" => $PasswortHash, "admin" => $HelferIsAdmin, "id" => $HelferID - ],'password_given_admin'); + ], 'password_given_admin'); $db->onErrorDie(__METHOD__, 'password_given_admin'); } //echo $sql; @@ -260,17 +261,17 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP function AlleSchichten($Sort, $HelferLevel = 1) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Von",'sort_by_von'); - $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Was,Von",'sort_by_was_von'); + $db->prepare(__METHOD__, "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Von", 'sort_by_von'); + $db->prepare(__METHOD__, "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.Helferlevel=:helferlevel order by Was,Von", 'sort_by_was_von'); if ($Sort == '1') { - $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel],'sort_by_von'); - $db->onErrorDie(__METHOD__,'sort_by_von'); - $schichten = $db->fetchAll(__METHOD__,'sort_by_von'); + $db_erg = $db->execute(__METHOD__, ["helferlevel" => $HelferLevel], 'sort_by_von'); + $db->onErrorDie(__METHOD__, 'sort_by_von'); + $schichten = $db->fetchAll(__METHOD__, 'sort_by_von'); } else { - $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel],'sort_by_was_von'); - $db->onErrorDie(__METHOD__,'sort_by_was_von'); - $schichten = $db->fetchAll(__METHOD__,'sort_by_was_von'); + $db_erg = $db->execute(__METHOD__, ["helferlevel" => $HelferLevel], 'sort_by_was_von'); + $db->onErrorDie(__METHOD__, 'sort_by_was_von'); + $schichten = $db->fetchAll(__METHOD__, 'sort_by_was_von'); } return $schichten; @@ -282,8 +283,8 @@ function AlleSchichtenCount($HelferLevel = 1) //$sql = "select SUM(Soll) As Anzahl from SchichtUebersicht where HelferLevel=$HelferLevel"; $db = DB::getInstance(); - $db->prepare(__METHOD__,"select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); - $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel]); + $db->prepare(__METHOD__, "select Sum(Soll) as Anzahl, HelferLevel from SchichtUebersicht,Dienst Where SchichtUebersicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); + $db_erg = $db->execute(__METHOD__, ["helferlevel" => $HelferLevel]); $db->onErrorDie(__METHOD__); $zeile = $db->fetchAll(__METHOD__); return $zeile[0]['Anzahl']; @@ -293,8 +294,8 @@ function AlleSchichtenCount($HelferLevel = 1) function AlleBelegteSchichtenCount($HelferLevel = 1) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); - $db_erg = $db->execute(__METHOD__,["helferlevel" => $HelferLevel]); + $db->prepare(__METHOD__, "select Count(HelferID) As Anzahl from EinzelSchicht,Schicht,Dienst Where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID and HelferLevel=:helferlevel"); + $db_erg = $db->execute(__METHOD__, ["helferlevel" => $HelferLevel]); $db->onErrorDie(__METHOD__); $zeile = $db->fetchAll(__METHOD__); return $zeile[0]['Anzahl']; @@ -307,25 +308,24 @@ function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) // SchichtID, Was, Ab, Bis, Ist, Tag, Soll - Ist und Soll sind die HelferStunden $db = DB::getInstance(); - $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID order by Was,Von",'helferlevel_not_set'); - $db->prepare(__METHOD__,"select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.HelferLevel=:helferlevel order by Was,Von",'helferlevel_set'); + $db->prepare(__METHOD__, "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID order by Was,Von", 'helferlevel_not_set'); + $db->prepare(__METHOD__, "select SchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis,C AS Ist,DATE_FORMAT(Von,'%W %d %M') As Tag, Soll from Dienst,SchichtUebersicht where Von >= :von and Von < :bis and Dienst.DienstID=SchichtUebersicht.DienstID and Dienst.HelferLevel=:helferlevel order by Was,Von", 'helferlevel_set'); if ($HelferLevel == -1) { - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "von" => $Von, "bis" => $Bis - ],'helferlevel_not_set'); - $db->onErrorDie(__METHOD__,'helferlevel_not_set'); - $zeilen = $db->fetchAll(__METHOD__,'helferlevel_not_set'); - } - else { - $db_erg = $db->execute(__METHOD__,[ + ], 'helferlevel_not_set'); + $db->onErrorDie(__METHOD__, 'helferlevel_not_set'); + $zeilen = $db->fetchAll(__METHOD__, 'helferlevel_not_set'); + } else { + $db_erg = $db->execute(__METHOD__, [ "von" => $Von, "bis" => $Bis, "helferlevel" => $HelferLevel - ],'helferlevel_set'); - $db->onErrorDie(__METHOD__,'helferlevel_set'); - $zeilen = $db->fetchAll(__METHOD__,'helferlevel_set'); + ], 'helferlevel_set'); + $db->onErrorDie(__METHOD__, 'helferlevel_set'); + $zeilen = $db->fetchAll(__METHOD__, 'helferlevel_set'); } return $zeilen; } @@ -334,8 +334,8 @@ function AlleSchichtenImZeitbereich($Von, $Bis, $HelferLevel = 1) function AlleSchichtenEinesHelfers($HelferID) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); - $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db->prepare(__METHOD__, "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid order by Von"); + $db_erg = $db->execute(__METHOD__, ["helferid" => $HelferID]); $db->onErrorDie(__METHOD__); $zeilen = $db->fetchAll(__METHOD__); return $zeilen; @@ -346,10 +346,10 @@ function HelferLoeschen($HelferID, $AdminID) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"Delete from Helfer where HelferID=:id"); + $db->prepare(__METHOD__, "Delete from Helfer where HelferID=:id"); $helfer = Helferdaten($HelferID); - if(count($helfer) == 1){ + if (count($helfer) == 1) { $HelferName = $helfer[0]['Name']; } @@ -357,7 +357,7 @@ function HelferLoeschen($HelferID, $AdminID) $AnzahlHelferschichten = count($schichten); if ($AnzahlHelferschichten == 0) { - $db_erg = $db->execute(__METHOD__,["id" => $HelferID]); + $db_erg = $db->execute(__METHOD__, ["id" => $HelferID]); if (! $db_erg) { echo "Helfer $HelferName konnte nicht gelöscht werden<br>"; return -2; @@ -377,8 +377,8 @@ function SchichtIdArrayEinesHelfers($HelferID) { // Array, um Zeilen mit von mir belegten Schichten in der Schichtuebersicht einfaerben zu koennenn $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT SchichtID FROM EinzelSchicht WHERE HelferID = :id"); - $db_erg = $db->execute(__METHOD__,["id" => $HelferID]); + $db->prepare(__METHOD__, "SELECT SchichtID FROM EinzelSchicht WHERE HelferID = :id"); + $db_erg = $db->execute(__METHOD__, ["id" => $HelferID]); $schichtIDs = array(); while ($zeile = $db->fetch(__METHOD__)) { @@ -392,11 +392,11 @@ function AlleSchichtenEinesHelfersVonJetzt($HelferID) { // TODO: fix GETDATE() array to string conversion $db = DB::getInstance(); - $db->prepare(__METHOD__,"select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:id and Bis>:bis order by Von"); + $db->prepare(__METHOD__, "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:id and Bis>:bis order by Von"); //$sql = "select EinzelSchicht.SchichtID ,EinzelSchichtID,Was,DATE_FORMAT(Von,'%a %H:%i') AS Ab,DATE_FORMAT(Bis,'%a %H:%i') AS Bis FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." and Bis>'2023-05-20' order by Von"; - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "id" => $HelferID, "bis" => date("Y-m-d H:i:s") ]); @@ -412,9 +412,9 @@ function SchichtenSummeEinesHelfers($HelferID) //$sql = "select count Schicht.Dauer as Anzahl FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=".$HelferID." order by Von"; $db = DB::getInstance(); - $db->prepare(__METHOD__,"select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid"); + $db->prepare(__METHOD__, "select count(*) as Anzahl, SUM(TIME_TO_SEC(Schicht.Dauer)) as Dauer FROM EinzelSchicht,Schicht,Dienst where EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID = Dienst.DienstID and HelferID=:helferid"); //echo $sql; - $db_erg = $db->execute(__METHOD__,["helferid" => $HelferID]); + $db_erg = $db->execute(__METHOD__, ["helferid" => $HelferID]); $db->onErrorDie(__METHOD__); $zeilen = $db->fetchAll(__METHOD__); @@ -426,7 +426,7 @@ function LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $Ad { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name + $db->prepare(__METHOD__, "SELECT Schicht.Von, Schicht.Bis, Dienst.Was, Helfer.Name FROM EinzelSchicht JOIN Schicht ON EinzelSchicht.SchichtID = Schicht.SchichtID JOIN Dienst ON Schicht.DienstID = Dienst.DienstID @@ -435,7 +435,7 @@ function LogSchichtEingabe($HelferID, $SchichtId, $EinzelSchichtId, $Aktion, $Ad AND ( Schicht.SchichtID = :schichtid OR EinzelSchicht.EinzelSchichtID = :einzelschichtid) "); //error_log(date('Y-m-d H:i') . " " . $sql ."\n",3,LOGFILE); - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "helferid" => $HelferID, "schichtid" => $SchichtId, "einzelschichtid" => $EinzelSchichtId @@ -467,27 +467,27 @@ function HelferSchichtZuweisen($HelferID, $SchichtId, $AdminID = 0) { // Abfrage, ob bereits eine Einzelschicht in der selben Schicht vom Helfer existiert $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID=:schichtid and HelferID=:helferid",'einzelschicht_exists'); - $db->prepare(__METHOD__,"INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (:schichtid,:helferid)",'new_einzelschicht'); + $db->prepare(__METHOD__, "SELECT EinzelSchichtID from EinzelSchicht WHERE SchichtID=:schichtid and HelferID=:helferid", 'einzelschicht_exists'); + $db->prepare(__METHOD__, "INSERT INTO EinzelSchicht(SchichtID,HelferID) VALUES (:schichtid,:helferid)", 'new_einzelschicht'); - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "schichtid" => $SchichtId, "helferid" => $HelferID - ],'einzelschicht_exists'); + ], 'einzelschicht_exists'); - if($db->fetch(__METHOD__,'einzelschicht_exists')){ + if ($db->fetch(__METHOD__, 'einzelschicht_exists')) { echo "HelferSchichtZuweisen: Schicht existiert bereits!"; return false; } // Helfer Schicht zuweisen //echo '<script> console.log("Schicht zuweiweisen: '.$sql.'")</script>'; - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "schichtid" => $SchichtId, "helferid" => $HelferID - ],'new_einzelschicht'); + ], 'new_einzelschicht'); - $db->onErrorDie(__METHOD__,'new_einzelschicht'); + $db->onErrorDie(__METHOD__, 'new_einzelschicht'); LogSchichtEingabe($HelferID, $SchichtId, -1, "eingetragen", $AdminID); @@ -502,10 +502,10 @@ function HelferVonSchichtLoeschen($HelferID, $EinzelSchichtID, $AdminID = 0) // Lösche Einzelschicht $db = DB::getInstance(); - $db->prepare(__METHOD__,"Delete From EinzelSchicht Where EinzelSchichtID = :id"); + $db->prepare(__METHOD__, "Delete From EinzelSchicht Where EinzelSchichtID = :id"); //echo $sql; - $db_erg = $db->execute(__METHOD__,["id" => $EinzelSchichtID]); + $db_erg = $db->execute(__METHOD__, ["id" => $EinzelSchichtID]); return $db_erg; } @@ -518,9 +518,9 @@ function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) // Lösche Einzelschicht $db = DB::getInstance(); - $db->prepare(__METHOD__,"Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;"); + $db->prepare(__METHOD__, "Delete From EinzelSchicht Where SchichtID = :schichtid and HelferID = :helferid limit 1;"); //echo $sql; - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "schichtid" => $SchichtID, "helferid" => $HelferID ]); @@ -532,10 +532,10 @@ function HelferVonSchichtLoeschen_SchichtID($HelferID, $SchichtID, $AdminID = 0) function DetailSchicht($InfoSchichtID) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=:id"); + $db->prepare(__METHOD__, "select Was,Wo,Info,Name,Handy,Email,DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Dienst,Schicht,Helfer where Dienst.DienstID=Schicht.DienstID AND Helfer.HelferID=Dienst.Leiter And SchichtID=:id"); //echo $sql; - $db_erg = $db->execute(__METHOD__,["id" => $InfoSchichtID]); + $db_erg = $db->execute(__METHOD__, ["id" => $InfoSchichtID]); $db->onErrorDie(__METHOD__); @@ -547,10 +547,10 @@ function DetailSchicht($InfoSchichtID) function BeteiligteHelfer($InfoSchichtID) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); - $db_erg = $db->execute(__METHOD__,["id" => $InfoSchichtID]); + $db->prepare(__METHOD__, "select Helfer.HelferID,Name,Handy FROM EinzelSchicht,Helfer where EinzelSchicht.HelferID=Helfer.HelferID And SchichtID=:id"); + $db_erg = $db->execute(__METHOD__, ["id" => $InfoSchichtID]); $db->onErrorDie(__METHOD__); - + $zeile = $db->fetchAll(__METHOD__); return $zeile; } @@ -559,7 +559,7 @@ function BeteiligteHelfer($InfoSchichtID) function GetDienste() { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); + $db->prepare(__METHOD__, "SELECT DienstID, Was, Wo, Info, Leiter, ElternDienstID, HelferLevel FROM Dienst order By Was"); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); $dienste = $db->fetchAll(__METHOD__); @@ -570,8 +570,8 @@ function GetDienste() function GetDiensteChilds($DienstID) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); - $db_erg = $db->execute(__METHOD__,["id" => $DienstID]); + $db->prepare(__METHOD__, "SELECT DienstID, Was, Wo, Info, Leiter FROM Dienst where ElternDienstID=:id order by Was"); + $db_erg = $db->execute(__METHOD__, ["id" => $DienstID]); $db->onErrorDie(__METHOD__); $dienste = $db->fetchAll(__METHOD__); return $dienste; @@ -581,9 +581,9 @@ function GetDiensteChilds($DienstID) function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid"); + $db->prepare(__METHOD__, "UPDATE Dienst SET Was=:was, Wo=:wo, Info=:info, Leiter=:leiter, ElternDienstID=:elterndienstid where DienstID=:dienstid"); - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ "was" => $Was, "wo" => $Wo, "info" => $Info, @@ -599,8 +599,8 @@ function ChangeDienst($DienstID, $Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLeve function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); - $db_erg = $db->execute(__METHOD__,[ + $db->prepare(__METHOD__, "INSERT INTO Dienst (Was, Wo, Info, Leiter, ElternDienstID, HelferLevel) values (:was,:wo,:info,:leiter,:elterndienstid,:helferlevel)"); + $db_erg = $db->execute(__METHOD__, [ "was" => $Was, "wo" => $Wo, "info" => $Info, @@ -609,7 +609,7 @@ function NewDienst($Was, $Wo, $Info, $Leiter, $Gruppe, $HelferLevel) "helferlevel" => $HelferLevel ]); - if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000'){ + if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000') { $err = $db->errorInfo(__METHOD__)[2]; error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht konnte nicht angelegt werden Grund: $err \n", 3, LOGFILE); die('Ungueltige Abfrage: ' . $err); @@ -626,17 +626,17 @@ function DeleteDienst($DienstID, $Rekursiv) } else { // Pruefen ob noch Schichten eingetragen sind $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT SchichtID FROM Schicht where DienstID=:id",'check_schicht'); - $db->prepare(__METHOD__,"DELETE FROM Dienst where DienstID=:id",'delete_dienst'); - - $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'check_schicht'); + $db->prepare(__METHOD__, "SELECT SchichtID FROM Schicht where DienstID=:id", 'check_schicht'); + $db->prepare(__METHOD__, "DELETE FROM Dienst where DienstID=:id", 'delete_dienst'); - $db->onErrorDie(__METHOD__,'check_schicht'); + $db_erg = $db->execute(__METHOD__, ['id' => $DienstID], 'check_schicht'); - if (!$db->fetch(__METHOD__,'check_schicht')){ + $db->onErrorDie(__METHOD__, 'check_schicht'); + + if (!$db->fetch(__METHOD__, 'check_schicht')) { // Eintrag löschen - $db_erg = $db->execute(__METHOD__,['id' => $DienstID],'delete_dienst'); - $db->onErrorDie(__METHOD__,'delete_dienst'); + $db_erg = $db->execute(__METHOD__, ['id' => $DienstID], 'delete_dienst'); + $db->onErrorDie(__METHOD__, 'delete_dienst'); return true; } else { return false; @@ -648,13 +648,13 @@ function DeleteDienst($DienstID, $Rekursiv) function GetDiensteForDay($helferlevel, $datestring) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT DienstId, Was, Wo, Info FROM Dienst INNER JOIN Schicht USING (DienstID) WHERE HelferLevel=" . $helferlevel . " GROUP BY DienstId HAVING MIN(Von)<:date1 AND MAX(Bis)>:date2 ORDER BY MIN(Von) ASC;"); + $db->prepare(__METHOD__, "SELECT DienstId, Was, Wo, Info FROM Dienst INNER JOIN Schicht USING (DienstID) WHERE HelferLevel=" . $helferlevel . " GROUP BY DienstId HAVING MIN(Von)<:date1 AND MAX(Bis)>:date2 ORDER BY MIN(Von) ASC;"); $unixtime = strtotime($datestring); - $date1 = + $date1 = $date2 = date('Y-m-d', $unixtime); - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ 'date1' => date('Y-m-d', $unixtime + 24 * 60 * 60), 'date2' => date('Y-m-d', $unixtime) ]); @@ -667,9 +667,9 @@ function GetDiensteForDay($helferlevel, $datestring) function GetSchichtenForDienstForDay($DienstID, $datestring) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"select Von, Bis, Soll, Name, Handy from Schicht left join EinzelSchicht using (SchichtId) left join Helfer using (HelferId) where DienstId=:id and Von<:von and Bis>:bis order by Von;"); + $db->prepare(__METHOD__, "select Von, Bis, Soll, Name, Handy from Schicht left join EinzelSchicht using (SchichtId) left join Helfer using (HelferId) where DienstId=:id and Von<:von and Bis>:bis order by Von;"); $unixtime = strtotime($datestring); - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ 'id' => $DienstID, 'von' => date('Y-m-d', $unixtime + 24 * 60 * 60), 'bis' => date('Y-m-d', $unixtime) @@ -684,8 +684,8 @@ function GetSchichtenEinesDienstes($DienstID) { //$sql = "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon FROM Schicht where DienstID=".$DienstID; $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis, DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Schicht where DienstID=:id"); - $db_erg = $db->execute(__METHOD__,['id' => $DienstID]); + $db->prepare(__METHOD__, "SELECT SchichtID,Von,Bis,Soll,DATE_FORMAT(Von,'%a %H:%i') AS TagVon, DATE_FORMAT(Von,'%H:%i') AS ZeitVon, DATE_FORMAT(Bis,'%H:%i') AS ZeitBis, DATE_FORMAT(Dauer,'%H:%i') AS Dauer FROM Schicht where DienstID=:id"); + $db_erg = $db->execute(__METHOD__, ['id' => $DienstID]); $db->onErrorDie(__METHOD__); $schichten = $db->fetchAll(__METHOD__); return $schichten; @@ -695,9 +695,9 @@ function GetSchichtenEinesDienstes($DienstID) function ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll, Dauer=:dauer where SchichtID=:id"); + $db->prepare(__METHOD__, "UPDATE Schicht SET Von=:von, Bis=:bis, Soll=:soll, Dauer=:dauer where SchichtID=:id"); - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ 'von' => $Von, 'bis' => $Bis, 'soll' => $Soll, @@ -725,9 +725,9 @@ function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) } */ $db = DB::getInstance(); - $db->prepare(__METHOD__,"INSERT INTO Schicht (DienstID, Von, Bis, Soll, Dauer) values (:id,:von,:bis,:soll,:dauer)"); + $db->prepare(__METHOD__, "INSERT INTO Schicht (DienstID, Von, Bis, Soll, Dauer) values (:id,:von,:bis,:soll,:dauer)"); - $db_erg = $db->execute(__METHOD__,[ + $db_erg = $db->execute(__METHOD__, [ 'id' => $DienstID, 'von' => $Von, 'bis' => $Bis, @@ -751,21 +751,21 @@ function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) function DeleteSchicht($SchichtID, $Rekursiv) { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT Name FROM EinzelSchicht,Helfer where SchichtID=:id and Helfer.HelferID=EinzelSchicht.HelferID",'check_einzelschicht'); - $db->prepare(__METHOD__,"DELETE FROM Schicht where SchichtID=:id",'delete_einzelschicht'); + $db->prepare(__METHOD__, "SELECT Name FROM EinzelSchicht,Helfer where SchichtID=:id and Helfer.HelferID=EinzelSchicht.HelferID", 'check_einzelschicht'); + $db->prepare(__METHOD__, "DELETE FROM Schicht where SchichtID=:id", 'delete_einzelschicht'); if ($Rekursiv) { return false; } else { // Pruefen ob noch Helfer auf der Schicht eingetragen sind - $db_erg = $db->execute(__METHOD__,["id" => $SchichtID ],'check_einzelschicht'); + $db_erg = $db->execute(__METHOD__, ["id" => $SchichtID ], 'check_einzelschicht'); - $db->onErrorDie(__METHOD__,'check_einzelschicht'); + $db->onErrorDie(__METHOD__, 'check_einzelschicht'); - if (!$db->fetch(__METHOD__,'check_einzelschicht')) { + if (!$db->fetch(__METHOD__, 'check_einzelschicht')) { // Eintrag löschen - $db_erg = $db->execute(__METHOD__,["id" => $SchichtID ],'delete_einzelschicht'); - $db->onErrorDie(__METHOD__,'delete_einzelschicht'); + $db_erg = $db->execute(__METHOD__, ["id" => $SchichtID ], 'delete_einzelschicht'); + $db->onErrorDie(__METHOD__, 'delete_einzelschicht'); return true; } else { return false; @@ -780,7 +780,7 @@ function AlleHelferSchichtenUebersicht() $sql = "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,Was,SUM(Dauer)/10000 as Dauer from Helfer,EinzelSchicht INNER JOIN Schicht INNER JOIN Dienst where Helfer.HelferID=EinzelSchicht.HelferID and EinzelSchicht.SchichtID=Schicht.SchichtID and Schicht.DienstID=Dienst.DienstID group by Helfer.HelferID,Was"; $sql = $sql . " UNION ALL "; $sql = $sql . "select Helfer.HelferID as AliasHelferID,Helfer.HelferLevel,Name,Email,Handy,'-' as Was,0 as Dauer from Helfer,EinzelSchicht where not exists(select 1 from EinzelSchicht where Helfer.HelferID=EinzelSchicht.HelferID)"; - $db->prepare(__METHOD__,$sql); + $db->prepare(__METHOD__, $sql); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); @@ -792,7 +792,7 @@ function AlleHelferSchichtenUebersicht() function DatenbankAufDeutsch() { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SET lc_time_names = 'de_DE'"); + $db->prepare(__METHOD__, "SET lc_time_names = 'de_DE'"); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); } @@ -801,7 +801,7 @@ function DatenbankAufDeutsch() function LastInsertId() { $db = DB::getInstance(); - $db->prepare(__METHOD__,"SELECT LAST_INSERT_ID()"); + $db->prepare(__METHOD__, "SELECT LAST_INSERT_ID()"); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); @@ -813,7 +813,7 @@ function LastInsertId() function HelferLevel() { $db = DB::getInstance(); - $db->prepare(__METHOD__,"select HelferLevel,HelferLevelBeschreibung from HelferLevel"); + $db->prepare(__METHOD__, "select HelferLevel,HelferLevelBeschreibung from HelferLevel"); $db_erg = $db->execute(__METHOD__); $db->onErrorDie(__METHOD__); diff --git a/html/SQL_old.php b/html/SQL_old.php index 01ba164..47361a5 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -1,4 +1,5 @@ <?php + namespace old; require_once 'konfiguration.php'; @@ -92,7 +93,7 @@ function HelferListe($db_link) die('Unueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -111,7 +112,7 @@ function Helferdaten($db_link, $HelferID) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -191,7 +192,7 @@ function AlleSchichten($db_link, $Sort, $HelferLevel = 1) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -256,7 +257,7 @@ function AlleSchichtenImZeitbereich($db_link, $Von, $Bis, $HelferLevel = 1) } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -278,7 +279,7 @@ function AlleSchichtenEinesHelfers($db_link, $HelferID) } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -290,7 +291,7 @@ function HelferLoeschen($db_link, $HelferID, $AdminID) $helfer = Helferdaten($db_link, $HelferID); - if(count($helfer) == 1){ + if (count($helfer) == 1) { $HelferName = $helfer[0]['Name']; } @@ -350,7 +351,7 @@ function AlleSchichtenEinesHelfersVonJetzt($db_link, $HelferID) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -373,7 +374,7 @@ function SchichtenSummeEinesHelfers($db_link, $HelferID) } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -524,7 +525,7 @@ function BeteiligteHelfer($db_link, $InfoSchichtID) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -537,7 +538,7 @@ function GetDienste($db_link) echo "GetDienste ungueltige Abfrage"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -552,7 +553,7 @@ function GetDiensteChilds($db_link, $DienstID) echo "GetDienste ungueltige Abfrage"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -649,7 +650,7 @@ function GetDiensteForDay($db_link, $helferlevel, $datestring) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -665,7 +666,7 @@ function GetSchichtenForDienstForDay($db_link, $DienstID, $datestring) echo "GetDienste ungueltige Abfrage"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -684,7 +685,7 @@ function GetSchichtenEinesDienstes($db_link, $DienstID) echo $sql; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -784,7 +785,7 @@ function AlleHelferSchichtenUebersicht($db_link) echo "AlleHelferSchichtenUebersicht ungueltige Abfrage"; die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } @@ -824,7 +825,7 @@ function HelferLevel($db_link) die('Ungueltige Abfrage: ' . mysqli_error($db_link)); } - while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); + while ($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)); array_pop($zeilen); return $zeilen; } diff --git a/html/Setup.php b/html/Setup.php index 338c0b3..d1f111b 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -4,7 +4,7 @@ require_once("Wizard.php"); $wizard = new Wizard("../setupWizard.json"); -$wizard->addCode('basedata',function($storedvariables){ +$wizard->addCode('basedata', function ($storedvariables) { $basedata['eventname'] = $_POST['eventname']; $basedata['startdate'] = $_POST['startdate']; $basedata['duration'] = $_POST['duration']; @@ -18,12 +18,12 @@ $wizard->addCode('basedata',function($storedvariables){ return $basedata; }); -$wizard->addCode('selectdatabase',function($storedvariables){ +$wizard->addCode('selectdatabase', function ($storedvariables) { $selectdatabase['databasetype'] = $_POST['databasetype']; return $selectdatabase; }); -$wizard->addCode('enterlogindata',function($storedvariables){ +$wizard->addCode('enterlogindata', function ($storedvariables) { $logindata['host'] = $_POST['host']; $logindata['user'] = $_POST['user']; $logindata['password'] = $_POST['password']; @@ -31,84 +31,78 @@ $wizard->addCode('enterlogindata',function($storedvariables){ return $logindata; }); -$wizard->addCode('createdatabase',function($storedvariables){ +$wizard->addCode('createdatabase', function ($storedvariables) { $conf_file = fopen("../bengelsystem_konfiguration.php", "w"); fwrite($conf_file, "<?php\n"); - if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){ - fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("..") . "/helferdb.sqlite3' );\n"); + if ($storedvariables['selectdatabase']['databasetype'] == 'SQLite') { + fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:" . realpath("..") . "/helferdb.sqlite3' );\n"); fwrite($conf_file, "define( 'MYSQL_HOST', '' );\n"); fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n"); fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n"); fwrite($conf_file, "define( 'DBTYPE', 'sqlite');\n"); - } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){ - fwrite($conf_file, "define( 'MYSQL_DSN', 'mysql:host=" . $storedvariables['enterlogindata']['host'] . ";dbname=". $storedvariables['enterlogindata']['dbname'] . ";charset=utf8mb4' );\n"); - fwrite($conf_file, "define( 'MYSQL_HOST', '".$storedvariables['enterlogindata']['host']."' );\n"); - fwrite($conf_file, "define( 'MYSQL_BENUTZER', '".$storedvariables['enterlogindata']['user']."' );\n"); - fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$storedvariables['enterlogindata']['password']."' );\n"); - fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$storedvariables['enterlogindata']['dbname']."' );\n"); + } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB') { + fwrite($conf_file, "define( 'MYSQL_DSN', 'mysql:host=" . $storedvariables['enterlogindata']['host'] . ";dbname=" . $storedvariables['enterlogindata']['dbname'] . ";charset=utf8mb4' );\n"); + fwrite($conf_file, "define( 'MYSQL_HOST', '" . $storedvariables['enterlogindata']['host'] . "' );\n"); + fwrite($conf_file, "define( 'MYSQL_BENUTZER', '" . $storedvariables['enterlogindata']['user'] . "' );\n"); + fwrite($conf_file, "define( 'MYSQL_KENNWORT', '" . $storedvariables['enterlogindata']['password'] . "' );\n"); + fwrite($conf_file, "define( 'MYSQL_DATENBANK', '" . $storedvariables['enterlogindata']['dbname'] . "' );\n"); fwrite($conf_file, "define( 'DBTYPE', 'mariadb');\n"); } - fwrite($conf_file, "define( 'LOGFILE', '".$storedvariables['basedata']['logfile']."' );\n"); - fwrite($conf_file, "define( 'EVENTNAME', '".$storedvariables['basedata']['eventname']."' );\n"); - fwrite($conf_file, "define( 'INFORMATIONS_URL', '".$storedvariables['basedata']['infourl']."' );\n"); - fwrite($conf_file, "define( 'SECRET_KEY', '".$storedvariables['basedata']['secretkey']."' );\n"); - fwrite($conf_file, "define( 'SECRET_VERIFICATION', '".$storedvariables['basedata']['secretverification']."' );\n"); - fwrite($conf_file, "define( 'URLPREFIX', '".$storedvariables['basedata']['urlprefix']."' );\n"); - fwrite($conf_file, "define( 'TAGE_DAUER', '".$storedvariables['basedata']['duration']."' );\n"); - fwrite($conf_file, "date_default_timezone_set('".$storedvariables['basedata']['timezone']."');\n"); - fwrite($conf_file, "setlocale(LC_TIME, \"".$storedvariables['basedata']['locale']."\");\n"); - fwrite($conf_file, "\$start_date = new DateTimeImmutable(\"".$storedvariables['basedata']['startdate']."\");\n"); + fwrite($conf_file, "define( 'LOGFILE', '" . $storedvariables['basedata']['logfile'] . "' );\n"); + fwrite($conf_file, "define( 'EVENTNAME', '" . $storedvariables['basedata']['eventname'] . "' );\n"); + fwrite($conf_file, "define( 'INFORMATIONS_URL', '" . $storedvariables['basedata']['infourl'] . "' );\n"); + fwrite($conf_file, "define( 'SECRET_KEY', '" . $storedvariables['basedata']['secretkey'] . "' );\n"); + fwrite($conf_file, "define( 'SECRET_VERIFICATION', '" . $storedvariables['basedata']['secretverification'] . "' );\n"); + fwrite($conf_file, "define( 'URLPREFIX', '" . $storedvariables['basedata']['urlprefix'] . "' );\n"); + fwrite($conf_file, "define( 'TAGE_DAUER', '" . $storedvariables['basedata']['duration'] . "' );\n"); + fwrite($conf_file, "date_default_timezone_set('" . $storedvariables['basedata']['timezone'] . "');\n"); + fwrite($conf_file, "setlocale(LC_TIME, \"" . $storedvariables['basedata']['locale'] . "\");\n"); + fwrite($conf_file, "\$start_date = new DateTimeImmutable(\"" . $storedvariables['basedata']['startdate'] . "\");\n"); fwrite($conf_file, "\$secret_key = SECRET_KEY;\n"); fwrite($conf_file, "\$secret_verification = SECRET_VERIFICATION;\n"); fwrite($conf_file, "\$urlprefix = URLPREFIX;\n"); fwrite($conf_file, "?>"); // Test configuration: require_once("SQL.php"); - try{ + try { $db = DB::getInstance(); + } catch (PDOException $exception) { + echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"" . $exception->getMessage() . "\"</p>"; } - catch( PDOException $exception ) { - echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"".$exception->getMessage( )."\"</p>"; - } - if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000'){ - echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; + if (!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000') { + echo "<p>Fehler " . $db->pdoErrorCode() . " beim Verbindungsversuch mit der Datenbank: \"" . $db->pdoErrorInfo()[2] . "\"</p>"; $_POST['step'] = 'createdatabase'; } else { echo "<p>Erfolgreich mit der Datenbank verbunden!</p>"; } }); -$wizard->addCode('createdatabasetables',function($storedvariables){ +$wizard->addCode('createdatabasetables', function ($storedvariables) { require_once("SQL.php"); - try{ + try { $db = DB::getInstance(); + } catch (PDOException $exception) { + echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"" . $exception->getMessage() . "\"</p>"; } - catch( PDOException $exception ) { - echo "<p>Fehler beim Verbindungsversuch mit der Datenbank: \"".$exception->getMessage( )."\"</p>"; - } - if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000'){ - echo "<p>Fehler ".$db->pdoErrorCode()." beim Verbindungsversuch mit der Datenbank: \"".$db->pdoErrorInfo()[2]."\"</p>"; + if (!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000') { + echo "<p>Fehler " . $db->pdoErrorCode() . " beim Verbindungsversuch mit der Datenbank: \"" . $db->pdoErrorInfo()[2] . "\"</p>"; $_POST['step'] = 'createdatabase'; } else { echo "<p>Erfolgreich mit der Datenbank verbunden!</p>"; } - if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){ + if ($storedvariables['selectdatabase']['databasetype'] == 'SQLite') { $dbscript = "../helferdb_structure_sqlite.sql"; - } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){ + } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB') { $dbscript = "../helferdb_structure_mariadb.sql"; } $statementsReturnvalues = $db->executeScript(__METHOD__, $dbscript); - if(!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000'){ - echo "<p>Fehler ".$db->pdoErrorCode()." bei Statement Nr. ".sizeof($statementsReturnvalues)." beim Versuch Tabellen anzulegen: \"".$db->pdoErrorInfo()[2]."\"</p>"; + if (!is_null($db->pdoErrorCode()) && $db->pdoErrorCode() != '00000') { + echo "<p>Fehler " . $db->pdoErrorCode() . " bei Statement Nr. " . sizeof($statementsReturnvalues) . " beim Versuch Tabellen anzulegen: \"" . $db->pdoErrorInfo()[2] . "\"</p>"; $_POST['step'] = 'createdatabase'; } else { echo "<p>Datenbanktabellen wurden erfolgreich angelegt!</p>"; } - }); $wizard->renderPHP(); - -?> - diff --git a/html/Userdaten.php b/html/Userdaten.php index 14f54f5..b7d7079 100644 --- a/html/Userdaten.php +++ b/html/Userdaten.php @@ -67,7 +67,7 @@ if (isset($_POST['change'])) { $zeilen = Helferdaten($HelferID); -foreach ($zeilen as $zeile)) { +foreach ($zeilen as $zeile) { $HelferName = $zeile['Name']; $HelferEmail = $zeile['Email']; $HelferHandy = $zeile['Handy']; diff --git a/html/Wizard.php b/html/Wizard.php index cdbb429..3304ca6 100644 --- a/html/Wizard.php +++ b/html/Wizard.php @@ -1,81 +1,84 @@ <?php -class WizardStep { +class WizardStep +{ public $page = ""; public array $redirects = array(); public string $warning = ""; public $code = null; - public function __construct($step){ - if(isset($step['page'])){ + public function __construct($step) + { + if (isset($step['page'])) { $this->page = $step['page']; } - if(isset($step['redirects'])){ + if (isset($step['redirects'])) { $this->redirects = $step['redirects']; } } - public function setCurrentStep(){ - if(!empty($this->redirects)){ - foreach($this->redirects as $redirect){ - if(isset($redirect['==']) && isset($redirect['id'])){ - foreach($redirect['=='] as $key => $value){ - if(isset($_POST[$key]) && $_POST[$key] == $value){ + public function setCurrentStep() + { + if (!empty($this->redirects)) { + foreach ($this->redirects as $redirect) { + if (isset($redirect['==']) && isset($redirect['id'])) { + foreach ($redirect['=='] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] == $value) { $_POST['step'] = $redirect['id']; - if(isset($redirect['warning'])){ + if (isset($redirect['warning'])) { $this->warning = $redirect['warning']; } return; } } } - if(isset($redirect['!=']) && isset($redirect['id'])){ - foreach($redirect['!='] as $key => $value){ - if(isset($_POST[$key]) && $_POST[$key] != $value){ + if (isset($redirect['!=']) && isset($redirect['id'])) { + foreach ($redirect['!='] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] != $value) { $_POST['step'] = $redirect['id']; - if(isset($redirect['warning'])){ + if (isset($redirect['warning'])) { $this->warning = $redirect['warning']; } return; } } } - if(isset($redirect['>']) && isset($redirect['id'])){ - foreach($redirect['>'] as $key => $value){ - if(isset($_POST[$key]) && $_POST[$key] > $value){ + if (isset($redirect['>']) && isset($redirect['id'])) { + foreach ($redirect['>'] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] > $value) { $_POST['step'] = $redirect['id']; - if(isset($redirect['warning'])){ + if (isset($redirect['warning'])) { $this->warning = $redirect['warning']; } return; } } } - if(isset($redirect['<']) && isset($redirect['id'])){ - foreach($redirect['<'] as $key => $value){ - if(isset($_POST[$key]) && $_POST[$key] < $value){ + if (isset($redirect['<']) && isset($redirect['id'])) { + foreach ($redirect['<'] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] < $value) { $_POST['step'] = $redirect['id']; - if(isset($redirect['warning'])){ + if (isset($redirect['warning'])) { $this->warning = $redirect['warning']; } return; } } } - if(isset($redirect['>=']) && isset($redirect['id'])){ - foreach($redirect['>='] as $key => $value){ - if(isset($_POST[$key]) && $_POST[$key] >= $value){ + if (isset($redirect['>=']) && isset($redirect['id'])) { + foreach ($redirect['>='] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] >= $value) { $_POST['step'] = $redirect['id']; - if(isset($redirect['warning'])){ + if (isset($redirect['warning'])) { $this->warning = $redirect['warning']; } return; } } } - if(isset($redirect['<=']) && isset($redirect['id'])){ - foreach($redirect['<='] as $key => $value){ - if(isset($_POST[$key]) && $_POST[$key] <= $value){ + if (isset($redirect['<=']) && isset($redirect['id'])) { + foreach ($redirect['<='] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] <= $value) { $_POST['step'] = $redirect['id']; - if(isset($redirect['warning'])){ + if (isset($redirect['warning'])) { $this->warning = $redirect['warning']; } return; @@ -85,84 +88,86 @@ class WizardStep { } } } - public function setCode(callable $function){ + public function setCode(callable $function) + { $this->code = $function; } } -class Wizard { +class Wizard +{ private string $header = ""; private string $firststep = ""; private array $steps = array(); private string $footer = ""; private array $storedvariables = array(); - public function __construct($json_file = '../wizard.json'){ + public function __construct($json_file = '../wizard.json') + { $stepsArray = json_decode(file_get_contents($json_file), true); $this->header = $stepsArray['header']; $this->firststep = $stepsArray['firststep']; - foreach($stepsArray['steps'] as $step){ + foreach ($stepsArray['steps'] as $step) { $this->steps[$step['id']] = new WizardStep($step); } $this->footer = $stepsArray['footer']; - if(isset($_POST['storedvariables'])){ - $this->storedvariables = json_decode($_POST['storedvariables'],JSON_FORCE_OBJECT); + if (isset($_POST['storedvariables'])) { + $this->storedvariables = json_decode($_POST['storedvariables'], JSON_FORCE_OBJECT); } } - public function renderPHP(){ + public function renderPHP() + { echo $this->header; - if(isset($_POST['stepfrom'])){ + if (isset($_POST['stepfrom'])) { $this->steps[$_POST['stepfrom']]->setCurrentStep(); - if(isset($_POST['step']) && ($_POST['step'] != $_POST['stepfrom'])){ - if(!is_null($this->steps[$_POST['stepfrom']]->code)){ + if (isset($_POST['step']) && ($_POST['step'] != $_POST['stepfrom'])) { + if (!is_null($this->steps[$_POST['stepfrom']]->code)) { $this->storedvariables[$_POST['stepfrom']] = call_user_func($this->steps[$_POST['stepfrom']]->code, $this->storedvariables); } } } - if(!isset($_POST['step'])){ + if (!isset($_POST['step'])) { $_POST['step'] = $this->firststep; } // If warning not set this does not add anything to the page: echo $this->steps[$_POST['step']]->warning; $pagedom = new DOMDocument(); $pageval = $this->steps[$_POST['step']]->page; - if(is_array($pageval)){ + if (is_array($pageval)) { $page = "\xEF\xBB\xBF"; - foreach($pageval as $pagepart){ - foreach($pagepart as $element => $content){ - if($element == 'text'){ - $page.=$content; - } - elseif($element == 'variable'){ + foreach ($pageval as $pagepart) { + foreach ($pagepart as $element => $content) { + if ($element == 'text') { + $page .= $content; + } elseif ($element == 'variable') { $tmpcontent = $this->storedvariables; - foreach(explode('/',$content) as $pathpart){ + foreach (explode('/', $content) as $pathpart) { $tmpcontent = $tmpcontent[$pathpart]; } - $page.=$tmpcontent; + $page .= $tmpcontent; } } } - } - else{ - $page = "\xEF\xBB\xBF".$pageval; + } else { + $page = "\xEF\xBB\xBF" . $pageval; } libxml_use_internal_errors(true); $pagedom->loadHTML($page); foreach (libxml_get_errors() as $error) { - echo "<p>Error when parsing html for step \"".$_POST['step']."\":".$error->line." ".$error->column." ".$error->message."</p>"; + echo "<p>Error when parsing html for step \"" . $_POST['step'] . "\":" . $error->line . " " . $error->column . " " . $error->message . "</p>"; } $forms = $pagedom->getElementsByTagName('form'); - foreach($forms as $form){ + foreach ($forms as $form) { $input = $pagedom->createElement('input'); - $input->setAttribute('type','hidden'); - $input->setAttribute('name','storedvariables'); - $input->setAttribute('value',json_encode($this->storedvariables,JSON_FORCE_OBJECT)); + $input->setAttribute('type', 'hidden'); + $input->setAttribute('name', 'storedvariables'); + $input->setAttribute('value', json_encode($this->storedvariables, JSON_FORCE_OBJECT)); $form->appendChild($input); } echo $pagedom->saveHTML(); echo $this->footer; } - public function addCode($stepid, $function){ + public function addCode($stepid, $function) + { $this->steps[$stepid]->setCode($function); } } -?> diff --git a/html/index.php b/html/index.php index 382640f..05190aa 100644 --- a/html/index.php +++ b/html/index.php @@ -66,7 +66,9 @@ $iCount = 0; foreach ($schichten as $zeile) { echo "<li>" . $zeile['Ab'] . " " . $zeile['Was'] . "</li>"; $iCount++; - if(iCount>2) break; + if (iCount > 2) { + break; + } } ?> diff --git a/html/testPDO.php b/html/testPDO.php index 632a16f..9505797 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -1,94 +1,103 @@ <?php + session_start(); require_once 'SQL_old.php'; require_once 'SQL.php'; // ok -function TestCreateHelfer(){ +function TestCreateHelfer() +{ $dbl = old\ConnectDB(); $erg_old = old\CreateHelfer($dbl, "Max Mustermann", "max@example.com", "+49123-45", "hola234"); $erg_new = CreateHelfer("Max Mustermann", "max2@example.com", "+49123-45", "hola234"); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old CreateHelfer returns '".var_export($erg_old, true)."'"; - echo "New CreateHelfer returns '".var_export($erg_new, true)."'"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old CreateHelfer returns '" . var_export($erg_old, true) . "'"; + echo "New CreateHelfer returns '" . var_export($erg_new, true) . "'"; + } else { + echo "CreateHelfer ok\n"; } - else echo "CreateHelfer ok\n"; } // ok -function TestHelferIstVorhanden(){ +function TestHelferIstVorhanden() +{ $dbl = old\ConnectDB(); $erg_old = old\HelferIstVorhanden($dbl, "max@example.com"); $erg_new = HelferIstVorhanden("max@example.com"); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferIstVorhanden returns '".var_export($erg_old, true)."'"; - echo "New HelferIstVorhanden returns '".var_export($erg_new, true)."'"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old HelferIstVorhanden returns '" . var_export($erg_old, true) . "'"; + echo "New HelferIstVorhanden returns '" . var_export($erg_new, true) . "'"; + } else { + echo "HelferIstVorhanden ok\n"; } - else echo "HelferIstVorhanden ok\n"; } // ok -function TestHelferLogin(){ +function TestHelferLogin() +{ $dbl = old\ConnectDB(); $erg_old = old\HelferLogin($dbl, "max@example.com", "hola234", 0); $erg_old_session = $_SESSION; $_SESSION = null; - $erg_new = HelferLogin("max@example.com", "hola234", 0); + $erg_new = HelferLogin("max@example.com", "hola234", 0); $erg_new_session = $_SESSION; $_SESSION = null; $erg_old_wrong = old\HelferLogin($dbl, "max@example.com", "hola235", 0); $erg_old_session_wrong = $_SESSION; $_SESSION = null; - $erg_new_wrong = HelferLogin("max@example.com", "hola235", 0); + $erg_new_wrong = HelferLogin("max@example.com", "hola235", 0); $erg_new_session_wrong = $_SESSION; - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferLogin returns '".var_export($erg_old, true)."'"; - echo "New HelferLogin returns '".var_export($erg_new, true)."'"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old HelferLogin returns '" . var_export($erg_old, true) . "'"; + echo "New HelferLogin returns '" . var_export($erg_new, true) . "'"; + } elseif ((gettype($erg_old_session) != gettype($erg_new_session)) || ($erg_old_session != $erg_new_session)) { + echo "Old HelferLogin session returns '" . var_export($erg_old_session, true) . "'"; + echo "New HelferLogin session returns '" . var_export($erg_new_session, true) . "'"; + } elseif ((gettype($erg_old_wrong) != gettype($erg_new_wrong)) || ($erg_old_wrong != $erg_new_wrong)) { + echo "Old HelferLogin wrong returns '" . var_export($erg_old_wrong, true) . "'"; + echo "New HelferLogin wrong returns '" . var_export($erg_new_wrong, true) . "'"; + } elseif ((gettype($erg_old_session_wrong) != gettype($erg_new_session_wrong)) || ($erg_old_session_wrong != $erg_new_session_wrong)) { + echo "Old HelferLogin session wrong returns '" . var_export($erg_old_session_wrong, true) . "'"; + echo "New HelferLogin session wrong returns '" . var_export($erg_new_session_wrong, true) . "'"; + } else { + echo "HelferLogin ok\n"; } - else if((gettype($erg_old_session) != gettype($erg_new_session)) || ($erg_old_session != $erg_new_session)){ - echo "Old HelferLogin session returns '".var_export($erg_old_session, true)."'"; - echo "New HelferLogin session returns '".var_export($erg_new_session, true)."'"; - } - else if((gettype($erg_old_wrong) != gettype($erg_new_wrong)) || ($erg_old_wrong != $erg_new_wrong)){ - echo "Old HelferLogin wrong returns '".var_export($erg_old_wrong, true)."'"; - echo "New HelferLogin wrong returns '".var_export($erg_new_wrong, true)."'"; - } - else if((gettype($erg_old_session_wrong) != gettype($erg_new_session_wrong)) || ($erg_old_session_wrong != $erg_new_session_wrong)){ - echo "Old HelferLogin session wrong returns '".var_export($erg_old_session_wrong, true)."'"; - echo "New HelferLogin session wrong returns '".var_export($erg_new_session_wrong, true)."'"; - } - else echo "HelferLogin ok\n"; } // ok -function TestHelferListe(){ +function TestHelferListe() +{ $dbl = old\ConnectDB(); $erg_old = old\HelferListe($dbl); $erg_new = HelferListe(); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferListe returns '".var_export($erg_old, true)."'"; - echo "New HelferListe returns '".var_export($erg_new, true)."'"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old HelferListe returns '" . var_export($erg_old, true) . "'"; + echo "New HelferListe returns '" . var_export($erg_new, true) . "'"; + } else { + echo "HelferListe ok\n"; } - else echo "HelferListe ok\n"; } // ok -function TestHelferdaten(){ +function TestHelferdaten() +{ $dbl = old\ConnectDB(); - HelferLogin("max@example.com", "hola234", 0); - $erg_old = old\Helferdaten($dbl,$_SESSION["HelferID"]); + HelferLogin("max@example.com", "hola234", 0); + $erg_old = old\Helferdaten($dbl, $_SESSION["HelferID"]); $erg_new = Helferdaten($_SESSION["HelferID"]); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old Helferdaten returns '".var_export($erg_old, true)."'"; - echo "New Helferdaten returns '".var_export($erg_new, true)."'"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old Helferdaten returns '" . var_export($erg_old, true) . "'"; + echo "New Helferdaten returns '" . var_export($erg_new, true) . "'"; + } else { + echo "Helferdaten ok\n"; } - else echo "Helferdaten ok\n"; } // ok -function TestHelferdatenAendern(){ +function TestHelferdatenAendern() +{ $dbl = old\ConnectDB(); - HelferLogin("max@example.com", "hola234", 0); + HelferLogin("max@example.com", "hola234", 0); $cases = array( # Case 1 HelferNewPasswort Empty, HelferIsAdmin == -1 1 => array( @@ -136,7 +145,7 @@ function TestHelferdatenAendern(){ ), ); - foreach($cases as $casenumber => $case){ + foreach ($cases as $casenumber => $case) { ob_start(); $erg_old = old\HelferdatenAendern($dbl, $case["HelferName"], $case["HelferEmail"], $case["HelferHandy"], $case["HelferNewPasswort"], $case["HelferID"], $case["HelferLevel"], $case["HelferIsAdmin"], $case["AdminID"]); $erg_ob_old = ob_get_contents(); @@ -145,172 +154,186 @@ function TestHelferdatenAendern(){ $erg_new = HelferdatenAendern($case["HelferName"], $case["HelferEmail"], $case["HelferHandy"], $case["HelferNewPasswort"], $case["HelferID"], $case["HelferLevel"], $case["HelferIsAdmin"], $case["AdminID"]); $erg_ob_new = ob_get_contents(); ob_end_clean(); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferdatenAendern case number ".$casenumber." returns '".var_export($erg_old, true)."'\n"; - echo "New HelferdatenAendern case number ".$casenumber." returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old HelferdatenAendern case number " . $casenumber . " returns '" . var_export($erg_old, true) . "'\n"; + echo "New HelferdatenAendern case number " . $casenumber . " returns '" . var_export($erg_new, true) . "'\n"; + } elseif ($erg_ob_old != $erg_ob_new) { + echo "Old HelferdatenAendern case number " . $casenumber . " ob returns '" . $erg_ob_old . "'\n"; + echo "New HelferdatenAendern case number " . $casenumber . " ob returns '" . $erg_ob_new . "'\n"; + } else { + echo "HelferdatenAendern case number " . $casenumber . " ok\n"; } - else if($erg_ob_old != $erg_ob_new){ - - echo "Old HelferdatenAendern case number ".$casenumber." ob returns '".$erg_ob_old."'\n"; - echo "New HelferdatenAendern case number ".$casenumber." ob returns '".$erg_ob_new."'\n"; - } - else echo "HelferdatenAendern case number ".$casenumber." ok\n"; } } // ok -function TestAlleSchichten(){ +function TestAlleSchichten() +{ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichten($dbl, 1, 2); $erg_new = AlleSchichten(1, 2); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old AlleSchichten returns".var_export($erg_old, true)."\n"; - echo "New AlleSchichten returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old AlleSchichten returns" . var_export($erg_old, true) . "\n"; + echo "New AlleSchichten returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "AlleSchichten ok\n"; } - else echo "AlleSchichten ok\n"; } // ok -function TestAlleSchichtenCount(){ +function TestAlleSchichtenCount() +{ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichtenCount($dbl, 2); $erg_new = AlleSchichtenCount(2); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old AlleSchichtenCount returns".var_export($erg_old, true)."\n"; - echo "New AlleSchichtenCount returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old AlleSchichtenCount returns" . var_export($erg_old, true) . "\n"; + echo "New AlleSchichtenCount returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "AlleSchichtenCount ok\n"; } - else echo "AlleSchichtenCount ok\n"; } // ok -function TestAlleBelegteSchichtenCount(){ +function TestAlleBelegteSchichtenCount() +{ $dbl = old\ConnectDB(); $erg_old = old\AlleBelegteSchichtenCount($dbl, 2); $erg_new = AlleBelegteSchichtenCount(2); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old AlleBelegteSchichtenCount returns".var_export($erg_old, true)."\n"; - echo "New AlleBelegteSchichtenCount returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old AlleBelegteSchichtenCount returns" . var_export($erg_old, true) . "\n"; + echo "New AlleBelegteSchichtenCount returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "AlleBelegteSchichtenCount ok\n"; } - else echo "AlleBelegteSchichtenCount ok\n"; } // ok -function TestAlleSchichtenImZeitbereich(){ +function TestAlleSchichtenImZeitbereich() +{ $dbl = old\ConnectDB(); $erg_old = old\AlleSchichtenImZeitbereich($dbl, "2024-02-01", "2024-03-01", 2); $erg_new = AlleSchichtenImZeitbereich("2024-02-01", "2024-03-01", 2); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old AlleSchichtenImZeitbereich returns".var_export($erg_old, true)."\n"; - echo "New AlleSchichtenImZeitbereich returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old AlleSchichtenImZeitbereich returns" . var_export($erg_old, true) . "\n"; + echo "New AlleSchichtenImZeitbereich returns '" . var_export($erg_new, true) . "'\n"; } $erg_old = old\AlleSchichtenImZeitbereich($dbl, "2024-03-01", "2024-04-01", 2); $erg_new = AlleSchichtenImZeitbereich("2024-03-01", "2024-04-01", 2); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old AlleSchichtenImZeitbereich returns".var_export($erg_old, true)."\n"; - echo "New AlleSchichtenImZeitbereich returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old AlleSchichtenImZeitbereich returns" . var_export($erg_old, true) . "\n"; + echo "New AlleSchichtenImZeitbereich returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "AlleSchichtenImZeitbereich ok\n"; } - - else echo "AlleSchichtenImZeitbereich ok\n"; } // ok -function TestAlleSchichtenEinesHelfers(){ +function TestAlleSchichtenEinesHelfers() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer = $_SESSION; - $erg_old = old\AlleSchichtenEinesHelfers($dbl,$helfer['HelferID']); + $erg_old = old\AlleSchichtenEinesHelfers($dbl, $helfer['HelferID']); $erg_new = AlleSchichtenEinesHelfers($helfer['HelferID']); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old AlleSchichtenEinesHelfers returns".var_export($erg_old, true)."\n"; - echo "New AlleSchichtenEinesHelfers returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old AlleSchichtenEinesHelfers returns" . var_export($erg_old, true) . "\n"; + echo "New AlleSchichtenEinesHelfers returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "AlleSchichtenEinesHelfers ok\n"; } - else echo "AlleSchichtenEinesHelfers ok\n"; } // ok -function TestHelferLoeschen(){ +function TestHelferLoeschen() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer1 = $_SESSION; - HelferLogin("max3@example.com", "hola531", 0); + HelferLogin("max3@example.com", "hola531", 0); $helfer2 = $_SESSION; ob_start(); - $erg_old1 = old\HelferLoeschen($dbl, $helfer1['HelferID'],0); - $erg_new1 = HelferLoeschen($helfer2['HelferID'],0); + $erg_old1 = old\HelferLoeschen($dbl, $helfer1['HelferID'], 0); + $erg_new1 = HelferLoeschen($helfer2['HelferID'], 0); $schichten = AlleSchichtenEinesHelfers($helfer1['HelferID']); - foreach($schichten as $schicht) - { + foreach ($schichten as $schicht) { HelferVonSchichtLoeschen($helfer1['HelferID'], $schicht['EinzelSchichtID']); } $schichten = AlleSchichtenEinesHelfers($helfer2['HelferID']); - foreach($schichten as $schicht) - { + foreach ($schichten as $schicht) { HelferVonSchichtLoeschen($helfer2['HelferID'], $schicht['EinzelSchichtID']); } - $erg_old2 = old\HelferLoeschen($dbl, $helfer1['HelferID'],0); - $erg_new2 = HelferLoeschen($helfer2['HelferID'],0); + $erg_old2 = old\HelferLoeschen($dbl, $helfer1['HelferID'], 0); + $erg_new2 = HelferLoeschen($helfer2['HelferID'], 0); ob_end_clean(); - if((gettype($erg_old1) != gettype($erg_new1)) || ($erg_old1 != $erg_new1)){ - echo "Old HelferLoeschen returns".var_export($erg_old1, true)."\n"; - echo "New HelferLoeschen returns '".var_export($erg_new1, true)."'\n"; + if ((gettype($erg_old1) != gettype($erg_new1)) || ($erg_old1 != $erg_new1)) { + echo "Old HelferLoeschen returns" . var_export($erg_old1, true) . "\n"; + echo "New HelferLoeschen returns '" . var_export($erg_new1, true) . "'\n"; + } elseif ((gettype($erg_old2) != gettype($erg_new2)) || ($erg_old2 != $erg_new2)) { + echo "Old HelferLoeschen returns" . var_export($erg_old2, true) . "\n"; + echo "New HelferLoeschen returns '" . var_export($erg_new2, true) . "'\n"; + } else { + echo "HelferLoeschen ok\n"; } - else if((gettype($erg_old2) != gettype($erg_new2)) || ($erg_old2 != $erg_new2)){ - echo "Old HelferLoeschen returns".var_export($erg_old2, true)."\n"; - echo "New HelferLoeschen returns '".var_export($erg_new2, true)."'\n"; - } - else echo "HelferLoeschen ok\n"; } // ok -function TestSchichtIdArrayEinesHelfers(){ +function TestSchichtIdArrayEinesHelfers() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer = $_SESSION; $erg_old = old\SchichtIdArrayEinesHelfers($dbl, $helfer['HelferID']); $erg_new = SchichtIdArrayEinesHelfers($helfer['HelferID']); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old SchichtIdArrayEinesHelfers returns".var_export($erg_old, true)."\n"; - echo "New SchichtIdArrayEinesHelfers returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old SchichtIdArrayEinesHelfers returns" . var_export($erg_old, true) . "\n"; + echo "New SchichtIdArrayEinesHelfers returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "SchichtIdArrayEinesHelfers ok\n"; } - else echo "SchichtIdArrayEinesHelfers ok\n"; } // ok -function TestAlleSchichtenEinesHelfersVonJetzt(){ +function TestAlleSchichtenEinesHelfersVonJetzt() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer = $_SESSION; $dienste = GetDienste(); - NewSchicht($dienste[0]["DienstID"], date('Y-m-d H:i',time()+60*60*24), date('Y-m-d H:i',time()+60*60*24+60*60*1.5), 2, "01:30"); + NewSchicht($dienste[0]["DienstID"], date('Y-m-d H:i', time() + 60 * 60 * 24), date('Y-m-d H:i', time() + 60 * 60 * 24 + 60 * 60 * 1.5), 2, "01:30"); $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); - HelferSchichtZuweisen($helfer['HelferID'], $schichten[2]['SchichtID'],0); + HelferSchichtZuweisen($helfer['HelferID'], $schichten[2]['SchichtID'], 0); $erg_old = old\AlleSchichtenEinesHelfersVonJetzt($dbl, $helfer['HelferID']); $erg_new = AlleSchichtenEinesHelfersVonJetzt($helfer['HelferID']); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old AlleSchichtenEinesHelfersVonJetzt returns".var_export($erg_old, true)."\n"; - echo "New AlleSchichtenEinesHelfersVonJetzt returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old AlleSchichtenEinesHelfersVonJetzt returns" . var_export($erg_old, true) . "\n"; + echo "New AlleSchichtenEinesHelfersVonJetzt returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "AlleSchichtenEinesHelfersVonJetzt ok\n"; } - else echo "AlleSchichtenEinesHelfersVonJetzt ok\n"; } // ok -function TestSchichtenSummeEinesHelfers(){ +function TestSchichtenSummeEinesHelfers() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer = $_SESSION; $erg_old = old\SchichtenSummeEinesHelfers($dbl, $helfer['HelferID']); $erg_new = SchichtenSummeEinesHelfers($helfer['HelferID']); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old SchichtenSummeEinesHelfers returns".var_export($erg_old, true)."\n"; - echo "New SchichtenSummeEinesHelfers returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old SchichtenSummeEinesHelfers returns" . var_export($erg_old, true) . "\n"; + echo "New SchichtenSummeEinesHelfers returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "SchichtenSummeEinesHelfers ok\n"; } - else echo "SchichtenSummeEinesHelfers ok\n"; } // ok (looked at log file afterwards) -function TestLogSchichtEingabe(){ +function TestLogSchichtEingabe() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer = $_SESSION; $dienste = GetDienste(); $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); @@ -320,240 +343,268 @@ function TestLogSchichtEingabe(){ } // ok -function TestHelferSchichtZuweisen(){ +function TestHelferSchichtZuweisen() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer1 = $_SESSION; - HelferLogin("max3@example.com", "hola531", 0); + HelferLogin("max3@example.com", "hola531", 0); $helfer2 = $_SESSION; $dienste = GetDienste(); $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); - $erg_old = old\HelferSchichtZuweisen($dbl, $helfer1['HelferID'], $schichten[0]['SchichtID'],0); - $erg_new = HelferSchichtZuweisen($helfer2['HelferID'], $schichten[0]['SchichtID'],0); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferSchichtZuweisen returns".var_export($erg_old, true)."\n"; - echo "New HelferSchichtZuweisen returns '".var_export($erg_new, true)."'\n"; + $erg_old = old\HelferSchichtZuweisen($dbl, $helfer1['HelferID'], $schichten[0]['SchichtID'], 0); + $erg_new = HelferSchichtZuweisen($helfer2['HelferID'], $schichten[0]['SchichtID'], 0); + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old HelferSchichtZuweisen returns" . var_export($erg_old, true) . "\n"; + echo "New HelferSchichtZuweisen returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "HelferSchichtZuweisen ok\n"; } - else echo "HelferSchichtZuweisen ok\n"; } // ok -function TestHelferVonSchichtLoeschen(){ +function TestHelferVonSchichtLoeschen() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer1 = $_SESSION; $schichten1 = AlleSchichtenEinesHelfers($helfer1['HelferID']); - HelferLogin("max3@example.com", "hola531", 0); + HelferLogin("max3@example.com", "hola531", 0); $helfer2 = $_SESSION; $schichten2 = AlleSchichtenEinesHelfers($helfer2['HelferID']); $erg_old = old\HelferVonSchichtLoeschen($dbl, $helfer1['HelferID'], $schichten1[0]['EinzelSchichtID']); $erg_new = HelferVonSchichtLoeschen($helfer2['HelferID'], $schichten2[0]['EinzelSchichtID']); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferVonSchichtLoeschen returns".var_export($erg_old, true)."\n"; - echo "New HelferVonSchichtLoeschen returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old HelferVonSchichtLoeschen returns" . var_export($erg_old, true) . "\n"; + echo "New HelferVonSchichtLoeschen returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "HelferVonSchichtLoeschen ok\n"; } - else echo "HelferVonSchichtLoeschen ok\n"; } // ok -function TestHelferVonSchichtLoeschen_SchichtID(){ +function TestHelferVonSchichtLoeschen_SchichtID() +{ $dbl = old\ConnectDB(); $schichten = AlleSchichten(1, 2); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer1 = $_SESSION; - HelferSchichtZuweisen($helfer1['HelferID'], $schichten[1]['SchichtID'],0); - HelferLogin("max3@example.com", "hola531", 0); + HelferSchichtZuweisen($helfer1['HelferID'], $schichten[1]['SchichtID'], 0); + HelferLogin("max3@example.com", "hola531", 0); $helfer2 = $_SESSION; - HelferSchichtZuweisen($helfer2['HelferID'], $schichten[1]['SchichtID'],0); - $erg_old = old\HelferVonSchichtLoeschen_SchichtID($dbl,$helfer1['HelferID'], $schichten[1]['SchichtID']); + HelferSchichtZuweisen($helfer2['HelferID'], $schichten[1]['SchichtID'], 0); + $erg_old = old\HelferVonSchichtLoeschen_SchichtID($dbl, $helfer1['HelferID'], $schichten[1]['SchichtID']); $erg_new = HelferVonSchichtLoeschen_SchichtID($helfer2['HelferID'], $schichten[1]['SchichtID']); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferVonSchichtLoeschen_SchichtID returns".var_export($erg_old, true)."\n"; - echo "New HelferVonSchichtLoeschen_SchichtID returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old HelferVonSchichtLoeschen_SchichtID returns" . var_export($erg_old, true) . "\n"; + echo "New HelferVonSchichtLoeschen_SchichtID returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "HelferVonSchichtLoeschen_SchichtID ok\n"; } - else echo "HelferVonSchichtLoeschen_SchichtID ok\n"; } // ok -function TestDetailSchicht(){ +function TestDetailSchicht() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer = $_SESSION; $schichten = AlleSchichtenEinesHelfers($helfer['HelferID']); $erg_old = old\DetailSchicht($dbl, $schichten[0]['SchichtID']); $erg_new = DetailSchicht($schichten[0]['SchichtID']); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old DetailSchicht returns".var_export($erg_old, true)."\n"; - echo "New DetailSchicht returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old DetailSchicht returns" . var_export($erg_old, true) . "\n"; + echo "New DetailSchicht returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "DetailSchicht ok\n"; } - else echo "DetailSchicht ok\n"; } // ok -function TestBeteiligteHelfer(){ +function TestBeteiligteHelfer() +{ $dbl = old\ConnectDB(); - HelferLogin("max2@example.com", "hola234", 0); + HelferLogin("max2@example.com", "hola234", 0); $helfer = $_SESSION; $schichten = AlleSchichtenEinesHelfers($helfer['HelferID']); $erg_old = old\BeteiligteHelfer($dbl, $schichten[0]['SchichtID']); $erg_new = BeteiligteHelfer($schichten[0]['SchichtID']); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old BeteiligteHelfer returns".var_export($erg_old, true)."\n"; - echo "New BeteiligteHelfer returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old BeteiligteHelfer returns" . var_export($erg_old, true) . "\n"; + echo "New BeteiligteHelfer returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "BeteiligteHelfer ok\n"; } - else echo "BeteiligteHelfer ok\n"; } // ok -function TestGetDienste(){ +function TestGetDienste() +{ $dbl = old\ConnectDB(); $erg_old = old\GetDienste($dbl); $erg_new = GetDienste(); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old GetDienste returns".var_export($erg_old, true)."\n"; - echo "New GetDienste returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old GetDienste returns" . var_export($erg_old, true) . "\n"; + echo "New GetDienste returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "GetDienste ok\n"; } - else echo "GetDienste ok\n"; } // ok -function TestGetDiensteChilds(){ +function TestGetDiensteChilds() +{ $dienste = GetDienste(); $dbl = old\ConnectDB(); $erg_old_empty = old\GetDiensteChilds($dbl, $dienste[1]["DienstID"]); $erg_new_empty = GetDiensteChilds($dienste[1]["DienstID"]); $erg_old_child = old\GetDiensteChilds($dbl, $dienste[0]["DienstID"]); $erg_new_child = GetDiensteChilds($dienste[0]["DienstID"]); - if((gettype($erg_old_empty) != gettype($erg_new_empty)) || ($erg_old_empty != $erg_new_empty)){ - echo "Old GetDiensteChilds empty returns".var_export($erg_old_empty, true)."\n"; - echo "New GetDiensteChilds empty returns '".var_export($erg_new_empty, true)."'\n"; + if ((gettype($erg_old_empty) != gettype($erg_new_empty)) || ($erg_old_empty != $erg_new_empty)) { + echo "Old GetDiensteChilds empty returns" . var_export($erg_old_empty, true) . "\n"; + echo "New GetDiensteChilds empty returns '" . var_export($erg_new_empty, true) . "'\n"; + } elseif ((gettype($erg_old_child) != gettype($erg_new_child)) || ($erg_old_child != $erg_new_child)) { + echo "Old GetDiensteChilds child returns" . var_export($erg_old_child, true) . "\n"; + echo "New GetDiensteChilds child returns '" . var_export($erg_new_child, true) . "'\n"; + } else { + echo "GetDiensteChilds ok\n"; } - else if((gettype($erg_old_child) != gettype($erg_new_child)) || ($erg_old_child != $erg_new_child)){ - echo "Old GetDiensteChilds child returns".var_export($erg_old_child, true)."\n"; - echo "New GetDiensteChilds child returns '".var_export($erg_new_child, true)."'\n"; - } - else echo "GetDiensteChilds ok\n"; } // ok -function TestChangeDienst(){ +function TestChangeDienst() +{ $dienste = GetDienste(); - HelferLogin("max3@example.com", "hola531", 0); + HelferLogin("max3@example.com", "hola531", 0); $dbl = old\ConnectDB(); $erg_old = old\ChangeDienst($dbl, $dienste[0]["DienstID"], "Frühstück", "Foyer", "SChnibbeln", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); $erg_new = ChangeDienst($dienste[1]["DienstID"], "Frühstück", "Foyer", "SChnibbeln", $_SESSION["HelferID"], $dienste[0]["DienstID"], $_SESSION["HelferLevel"]); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old ChangeDienst returns".var_export($erg_old, true)."\n"; - echo "New ChangeDienst returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old ChangeDienst returns" . var_export($erg_old, true) . "\n"; + echo "New ChangeDienst returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "ChangeDienst ok\n"; } - else echo "ChangeDienst ok\n"; } // ok -function TestNewDienst(){ +function TestNewDienst() +{ $dbl = old\ConnectDB(); - HelferLogin("max3@example.com", "hola531", 0); + HelferLogin("max3@example.com", "hola531", 0); $erg_old = old\NewDienst($dbl, "egal", "Badgekontrolle", "Turnhalle", "Nur Jongleure mit Badge durchlassen", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); $erg_new = NewDienst("Badgekontrolle", "Turnhalle", "Nur Jongleure mit Badge durchlassen", $_SESSION["HelferID"], 0, $_SESSION["HelferLevel"]); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old NewDienst returns".var_export($erg_old, true)."\n"; - echo "New NewDienst returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old NewDienst returns" . var_export($erg_old, true) . "\n"; + echo "New NewDienst returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "NewDienst ok\n"; } - else echo "NewDienst ok\n"; } // ok -function TestDeleteDienst(){ +function TestDeleteDienst() +{ $dbl = old\ConnectDB(); $dienste = GetDienste(); $erg_old = old\DeleteDienst($dbl, $dienste[0]["DienstID"], false); $erg_new = DeleteDienst($dienste[1]["DienstID"], false); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old DeleteDienst returns".var_export($erg_old, true)."\n"; - echo "New DeleteDienst returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old DeleteDienst returns" . var_export($erg_old, true) . "\n"; + echo "New DeleteDienst returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "DeleteDienst ok\n"; } - else echo "DeleteDienst ok\n"; } // ok -function TestGetDiensteForDay(){ +function TestGetDiensteForDay() +{ $dbl = old\ConnectDB(); $erg_old = old\GetDiensteForDay($dbl, 2, "2024-02-16"); $erg_new = GetDiensteForDay(2, "2024-02-16"); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old GetDiensteForDay returns".var_export($erg_old, true)."\n"; - echo "New GetDiensteForDay returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old GetDiensteForDay returns" . var_export($erg_old, true) . "\n"; + echo "New GetDiensteForDay returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "GetDiensteForDay ok\n"; } - else echo "GetDiensteForDay ok\n"; } // ok -function TestGetSchichtenForDienstForDay(){ +function TestGetSchichtenForDienstForDay() +{ $dienste = GetDienste(); $dbl = old\ConnectDB(); $erg_old_good = old\GetSchichtenForDienstForDay($dbl, $dienste[0]["DienstID"], "2024-02-16"); $erg_new_good = GetSchichtenForDienstForDay($dienste[0]["DienstID"], "2024-02-16"); $erg_old_bad = old\GetSchichtenForDienstForDay($dbl, $dienste[0]["DienstID"], "2024-02-15"); $erg_new_bad = GetSchichtenForDienstForDay($dienste[0]["DienstID"], "2024-02-15"); - if((gettype($erg_old_good) != gettype($erg_new_good)) || ($erg_old_good != $erg_new_good)){ - echo "Old GetSchichtenForDienstForDay returns".var_export($erg_old_good, true)."\n"; - echo "New GetSchichtenForDienstForDay returns '".var_export($erg_new_good, true)."'\n"; + if ((gettype($erg_old_good) != gettype($erg_new_good)) || ($erg_old_good != $erg_new_good)) { + echo "Old GetSchichtenForDienstForDay returns" . var_export($erg_old_good, true) . "\n"; + echo "New GetSchichtenForDienstForDay returns '" . var_export($erg_new_good, true) . "'\n"; + } elseif ((gettype($erg_old_bad) != gettype($erg_new_bad)) || ($erg_old_bad != $erg_new_bad)) { + echo "Old GetSchichtenForDienstForDay returns" . var_export($erg_old_bad, true) . "\n"; + echo "New GetSchichtenForDienstForDay returns '" . var_export($erg_new_bad, true) . "'\n"; + } else { + echo "GetSchichtenForDienstForDay ok\n"; } - else if((gettype($erg_old_bad) != gettype($erg_new_bad)) || ($erg_old_bad != $erg_new_bad)){ - echo "Old GetSchichtenForDienstForDay returns".var_export($erg_old_bad, true)."\n"; - echo "New GetSchichtenForDienstForDay returns '".var_export($erg_new_bad, true)."'\n"; - } - else echo "GetSchichtenForDienstForDay ok\n"; } // ok -function TestGetSchichtenEinesDienstes(){ +function TestGetSchichtenEinesDienstes() +{ $dienste = GetDienste(); $dbl = old\ConnectDB(); $erg_old_good = old\GetSchichtenEinesDienstes($dbl, $dienste[0]["DienstID"]); $erg_new_good = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); $erg_old_bad = old\GetSchichtenEinesDienstes($dbl, 0); $erg_new_bad = GetSchichtenEinesDienstes(0); - if((gettype($erg_old_good) != gettype($erg_new_good)) || ($erg_old_good != $erg_new_good)){ - echo "Old GetSchichtenEinesDienstes returns".var_export($erg_old_good, true)."\n"; - echo "New GetSchichtenEinesDienstes returns '".var_export($erg_new_good, true)."'\n"; + if ((gettype($erg_old_good) != gettype($erg_new_good)) || ($erg_old_good != $erg_new_good)) { + echo "Old GetSchichtenEinesDienstes returns" . var_export($erg_old_good, true) . "\n"; + echo "New GetSchichtenEinesDienstes returns '" . var_export($erg_new_good, true) . "'\n"; + } elseif ((gettype($erg_old_bad) != gettype($erg_new_bad)) || ($erg_old_bad != $erg_new_bad)) { + echo "Old GetSchichtenEinesDienstes returns" . var_export($erg_old_bad, true) . "\n"; + echo "New GetSchichtenEinesDienstes returns '" . var_export($erg_new_bad, true) . "'\n"; + } else { + echo "GetSchichtenEinesDienstes ok\n"; } - else if((gettype($erg_old_bad) != gettype($erg_new_bad)) || ($erg_old_bad != $erg_new_bad)){ - echo "Old GetSchichtenEinesDienstes returns".var_export($erg_old_bad, true)."\n"; - echo "New GetSchichtenEinesDienstes returns '".var_export($erg_new_bad, true)."'\n"; - } - else echo "GetSchichtenEinesDienstes ok\n"; } // ok -function TestChangeSchicht(){ +function TestChangeSchicht() +{ $dienste = GetDienste(); $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); $dbl = old\ConnectDB(); $erg_old = old\ChangeSchicht($dbl, $schichten[0]["SchichtID"], "2024-02-16T09:00", "2024-02-16T10:30", 1, "01:00"); $erg_new = ChangeSchicht($schichten[1]["SchichtID"], "2024-02-16T10:30", "2024-02-16T12:00", 1, "01:00"); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old ChangeSchicht returns".var_export($erg_old, true)."\n"; - echo "New ChangeSchicht returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old ChangeSchicht returns" . var_export($erg_old, true) . "\n"; + echo "New ChangeSchicht returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "ChangeSchicht ok\n"; } - else echo "ChangeSchicht ok\n"; } // ok -function TestNewSchicht(){ +function TestNewSchicht() +{ $dienste = GetDienste(); $dbl = old\ConnectDB(); $erg_old = old\NewSchicht($dbl, $dienste[0]["DienstID"], "2024-02-15T09:00", "2024-02-15T10:30", 2, "01:30"); $erg_new = NewSchicht($dienste[0]["DienstID"], "2024-02-15T10:30", "2024-02-15T12:00", 2, "01:30"); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old NewSchicht returns".var_export($erg_old, true)."\n"; - echo "New NewSchicht returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old NewSchicht returns" . var_export($erg_old, true) . "\n"; + echo "New NewSchicht returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "NewSchicht ok\n"; } - else echo "NewSchicht ok\n"; } // ok -function TestDeleteSchicht(){ +function TestDeleteSchicht() +{ $dbl = old\ConnectDB(); $dienste = GetDienste(); NewSchicht($dienste[0]["DienstID"], "2024-02-17T10:30", "2024-02-17T12:00", 2, "01:30"); @@ -561,27 +612,31 @@ function TestDeleteSchicht(){ $schichten = GetSchichtenEinesDienstes($dienste[0]["DienstID"]); $erg_old = old\DeleteSchicht($dbl, $schichten[4]["SchichtID"], false); $erg_new = DeleteSchicht($schichten[5]["SchichtID"], false); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old DeleteSchicht returns".var_export($erg_old, true)."\n"; - echo "New DeleteSchicht returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old DeleteSchicht returns" . var_export($erg_old, true) . "\n"; + echo "New DeleteSchicht returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "DeleteSchicht ok\n"; } - else echo "DeleteSchicht ok\n"; } // ok -function TestAlleHelferSchichtenUebersicht(){ +function TestAlleHelferSchichtenUebersicht() +{ $dbl = old\ConnectDB(); $erg_old = old\AlleHelferSchichtenUebersicht($dbl); $erg_new = AlleHelferSchichtenUebersicht(); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old AlleHelferSchichtenUebersicht returns".var_export($erg_old, true)."\n"; - echo "New AlleHelferSchichtenUebersicht returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old AlleHelferSchichtenUebersicht returns" . var_export($erg_old, true) . "\n"; + echo "New AlleHelferSchichtenUebersicht returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "AlleHelferSchichtenUebersicht ok\n"; } - else echo "AlleHelferSchichtenUebersicht ok\n"; } // ok -function TestDatenbankAufDeutsch(){ +function TestDatenbankAufDeutsch() +{ $dbl = old\ConnectDB(); old\DatenbankAufDeutsch($dbl); DatenbankAufDeutsch(); @@ -589,7 +644,8 @@ function TestDatenbankAufDeutsch(){ } // ok, checked by hand (will be different for both connections) -function TestLastInsertId(){ +function TestLastInsertId() +{ $dbl = old\ConnectDB(); $dienste = GetDienste(); Old\NewSchicht($dbl, $dienste[0]["DienstID"], "2024-02-17T10:30", "2024-02-17T12:00", 2, "01:30"); @@ -599,15 +655,17 @@ function TestLastInsertId(){ } // ok -function TestHelferLevel(){ +function TestHelferLevel() +{ $dbl = old\ConnectDB(); $erg_old = old\HelferLevel($dbl); $erg_new = HelferLevel(); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferLevel returns".var_export($erg_old, true)."\n"; - echo "New HelferLevel returns '".var_export($erg_new, true)."'\n"; + if ((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)) { + echo "Old HelferLevel returns" . var_export($erg_old, true) . "\n"; + echo "New HelferLevel returns '" . var_export($erg_new, true) . "'\n"; + } else { + echo "HelferLevel ok\n"; } - else echo "HelferLevel ok\n"; } TestCreateHelfer(); @@ -648,4 +706,3 @@ TestHelferLevel(); TestHelferVonSchichtLoeschen_SchichtID(); TestDeleteSchicht(); TestHelferLoeschen(); -?> From 3b23307652778e88490a36a0d83959d154a87f15 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 22 Mar 2024 17:23:14 +0100 Subject: [PATCH 47/51] Add namespace to make php checker happy --- html/Admin.php | 3 + html/AdminAlleSchichten.php | 3 + html/AdminDienste.php | 3 + html/AdminHelferUebersicht.php | 3 + html/AdminMeineSchichten.php | 3 + html/AdminUserdaten.php | 3 + html/AlleSchichten.php | 3 + html/Ausdrucke-alles.php | 3 + html/Ausdrucke.php | 3 + html/CreateHelfer.php | 3 + html/DecodeToken.php | 3 + html/DetailsSchichten.php | 3 + html/EmailZuToken.php | 3 + html/Info.php | 3 + html/Kalender-all.php | 3 + html/Kalender.php | 4 +- html/MeineSchichten.php | 3 + html/ReadLog.php | 3 + html/SQL.php | 2 + html/SQL_old.php | 1 + html/Setup.php | 2 + html/TeilnehmerSchichtenAusdruck.php | 3 + html/TeilnehmerSchichtenAusdruck2.php | 3 + html/UrlLogin.php | 2 + html/Userdaten.php | 3 + html/Wizard.php | 96 +------------------------- html/WizardStep.php | 97 +++++++++++++++++++++++++++ html/_crypt.php | 2 + html/_login.php | 3 + html/_zeitbereich.php | 2 + html/index.php | 3 + html/konfiguration.php | 4 +- html/testPDO.php | 2 + 33 files changed, 185 insertions(+), 95 deletions(-) create mode 100644 html/WizardStep.php diff --git a/html/Admin.php b/html/Admin.php index 15e34dd..e3b95c3 100644 --- a/html/Admin.php +++ b/html/Admin.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index 4648b1c..cb6daf4 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsytem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/AdminDienste.php b/html/AdminDienste.php index 24ae838..f7c329f 100644 --- a/html/AdminDienste.php +++ b/html/AdminDienste.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/AdminHelferUebersicht.php b/html/AdminHelferUebersicht.php index bec5ddb..98d762a 100644 --- a/html/AdminHelferUebersicht.php +++ b/html/AdminHelferUebersicht.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/AdminMeineSchichten.php b/html/AdminMeineSchichten.php index 8a262bd..6c6e9fc 100644 --- a/html/AdminMeineSchichten.php +++ b/html/AdminMeineSchichten.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/AdminUserdaten.php b/html/AdminUserdaten.php index 74de366..ec0b475 100644 --- a/html/AdminUserdaten.php +++ b/html/AdminUserdaten.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/AlleSchichten.php b/html/AlleSchichten.php index fe702ee..497c6d3 100644 --- a/html/AlleSchichten.php +++ b/html/AlleSchichten.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/Ausdrucke-alles.php b/html/Ausdrucke-alles.php index 40b7f13..fa1aabe 100644 --- a/html/Ausdrucke-alles.php +++ b/html/Ausdrucke-alles.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/Ausdrucke.php b/html/Ausdrucke.php index 645ab38..a1eef36 100644 --- a/html/Ausdrucke.php +++ b/html/Ausdrucke.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/CreateHelfer.php b/html/CreateHelfer.php index 3113758..bd1d445 100644 --- a/html/CreateHelfer.php +++ b/html/CreateHelfer.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/DecodeToken.php b/html/DecodeToken.php index 075da75..4da02b1 100644 --- a/html/DecodeToken.php +++ b/html/DecodeToken.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/DetailsSchichten.php b/html/DetailsSchichten.php index c049e16..df6ea7c 100644 --- a/html/DetailsSchichten.php +++ b/html/DetailsSchichten.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/EmailZuToken.php b/html/EmailZuToken.php index 9b822de..10fe592 100644 --- a/html/EmailZuToken.php +++ b/html/EmailZuToken.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/Info.php b/html/Info.php index 2aa3dbe..7bc3a85 100644 --- a/html/Info.php +++ b/html/Info.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/Kalender-all.php b/html/Kalender-all.php index a20a0e3..3ed3814 100644 --- a/html/Kalender-all.php +++ b/html/Kalender-all.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + require_once 'konfiguration.php'; SESSION_START(); require 'SQL.php'; diff --git a/html/Kalender.php b/html/Kalender.php index dc6e0a6..1272ca5 100644 --- a/html/Kalender.php +++ b/html/Kalender.php @@ -1,8 +1,10 @@ <?php + +namespace Bengelsystem; + require_once 'konfiguration.php'; SESSION_START(); require 'SQL.php'; -$db_link = ConnectDB(); require '_login.php'; require '_zeitbereich.php'; ?> diff --git a/html/MeineSchichten.php b/html/MeineSchichten.php index 146ba44..5184d16 100644 --- a/html/MeineSchichten.php +++ b/html/MeineSchichten.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsytem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/ReadLog.php b/html/ReadLog.php index b0358ac..3d6e37a 100644 --- a/html/ReadLog.php +++ b/html/ReadLog.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsytem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/SQL.php b/html/SQL.php index 2b0b5a9..8a01743 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -1,5 +1,7 @@ <?php +namespace Bengelsytem; + require_once 'konfiguration.php'; class DB diff --git a/html/SQL_old.php b/html/SQL_old.php index 47361a5..6e8f4ad 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -1,5 +1,6 @@ <?php +namespace Bengelsytem; namespace old; require_once 'konfiguration.php'; diff --git a/html/Setup.php b/html/Setup.php index d1f111b..1ae669f 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -1,5 +1,7 @@ <?php +namespace Bengelsytem; + require_once("Wizard.php"); $wizard = new Wizard("../setupWizard.json"); diff --git a/html/TeilnehmerSchichtenAusdruck.php b/html/TeilnehmerSchichtenAusdruck.php index 28bad3c..c17f029 100644 --- a/html/TeilnehmerSchichtenAusdruck.php +++ b/html/TeilnehmerSchichtenAusdruck.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsytem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/TeilnehmerSchichtenAusdruck2.php b/html/TeilnehmerSchichtenAusdruck2.php index 6aaf031..f400665 100644 --- a/html/TeilnehmerSchichtenAusdruck2.php +++ b/html/TeilnehmerSchichtenAusdruck2.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsytem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/UrlLogin.php b/html/UrlLogin.php index eba3ff8..6450627 100644 --- a/html/UrlLogin.php +++ b/html/UrlLogin.php @@ -1,5 +1,7 @@ <?php +namespace Bengelsytem; + require_once 'konfiguration.php'; SESSION_START(); require 'SQL.php'; diff --git a/html/Userdaten.php b/html/Userdaten.php index b7d7079..2566fe3 100644 --- a/html/Userdaten.php +++ b/html/Userdaten.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsytem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/Wizard.php b/html/Wizard.php index 3304ca6..411af92 100644 --- a/html/Wizard.php +++ b/html/Wizard.php @@ -1,98 +1,8 @@ <?php -class WizardStep -{ - public $page = ""; - public array $redirects = array(); - public string $warning = ""; - public $code = null; - public function __construct($step) - { - if (isset($step['page'])) { - $this->page = $step['page']; - } - if (isset($step['redirects'])) { - $this->redirects = $step['redirects']; - } - } - public function setCurrentStep() - { - if (!empty($this->redirects)) { - foreach ($this->redirects as $redirect) { - if (isset($redirect['==']) && isset($redirect['id'])) { - foreach ($redirect['=='] as $key => $value) { - if (isset($_POST[$key]) && $_POST[$key] == $value) { - $_POST['step'] = $redirect['id']; - if (isset($redirect['warning'])) { - $this->warning = $redirect['warning']; - } - return; - } - } - } - if (isset($redirect['!=']) && isset($redirect['id'])) { - foreach ($redirect['!='] as $key => $value) { - if (isset($_POST[$key]) && $_POST[$key] != $value) { - $_POST['step'] = $redirect['id']; - if (isset($redirect['warning'])) { - $this->warning = $redirect['warning']; - } - return; - } - } - } - if (isset($redirect['>']) && isset($redirect['id'])) { - foreach ($redirect['>'] as $key => $value) { - if (isset($_POST[$key]) && $_POST[$key] > $value) { - $_POST['step'] = $redirect['id']; - if (isset($redirect['warning'])) { - $this->warning = $redirect['warning']; - } - return; - } - } - } - if (isset($redirect['<']) && isset($redirect['id'])) { - foreach ($redirect['<'] as $key => $value) { - if (isset($_POST[$key]) && $_POST[$key] < $value) { - $_POST['step'] = $redirect['id']; - if (isset($redirect['warning'])) { - $this->warning = $redirect['warning']; - } - return; - } - } - } - if (isset($redirect['>=']) && isset($redirect['id'])) { - foreach ($redirect['>='] as $key => $value) { - if (isset($_POST[$key]) && $_POST[$key] >= $value) { - $_POST['step'] = $redirect['id']; - if (isset($redirect['warning'])) { - $this->warning = $redirect['warning']; - } - return; - } - } - } - if (isset($redirect['<=']) && isset($redirect['id'])) { - foreach ($redirect['<='] as $key => $value) { - if (isset($_POST[$key]) && $_POST[$key] <= $value) { - $_POST['step'] = $redirect['id']; - if (isset($redirect['warning'])) { - $this->warning = $redirect['warning']; - } - return; - } - } - } - } - } - } - public function setCode(callable $function) - { - $this->code = $function; - } -} +namespace Bengelsytem; + +require_once 'WizardStep.php'; class Wizard { diff --git a/html/WizardStep.php b/html/WizardStep.php new file mode 100644 index 0000000..d8dd487 --- /dev/null +++ b/html/WizardStep.php @@ -0,0 +1,97 @@ +<?php + +namespace Bengelsytem; + +class WizardStep +{ + public $page = ""; + public array $redirects = array(); + public string $warning = ""; + public $code = null; + public function __construct($step) + { + if (isset($step['page'])) { + $this->page = $step['page']; + } + if (isset($step['redirects'])) { + $this->redirects = $step['redirects']; + } + } + public function setCurrentStep() + { + if (!empty($this->redirects)) { + foreach ($this->redirects as $redirect) { + if (isset($redirect['==']) && isset($redirect['id'])) { + foreach ($redirect['=='] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] == $value) { + $_POST['step'] = $redirect['id']; + if (isset($redirect['warning'])) { + $this->warning = $redirect['warning']; + } + return; + } + } + } + if (isset($redirect['!=']) && isset($redirect['id'])) { + foreach ($redirect['!='] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] != $value) { + $_POST['step'] = $redirect['id']; + if (isset($redirect['warning'])) { + $this->warning = $redirect['warning']; + } + return; + } + } + } + if (isset($redirect['>']) && isset($redirect['id'])) { + foreach ($redirect['>'] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] > $value) { + $_POST['step'] = $redirect['id']; + if (isset($redirect['warning'])) { + $this->warning = $redirect['warning']; + } + return; + } + } + } + if (isset($redirect['<']) && isset($redirect['id'])) { + foreach ($redirect['<'] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] < $value) { + $_POST['step'] = $redirect['id']; + if (isset($redirect['warning'])) { + $this->warning = $redirect['warning']; + } + return; + } + } + } + if (isset($redirect['>=']) && isset($redirect['id'])) { + foreach ($redirect['>='] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] >= $value) { + $_POST['step'] = $redirect['id']; + if (isset($redirect['warning'])) { + $this->warning = $redirect['warning']; + } + return; + } + } + } + if (isset($redirect['<=']) && isset($redirect['id'])) { + foreach ($redirect['<='] as $key => $value) { + if (isset($_POST[$key]) && $_POST[$key] <= $value) { + $_POST['step'] = $redirect['id']; + if (isset($redirect['warning'])) { + $this->warning = $redirect['warning']; + } + return; + } + } + } + } + } + } + public function setCode(callable $function) + { + $this->code = $function; + } +} diff --git a/html/_crypt.php b/html/_crypt.php index dcb2ef3..ef33313 100644 --- a/html/_crypt.php +++ b/html/_crypt.php @@ -1,5 +1,7 @@ <?php +namespace Bengelsystem; + function encode_string($key, $email, $level, $verification) { // String verification anfuegen am Ende, um abgeschnittene URLs zu verhindern diff --git a/html/_login.php b/html/_login.php index f84f199..1bfd8fc 100644 --- a/html/_login.php +++ b/html/_login.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsytem; + require_once 'konfiguration.php'; require_once 'SQL.php'; diff --git a/html/_zeitbereich.php b/html/_zeitbereich.php index cb3e3d3..0070f87 100644 --- a/html/_zeitbereich.php +++ b/html/_zeitbereich.php @@ -1,5 +1,7 @@ <?php +namespace Bengelsytem; + function KalenderDatum($start_date) { $format = 'Y,m,d'; diff --git a/html/index.php b/html/index.php index 05190aa..e560edc 100644 --- a/html/index.php +++ b/html/index.php @@ -1,4 +1,7 @@ <?php + +namespace Bengelsystem; + // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/konfiguration.php b/html/konfiguration.php index d3b4921..8b93153 100644 --- a/html/konfiguration.php +++ b/html/konfiguration.php @@ -1,5 +1,7 @@ - <?php + +namespace Bengelsytem; + // create the file below from the template: require_once __DIR__ . '/../bengelsystem_konfiguration.php'; diff --git a/html/testPDO.php b/html/testPDO.php index 9505797..e232722 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -1,5 +1,7 @@ <?php +namespace Bengelsytem; + session_start(); require_once 'SQL_old.php'; require_once 'SQL.php'; From 6c367ee7fc8128069c7b5eb577ebf80c757f1b29 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 22 Mar 2024 17:53:02 +0100 Subject: [PATCH 48/51] Fix function signatures modified in the meantime --- html/SQL.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/html/SQL.php b/html/SQL.php index 8a01743..a264dc0 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -190,13 +190,13 @@ function Helferdaten($HelferID) // ok ok ok -function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferIsAdmin = -1, $AdminID = 0) +function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewPasswort, $HelferID, $HelferLevel, $HelferIsAdmin = -1, $AdminID = 0) { $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,Admin=:admin Where HelferId=:id", 'password_empty_admin'); - $db->prepare(__METHOD__, "UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort Where HelferId=:id", 'password_given'); - $db->prepare(__METHOD__, "UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Passwort=:passwort,Admin=:admin Where HelferId=:id", 'password_given_admin'); + $db->prepare(__METHOD__, "UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,HelferLevel=:helferlevel Where HelferId=:id", 'password_empty'); + $db->prepare(__METHOD__, "UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,Admin=:admin,HelferLevel=:helferlevel Where HelferId=:id", 'password_empty_admin'); + $db->prepare(__METHOD__, "UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,HelferLevel=:helferlevel,Passwort=:passwort Where HelferId=:id", 'password_given'); + $db->prepare(__METHOD__, "UPDATE Helfer SET Name=:name,Email=:email,Handy=:handy,HelferLevel=:helferlevel,Passwort=:passwort,Admin=:admin Where HelferId=:id", 'password_given_admin'); if ($HelferNewPasswort == "") { //$sql = "UPDATE Helfer SET Name='$HelferName',Email='$HelferEmail',Handy='$HelferHandy' ".($HelferIsAdmin!=-1)?',Admin='$HelferIsAdmin.':'." Where HelferId=".$HelferID; @@ -205,6 +205,7 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP "name" => $HelferName, "email" => $HelferEmail, "handy" => $HelferHandy, + "helferlevel" => $HelferLevel, "id" => $HelferID ], 'password_empty'); $db->onErrorDie(__METHOD__, 'password_empty'); @@ -214,6 +215,7 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP "email" => $HelferEmail, "handy" => $HelferHandy, "admin" => $HelferIsAdmin, + "helferlevel" => $HelferLevel, "id" => $HelferID ], 'password_empty_admin'); $db->onErrorDie(__METHOD__, 'password_empty_admin'); @@ -233,6 +235,7 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP "email" => $HelferEmail, "handy" => $HelferHandy, "passwort" => $PasswortHash, + "helferlevel" => $HelferLevel, "id" => $HelferID ], 'password_given'); $db->onErrorDie(__METHOD__, 'password_given'); @@ -243,6 +246,7 @@ function HelferdatenAendern($HelferName, $HelferEmail, $HelferHandy, $HelferNewP "handy" => $HelferHandy, "passwort" => $PasswortHash, "admin" => $HelferIsAdmin, + "helferlevel" => $HelferLevel, "id" => $HelferID ], 'password_given_admin'); $db->onErrorDie(__METHOD__, 'password_given_admin'); @@ -711,7 +715,7 @@ function ChangeSchicht($SchichtID, $Von, $Bis, $Soll, $Dauer) } // ok ok ok -function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) +function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer, $HelferName) { /* @@ -740,12 +744,12 @@ function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer) if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000') { echo "Keine Schicht erstellt"; //echo $sql; - error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht konnte nicht angelegt werden mit $sql \n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); $err = $db->errorInfo(__METHOD__)[2]; die('Ungueltige Abfrage: ' . $err); } else { //TODO: DienstID aufloesen - error_log(date('Y-m-d H:i') . " NeueSchicht: Schicht wurde angelegt mit DienstID $DienstID, Von $Von Bis $Bis Soll $Soll \n", 3, LOGFILE); + error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName hat Schicht angelegt mit DienstID $DienstID, Von $Von Bis $Bis Soll $Soll \n", 3, LOGFILE); } } From c3c9231653660efa6fec2e5368d97ab568df3297 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 22 Mar 2024 18:02:20 +0100 Subject: [PATCH 49/51] Fix query string --- html/SQL.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/html/SQL.php b/html/SQL.php index a264dc0..88450ac 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -94,6 +94,11 @@ class DB die('Ungueltige Abfrage: ' . self::errorInfo($method, $variant)[2]); } } + + public function queryString($method, $variant = '') + { + return $stmts[$method . "::" . $variant]->queryString; + } } // ok ok ok @@ -744,6 +749,7 @@ function NewSchicht($DienstID, $Von, $Bis, $Soll, $Dauer, $HelferName) if (!is_null($db->errorCode(__METHOD__)) && $db->errorCode(__METHOD__) != '00000') { echo "Keine Schicht erstellt"; //echo $sql; + $sql = $db->queryString(__METHOD__); error_log(date('Y-m-d H:i') . " NeueSchicht: $HelferName konnte Schicht nicht angelegt mit $sql \n", 3, LOGFILE); $err = $db->errorInfo(__METHOD__)[2]; die('Ungueltige Abfrage: ' . $err); From 2f08159f0642e259b6efed48688d125997c3ead5 Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 22 Mar 2024 18:54:41 +0100 Subject: [PATCH 50/51] Typo --- html/AdminAlleSchichten.php | 2 +- html/MeineSchichten.php | 2 +- html/ReadLog.php | 2 +- html/SQL.php | 2 +- html/SQL_old.php | 2 +- html/Setup.php | 2 +- html/TeilnehmerSchichtenAusdruck.php | 2 +- html/TeilnehmerSchichtenAusdruck2.php | 2 +- html/UrlLogin.php | 2 +- html/Userdaten.php | 2 +- html/Wizard.php | 2 +- html/WizardStep.php | 2 +- html/_login.php | 2 +- html/_zeitbereich.php | 2 +- html/konfiguration.php | 2 +- html/testPDO.php | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/html/AdminAlleSchichten.php b/html/AdminAlleSchichten.php index cb6daf4..576edd7 100644 --- a/html/AdminAlleSchichten.php +++ b/html/AdminAlleSchichten.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; diff --git a/html/MeineSchichten.php b/html/MeineSchichten.php index 5184d16..379858d 100644 --- a/html/MeineSchichten.php +++ b/html/MeineSchichten.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; diff --git a/html/ReadLog.php b/html/ReadLog.php index 3d6e37a..9609a61 100644 --- a/html/ReadLog.php +++ b/html/ReadLog.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; diff --git a/html/SQL.php b/html/SQL.php index 88450ac..f4d883c 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; require_once 'konfiguration.php'; diff --git a/html/SQL_old.php b/html/SQL_old.php index 6e8f4ad..ad88fe0 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; namespace old; require_once 'konfiguration.php'; diff --git a/html/Setup.php b/html/Setup.php index 1ae669f..0a8c268 100644 --- a/html/Setup.php +++ b/html/Setup.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; require_once("Wizard.php"); diff --git a/html/TeilnehmerSchichtenAusdruck.php b/html/TeilnehmerSchichtenAusdruck.php index c17f029..c6f289e 100644 --- a/html/TeilnehmerSchichtenAusdruck.php +++ b/html/TeilnehmerSchichtenAusdruck.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; diff --git a/html/TeilnehmerSchichtenAusdruck2.php b/html/TeilnehmerSchichtenAusdruck2.php index f400665..e20c0a6 100644 --- a/html/TeilnehmerSchichtenAusdruck2.php +++ b/html/TeilnehmerSchichtenAusdruck2.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; diff --git a/html/UrlLogin.php b/html/UrlLogin.php index 6450627..7e893fb 100644 --- a/html/UrlLogin.php +++ b/html/UrlLogin.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; require_once 'konfiguration.php'; SESSION_START(); diff --git a/html/Userdaten.php b/html/Userdaten.php index 2566fe3..a2420e6 100644 --- a/html/Userdaten.php +++ b/html/Userdaten.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; // Login und Admin Status testen. Wenn kein Admin-Status, Weiterleiten auf index.php und beenden require_once 'konfiguration.php'; diff --git a/html/Wizard.php b/html/Wizard.php index 411af92..96e7e2e 100644 --- a/html/Wizard.php +++ b/html/Wizard.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; require_once 'WizardStep.php'; diff --git a/html/WizardStep.php b/html/WizardStep.php index d8dd487..434ade1 100644 --- a/html/WizardStep.php +++ b/html/WizardStep.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; class WizardStep { diff --git a/html/_login.php b/html/_login.php index 1bfd8fc..66d605a 100644 --- a/html/_login.php +++ b/html/_login.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; require_once 'konfiguration.php'; require_once 'SQL.php'; diff --git a/html/_zeitbereich.php b/html/_zeitbereich.php index 0070f87..7a12d32 100644 --- a/html/_zeitbereich.php +++ b/html/_zeitbereich.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; function KalenderDatum($start_date) { diff --git a/html/konfiguration.php b/html/konfiguration.php index 8b93153..c38c414 100644 --- a/html/konfiguration.php +++ b/html/konfiguration.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; // create the file below from the template: require_once __DIR__ . '/../bengelsystem_konfiguration.php'; diff --git a/html/testPDO.php b/html/testPDO.php index e232722..92ae0ca 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -1,6 +1,6 @@ <?php -namespace Bengelsytem; +namespace Bengelsystem; session_start(); require_once 'SQL_old.php'; From bb6f71fbe1ad26055a9f214b0e1303bb499c626d Mon Sep 17 00:00:00 2001 From: Florian Pesth <fpesth@gmx.de> Date: Fri, 22 Mar 2024 18:59:21 +0100 Subject: [PATCH 51/51] Fix namespace issue --- html/konfiguration.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/konfiguration.php b/html/konfiguration.php index c38c414..aafc7d7 100644 --- a/html/konfiguration.php +++ b/html/konfiguration.php @@ -15,6 +15,6 @@ $TageNamenDeutsch = array("So","Mo","Di","Mi","Do","Fr","Sa"); //Kalender-Konfiguration $dsn = "mysql:host=localhost;dbname=" . MYSQL_DATENBANK . ";charset=utf8mb4"; // dsn fuer Kalender $options = array( - PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, + \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, );