38 lines
932 B
PHP
38 lines
932 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
session_start();
|
|
}
|
|
|
|
// Credentials
|
|
const ADMIN_USERNAME = 'roni';
|
|
const ADMIN_PASSWORD_HASH = '$2y$10$dxyVYBKFCObI9vbpngH04OVMAUzMnpm5sy.w3Ex704xLjknaL7Vy6';
|
|
|
|
function is_admin_logged_in(): bool {
|
|
return !empty($_SESSION['admin_logged_in']);
|
|
}
|
|
|
|
function require_admin(): void {
|
|
if (!is_admin_logged_in()) {
|
|
header('Location: admin_login.php');
|
|
exit;
|
|
}
|
|
}
|
|
|
|
function login_admin(string $username, string $password): bool {
|
|
if ($username === ADMIN_USERNAME && password_verify($password, ADMIN_PASSWORD_HASH)) {
|
|
session_regenerate_id(true);
|
|
$_SESSION['admin_logged_in'] = true;
|
|
$_SESSION['admin_user'] = $username;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function logout_admin(): void {
|
|
$_SESSION = [];
|
|
if (session_status() === PHP_SESSION_ACTIVE) {
|
|
session_destroy();
|
|
}
|
|
} |