- 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>
65 lines
2.1 KiB
PHP
65 lines
2.1 KiB
PHP
<?php
|
|
|
|
require_once("settings.php");
|
|
|
|
$settings=readsettings();
|
|
if($settings != "valid")
|
|
$action = "setup";
|
|
|
|
if($settings == "valid")
|
|
{
|
|
if(!$mysql = db_verbinden($mysql_server, $mysql_user, $mysql_pw, $mysql_db))
|
|
$err = error("Verbindung zur Datenbank fehlgeschlagen: ".htmlspecialchars(mysqli_connect_error()));
|
|
}
|
|
|
|
$_SESSION["local"] =false;
|
|
|
|
function isLocal(){
|
|
$ipv6_prefix = explode(":",$_SERVER['SERVER_ADDR'],5);
|
|
$ipv6 = explode(":",$_SERVER['REMOTE_ADDR'],5);
|
|
if(($ipv6_prefix[0] == $ipv6[0] && $ipv6_prefix[1] == $ipv6[1] && $ipv6_prefix[2] == $ipv6[2] && $ipv6_prefix[3] == $ipv6[3]) || str_starts_with($_SERVER['REMOTE_ADDR'],"192.168.147.")){
|
|
$_SESSION["local"] =true;
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function checkLogin(){
|
|
global $mysql;
|
|
//$mysql = new mysqli($GLOBALS["mysql_server"],$GLOBALS["mysql_user"],$GLOBALS["mysql_pass"],$GLOBALS["mysql_db"]);
|
|
if(isLocal()){
|
|
$_SESSION["local"] =true;
|
|
return true;
|
|
}
|
|
if(isset($_SESSION["authKey"])){
|
|
$res = mysqli_query($mysql,"SELECT id FROM users WHERE lastAuth > DATE_SUB(NOW(), INTERVAL 2 DAY) AND authKey = '".mysqli_real_escape_string($mysql,$_SESSION["authKey"])."' AND name = '".mysqli_real_escape_string($mysql,$_SESSION["user"])."';");
|
|
if(!$res){
|
|
echo mysqli_error($mysql);
|
|
return false;
|
|
}
|
|
if(mysqli_num_rows($res) == 1){
|
|
return isset($_SESSION["Logged"]);
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function checkAdduser(){
|
|
global $mysql;
|
|
//$mysql = new mysqli($GLOBALS["mysql_server"],$GLOBALS["mysql_user"],$GLOBALS["mysql_pass"],$GLOBALS["mysql_db"]);
|
|
if(!mysqli_query($mysql,"DELETE FROM addKey WHERE datetime < DATE_SUB(NOW(), INTERVAL 1 MINUTE);")){
|
|
echo mysqli_error($mysql);
|
|
}
|
|
$result = mysqli_query($mysql,"SELECT * FROM addKey WHERE accesskey='".mysqli_real_escape_string($mysql,$_GET["addKey"])."';");
|
|
if(!$result){
|
|
return false;
|
|
}
|
|
if ($result->num_rows > 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
?>
|