init: 我的博客项目
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
if (session_status() === PHP_SESSION_NONE) { session_start(); }
|
||||
|
||||
function current_user() {
|
||||
if (!empty($_SESSION["user_id"])) {
|
||||
$st = db()->prepare("SELECT * FROM users WHERE id=?");
|
||||
$st->execute([$_SESSION["user_id"]]);
|
||||
return $st->fetch();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function is_login() {
|
||||
return !empty($_SESSION["user_id"]);
|
||||
}
|
||||
|
||||
function is_admin() {
|
||||
$u = current_user();
|
||||
return $u && $u["role"] === "admin";
|
||||
}
|
||||
|
||||
function require_admin() {
|
||||
if (!is_admin()) {
|
||||
header("Location: " . SITE_URL . "login.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
function attempt_login($username, $password) {
|
||||
$st = db()->prepare("SELECT * FROM users WHERE username=?");
|
||||
$st->execute([$username]);
|
||||
$user = $st->fetch();
|
||||
if ($user && password_verify($password, $user["password_hash"])) {
|
||||
$_SESSION["user_id"] = $user["id"];
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function logout() {
|
||||
unset($_SESSION["user_id"]);
|
||||
}
|
||||
Reference in New Issue
Block a user