Bestehende Codebasis als Ausgangsstand aufgenommen. - .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen; Verzeichnisstruktur ueber .gitkeep erhalten - .gitattributes: Zeilenenden normalisiert (LF im Repo), Binaerformate markiert - db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der Anwendung aus der externen Konfiguration statt hartkodiert aus der Datei; Passwort wird ueber eine temporaere Optionsdatei statt per Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet, Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
77 lines
3.4 KiB
PHP
77 lines
3.4 KiB
PHP
<?php
|
|
if(!isset($_POST["user"]))
|
|
$_POST["user"] = "";
|
|
else
|
|
$_POST["user"] = htmlspecialchars($_POST["user"]);
|
|
if(!isset($_POST["pass"]))
|
|
$_POST["pass"] = "";
|
|
else
|
|
$_POST["pass"] = htmlspecialchars($_POST["pass"]);
|
|
|
|
$smarty->display("heading.tpl");
|
|
$smarty->assign("local",isLocal());
|
|
if(isset($_GET["formsent"]) && $_SESSION["login"] != "valid" && isLocal())
|
|
{
|
|
$qry= mysqli_query($dbconn, "SELECT salt FROM user WHERE LOWER(nick) = '".mysql_escape_string(strtolower($_POST["user"]))."' AND blocked = 0") or error("Es ist ein Fehler in der abfrage der Benutzerdaten: <br />".formaterror(mysqli_error($dbconn)));
|
|
if(mysqli_num_rows($qry) == 1)
|
|
{
|
|
$res = mysqli_fetch_array($qry);
|
|
$qry= mysqli_query($dbconn, "SELECT * FROM user WHERE nick = '".mysql_escape_string($_POST["user"])."' AND pass = '".crypt($_POST["pass"],$res[0])."'") or error("Es ist ein Fehler in der abfrage der Benutzerdaten: <br />".formaterror(mysqli_error($dbconn)));
|
|
if(mysqli_num_rows($qry) == 1)
|
|
{
|
|
$udata = mysqli_fetch_assoc($qry);
|
|
$_SESSION["login"] = "valid";
|
|
$_SESSION["logedout"] = $udata["logedout"];
|
|
$_SESSION["user"] = $udata["id"];
|
|
$_SESSION["nick"] = $udata["nick"];
|
|
$_SESSION["vname"] = $udata["vname"];
|
|
$_SESSION["nname"] = $udata["nname"];
|
|
$_SESSION["rights"] = $udata["rights"];
|
|
$_SESSION["lastlogin"] = $udata["lastlogin"];
|
|
$_SESSION["numlogins"] = $udata["numlogins"];
|
|
$_SESSION["style"] = getUserSetting($dbconn,"style", $udata["id"]);
|
|
if(!is_file("styles/".$_SESSION["style"]))
|
|
{
|
|
updateUserSetting($dbconn,"style", "default.css", $udata["id"]);
|
|
$_SESSION["style"] = getUserSetting($dbconn,"style", $udata["id"]);
|
|
}
|
|
$_SESSION["zoom"] = getUserSetting($dbconn,"zoom", $_SESSION["user"], 1);
|
|
$_SESSION["privateNotes"] = getUserSetting($dbconn,"privnotes", $_SESSION["user"], "");
|
|
|
|
mysqli_query($dbconn, "UPDATE user SET wrongpw = 0, lastlogin = NOW(), numlogins = numlogins + 1, logedout = 0 WHERE nick = '".mysql_escape_string($_POST["user"])."'");
|
|
}
|
|
else
|
|
{
|
|
$qry= mysqli_query($dbconn, "SELECT wrongpw FROM user WHERE nick = '".mysql_escape_string($_POST["user"])."'") or error("Es ist ein Fehler in der abfrage der Benutzerdaten: <br />".formaterror(mysqli_error($dbconn)));;
|
|
if(mysqli_num_rows($qry))
|
|
{
|
|
$wrongpw = mysqli_fetch_array($qry);
|
|
if($wrongpw[0] < 10)
|
|
{
|
|
mysqli_query($dbconn, "UPDATE user SET wrongpw = wrongpw + 1 WHERE nick = '".mysql_escape_string($_POST["user"])."'");
|
|
$triesleft = 10 - $wrongpw[0];
|
|
if($triesleft > 1)
|
|
error("Der Benuzername oder das Passwort sind falsch, bitte versuchen Sie es erneut (Nach weiteren $triesleft Versuchen wird der Benutzer deaktiviert und muss vom Hauptbenutzer wieder aktiviert werden, damit er sich anmelden kann.)");
|
|
else
|
|
error("Der Benuzername oder das Passwort sind falsch, bitte versuchen Sie es erneut (Wenn der nächste Versuch falsch ist, wird der Benutzer für deaktiviert und muss vom Hauptbenutzer wieder aktiviert werden, damit er sich anmelden kann.)");
|
|
}
|
|
else
|
|
{
|
|
mysqli_query($dbconn, "UPDATE user SET blocked = 1 WHERE nick = '".mysql_escape_string($_POST["user"])."'");
|
|
error("Der Benuzer wurde deaktiviert, er muss vom Hauptbenutzer wieder aktiviert werden, damit er sich anmelden kann.");
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
else
|
|
error("Dieser Benutzername existiert nicht.");
|
|
}
|
|
if($_SESSION["login"]=="valid"){
|
|
header('Location:?action=kunden');
|
|
}
|
|
else{
|
|
$smarty->display("start.tpl");
|
|
}
|
|
?>
|