Основы PHP/Проверка авторизации пользователя — различия между версиями
м |
м (→Скрипт для внутренней проверки авторизации пользователя) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 11: | Строка 11: | ||
include("variables.php"); | include("variables.php"); | ||
$link = mysqli_connect($db_host, $db_user, $db_pass, $db_name); | $link = mysqli_connect($db_host, $db_user, $db_pass, $db_name); | ||
− | $query = "SELECT users.id, users.login, users.is_admin FROM user_hashes, users WHERE user_hashes.hash='" . $ | + | $entered_hash = mysqli_real_escape_string($link, $_COOKIE['entered_hash']); |
+ | $query = "SELECT users.id, users.login, users.is_admin FROM user_hashes, users WHERE user_hashes.hash='" . $entered_hash . "' AND user_hashes.user__id=users.id;"; | ||
$res = mysqli_query($link, $query); | $res = mysqli_query($link, $query); | ||
if ($row = mysqli_fetch_array($res)) { | if ($row = mysqli_fetch_array($res)) { | ||
Строка 33: | Строка 34: | ||
echo "user__id = " . $user__id . "<br/>"; | echo "user__id = " . $user__id . "<br/>"; | ||
echo "user__login = " . $user__login . "<br/>"; | echo "user__login = " . $user__login . "<br/>"; | ||
+ | ?> | ||
+ | </pre> | ||
+ | |||
+ | == Скрипт для внутренней проверки авторизации пользователя == | ||
+ | <pre> | ||
+ | <?php | ||
+ | include_once("auth_check.php"); | ||
+ | if ($is_authorised == false){ | ||
+ | header("Location: /index.php?msg=Не+авторизован!"); | ||
+ | exit; | ||
+ | } | ||
+ | ?> | ||
+ | </pre> | ||
+ | |||
+ | == Скрипт для внутренней проверки пользователя на наличие прав администратора == | ||
+ | <pre> | ||
+ | <?php | ||
+ | include_once("auth_check.php"); | ||
+ | if ($is_admin == false){ | ||
+ | header("Location: /index.php?msg=Нет прав!"); | ||
+ | exit; | ||
+ | } | ||
?> | ?> | ||
</pre> | </pre> |
Текущая версия на 19:02, 28 ноября 2019
Содержание
Проверка авторизации
Файл auth_check.php:
<?php $is_authorised = false; $user__id = ""; $user__login = ""; $is_admin = false; if (isset($_COOKIE['entered_hash'])){ include("variables.php"); $link = mysqli_connect($db_host, $db_user, $db_pass, $db_name); $entered_hash = mysqli_real_escape_string($link, $_COOKIE['entered_hash']); $query = "SELECT users.id, users.login, users.is_admin FROM user_hashes, users WHERE user_hashes.hash='" . $entered_hash . "' AND user_hashes.user__id=users.id;"; $res = mysqli_query($link, $query); if ($row = mysqli_fetch_array($res)) { $is_authorised = true; $user__id = $row['id']; $user__login = $row['login']; $is_admin = $row['is_admin']; } mysqli_close($link); } ?>
Файл для проверки скрипта
Файл test.php:
<?php include("auth_check.php"); echo "is_authorised = " . $is_authorised . "<br/>"; echo "is_admin = " . $is_admin . "<br/>"; echo "user__id = " . $user__id . "<br/>"; echo "user__login = " . $user__login . "<br/>"; ?>
Скрипт для внутренней проверки авторизации пользователя
<?php include_once("auth_check.php"); if ($is_authorised == false){ header("Location: /index.php?msg=Не+авторизован!"); exit; } ?>
Скрипт для внутренней проверки пользователя на наличие прав администратора
<?php include_once("auth_check.php"); if ($is_admin == false){ header("Location: /index.php?msg=Нет прав!"); exit; } ?>