Files
adminandClaude Opus 5 210a6c47a8 Zentrale DB-Verbindung und Helfer fuer Prepared Statements
- incs/db.php: db_verbinden() setzt utf8mb4, strikten sql_mode und schaltet
  die mysqli-Exceptions von PHP 8.1+ ab, damit die bestehenden
  "or error(mysqli_error())"-Pruefungen weiter greifen.
- db_abfrage/db_zeilen/db_zeile/db_wert mit ?-Platzhaltern
  (mysqli_execute_query, PHP 8.2).
- Alle neun kopierten mysqli_connect/select_db-Stellen nutzen jetzt
  db_verbinden().

Nur zusammen mit der auf utf8mb4 migrierten Datenbank einsetzbar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 09:42:52 +02:00

113 lines
3.1 KiB
PHP

<?php
require_once("incs/constants.php");
session_name(SESSION_NAME);
session_start();
error_reporting(E_ERROR | E_PARSE);
ini_set("display_errors", "1");
require('./smarty/libs/Smarty.class.php');
setlocale(LC_TIME,"de_DE.utf8");
$smarty = new Smarty;
if(isset($_GET["action"]))
$action = $_GET["action"];
else
$action = "";
if($action=="rechnungadd"){
require_once('./incs/PHPMailer_v6/src/PHPMailer.php');
require_once('./incs/PHPMailer_v6/src/SMTP.php');
require_once('./incs/PHPMailer_v6/src/Exception.php');
}
require_once("update/database-update.php");
require_once("incs/settings.php");
require_once("incs/update.php");
require_once("incs/funcs.php");
require_once("incs/users.php");
require_once("incs/authHelper.php");
PopulateSessionVars();
$errors = array();
$warnings = array();
$messages = array();
$version = getthisversion();
if($version == -1)
{
$errors[] = "Versions-datei kann nicht beschrieben werden, bitte setzen Sie Schreibrechte für das Verzeichnis update/thisversion/";
}
$settings=readsettings();
// Die Ersteinrichtung schreibt die Config neu und kann die Datenbank leeren.
// Sie läuft ohne Login und darf deshalb nur erreichbar sein, solange es
// noch keine gültige Config gibt.
if($settings != "valid")
$action = "setup";
else if($action == "setup")
$action = "";
if($settings == "valid" && $action != "setup")
{
if(!$dbconn = db_verbinden($mysql_server, $mysql_user, $mysql_pw, $mysql_db))
$err = error("Verbindung zur Datenbank fehlgeschlagen: ".htmlspecialchars(mysqli_connect_error()));
$newversion = checknewversion($version);
$status = manageupdate($version, $newversion);
$version = $status[1];
}
$_SESSION["dbconn"] = $dbconn;
$qry = mysqli_query($dbconn,"SELECT id FROM termin WHERE termtime = '0000-00-00 00:00:00' AND (act_date = '0000-00-00 00:00:00' OR act_date < NOW()) AND DATE(datetime) > DATE(DATE_SUB(NOW(), INTERVAL 1 YEAR))");
$unterminiert = mysqli_num_rows($qry);
$qry = mysqli_query($dbconn,"SELECT id FROM termin WHERE DATE_FORMAT(termtime,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') AND done = 0");
$heute = mysqli_num_rows($qry);
include("incs/mysql_ecape_wrapper.php");
$text_version = substr($version, 0, 1).".".substr($version, 1, 1).".".substr($version, 2, 1);
$smarty->assign("SWfirma",$firma);
$_SESSION["firma"] = $firma;
$smarty->assign("text_version",$text_version);
$smarty->display('head.tpl');
if($_SESSION["login"] == "valid")
{
include(checkRightsNInclude());
}
else
{
switch($action)
{
case "setup":
include "./update/firststart.php";
break;
default:
include "./sites/start.php";
break;
}
}
/*
echo <<<ENDE
<!-- another link. uses the same overlay -->
<a href="external-content2.htm" class="noloading" rel="#overlay" style="text-decoration:none">
<button type="button">Show another page</button>
</a>
ENDE;
*/
$termine="<a href='?action=termin&show=list&tabs=2'>".str_pad($unterminiert, 1, '0')." nicht terminiert</a> &nbsp;/&nbsp; <a href='?action=termin'>".str_pad($heute, 1, '0')." heute</a>";
$smarty->assign("termine",$termine);
//$smarty->display("greetings.tpl");
//include("update/firststart.php");
$smarty->display('foot.tpl');
?>