exists('SESSION.user')) { $f3->reroute('/homemenu'); return; } $f3->clear('SESSION.user'); $f3->clear('COOKIE.username'); $f3->set('CONTENT', 'login.tpl'); echo \Template::instance()->render('masterpage.tpl'); } /** * Check if login is valid * * @param string $username * @param string $password * @return int|\OpenMind\System\User */ private function checkLogin(string $username, string $password): ?User { $user = new User(['username=?', $username]); if (!$user->dry()) { $exist = password_verify("{$username}|{$password}", $user->saltedpassword); if ($exist) return $user; } return null; } /** * Check if username and password are correct * * @param $f3 * @throws \Exception */ public function LoginForm($f3) { $accountData = $this->getSanitizedPostRequest(); $user = $this->checkLogin($accountData['username'], $accountData['password']); if (is_null($user)) { $f3->clear('SESSION.user'); $f3->clear('COOKIE.username'); $f3->set('CONTENT', 'login.tpl'); $f3->set('INFOTEXT', 'Dati di accesso non corretti'); echo \Template::instance()->render('masterpage.tpl'); return; /*http_response_code(500); throw new \Exception("Dati di accesso non corretti");*/ } $user->Store(); $f3->set('COOKIE.username', $accountData['username']); $f3->reroute('/homemenu'); } public function Logout($f3) { $f3->clear('SESSION.user'); $f3->clear('COOKIE.username'); $f3->reroute('/'); } }