2020-06-03 15:31:18 +00:00
|
|
|
<?php
|
2023-08-23 16:16:34 +00:00
|
|
|
include_once 'classen/FormValidator.php';
|
|
|
|
|
2020-06-03 15:31:18 +00:00
|
|
|
$HTML = new HTML();
|
|
|
|
$HTML->setHTMLTitle("Login");
|
|
|
|
$HTML->importHTML("style/login/login.html");
|
2023-08-23 16:16:34 +00:00
|
|
|
|
2020-06-03 15:31:18 +00:00
|
|
|
if(isset($_POST['login']))
|
|
|
|
{
|
2023-08-23 16:16:34 +00:00
|
|
|
$validator = new FormValidator(array(
|
|
|
|
'username' => array('required' => true, 'regex' => '([^\\\/<>\s]+ [^\\\/<>\s]+){3,255}'),
|
|
|
|
'password' => array('required' => true, 'regex' => '.{1,1000}')
|
|
|
|
));
|
|
|
|
|
|
|
|
if(!$validator->isValid($_POST)) {
|
|
|
|
$HTML->ReplaceLayoutInhalt("%%LOGINMESSAGE%%", "Bitte gebe Benutzername und Passwort an.");
|
|
|
|
}
|
|
|
|
else {
|
2020-06-03 15:31:18 +00:00
|
|
|
$statementUser = $RUNTIME['PDO']->prepare("SELECT * FROM UserAccounts WHERE FirstName = ? AND LastName = ? LIMIT 1");
|
|
|
|
$statementUser->execute(explode(" ", trim($_POST['username'])));
|
|
|
|
|
|
|
|
$RUNTIME['MESSAGE']['LOGINERROR'] = "Benutzername nicht gefunden!";
|
|
|
|
|
|
|
|
while($rowUser = $statementUser->fetch())
|
|
|
|
{
|
|
|
|
$statementAuth = $RUNTIME['PDO']->prepare("SELECT * FROM auth WHERE UUID = ? LIMIT 1");
|
|
|
|
$statementAuth->execute(array($rowUser['PrincipalID']));
|
|
|
|
|
|
|
|
$RUNTIME['DEBUG']['LOGIN']['UUID'] = $rowUser['PrincipalID'];
|
|
|
|
|
|
|
|
while($rowAuth = $statementAuth->fetch())
|
|
|
|
{
|
|
|
|
if(md5(md5($_POST['password']).":".$rowAuth['passwordSalt']) == $rowAuth['passwordHash'])
|
|
|
|
{
|
|
|
|
$_SESSION['USERNAME'] = trim($_POST['username']);
|
|
|
|
$_SESSION['FIRSTNAME'] = trim($rowUser['FirstName']);
|
|
|
|
$_SESSION['LASTNAME'] = trim($rowUser['LastName']);
|
|
|
|
$_SESSION['EMAIL'] = trim($rowUser['Email']);
|
2020-08-02 02:44:32 +00:00
|
|
|
$_SESSION['PASSWORD'] = $rowAuth['passwordHash'];
|
|
|
|
$_SESSION['SALT'] = $rowAuth['passwordSalt'];
|
2020-06-03 15:31:18 +00:00
|
|
|
$_SESSION['UUID'] = $rowUser['PrincipalID'];
|
|
|
|
$_SESSION['LEVEL'] = $rowUser['UserLevel'];
|
|
|
|
$_SESSION['DISPLAYNAME'] = strtoupper(trim($_POST['username']));
|
|
|
|
$_SESSION['LOGIN'] = 'true';
|
2020-08-04 09:44:59 +00:00
|
|
|
|
|
|
|
header("Location: index.php?page=".$_REQUEST['page']);
|
2020-06-03 15:31:18 +00:00
|
|
|
die();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$RUNTIME['MESSAGE']['LOGINERROR'] = "Passwort falsch!";
|
|
|
|
}
|
|
|
|
|
|
|
|
$HTML->ReplaceLayoutInhalt("%%LOGINMESSAGE%%", $RUNTIME['MESSAGE']['LOGINERROR']);
|
2023-08-23 16:16:34 +00:00
|
|
|
$HTML->ReplaceLayoutInhalt("%%LASTUSERNAME%%", $_POST['username']);
|
2020-06-03 15:31:18 +00:00
|
|
|
}
|
|
|
|
}
|
2023-08-23 16:16:34 +00:00
|
|
|
|
2020-06-03 15:31:18 +00:00
|
|
|
if(file_exists("./pages/".@$_REQUEST['page'].".php"))
|
|
|
|
$HTML->ReplaceLayoutInhalt("%%PAGENAME%%", @$_REQUEST['page']);
|
|
|
|
|
|
|
|
$HTML->ReplaceLayoutInhalt("%%LOGINMESSAGE%%", "");
|
|
|
|
$HTML->ReplaceLayoutInhalt("%%LASTUSERNAME%%", "");
|
|
|
|
$HTML->ReplaceLayoutInhalt("%%PAGENAME%%", "dashboard");
|
|
|
|
|
|
|
|
$HTML->build();
|
|
|
|
echo $HTML->ausgabe();
|
|
|
|
?>
|