На определенных сайтах, возможно, вам за-хочется реализовать простую систему аутентификации для административных целей. Небольшие сайты не требуют входа отдельных пользователей на сайт, но система входа может понадобиться для доступа в панель управления сайта.
Наша система входа будет рассчитана только на одного пользователя. Если пользователь вошел, то мы устанавливаем переменную сессии
$_SESSION["e;auth"e;].
Для начала определим пароль. Мы не будем хранить его как обычный текст, а лучше будем использовать его MD5-xэш. Вам нужно изменить строку, предварительно сгенерировав собственный хэш пароля:
<? $enc_passwd = "e;206bfaa5da7422d2f497239dcf8b96f3"e;;
Теперь давайте определим действия при выходе пользователя (параметр logout). Мы должны установить переменную сессий в incomplete и от-править пользователя на общую страницу (например, на index .php), а затем выйти:
session_start() ;
if ($_REQUEST["e;logout"e;]) {
$_SESSION["e;auth"e;] = "e;incomplete"e;;
header("e;Location: index.php"e;);
exit(0);
}
Если пользователь вошел, должен быть установлен параметр pwd. Для проверки корректности пароля мы должны создать MD5-Xеш этого параметра и сравнить его с зашифрованным паролем. Если хэши совпадают, мы проверяем переменную сессии и отправляем пользователя на домашнюю страницу.
if ($_REQUEST["e;pwd"e;]) {
if (md5($ REQUEST["e;pwd"e;]) == $enc_passwd) {
$_SESSION["e;auth"e;] = "e;completed"e;;
header("e;Location: index.php"e;);
exit(0) ;
} }
Если мы добрались до этой точки, мы должны знать, вошел пользователь или нет. Для проверки мы используем переменную $_SESSION [ "e;auth"e; ]. Если пользователь не вошел, мы выведем формы входа и выйдем. Также можно перенаправить пользователя на специальную страницу входа, но вы обязательно должны выйти после перенаправления или вывода формы. Ведь мы не хотим позволить незарегистрированному пользователю делать то, что он не должен делать.
$authed = $_SESSION["e;auth"e;];
if ($authed != "e;completed"e;) {
?>
<html><head></headxbody>
<form method="e;post"e;>
Enter password: <input type="e;password"e; name="e;pwd"e;/>
</form>
</body>
</html>
<?php exit(0);
}
?>
Для использрвания этого сценария вызовите его в login.php и подключите с помощью require в начале каждого сценария, которому нужна аутентификация. Когда клиент запрашивает страницу, сценарий выводит форму входа.
Для установки нового пароля для сценария выполните этот скрипт для создания нового хэша пароля, а затем скопируйте выводы и установите его в качестве значения переменной $enc_passwd:
<?
print md5("e;newpassword"e;);
?>
Помните, что это очень простая система входа. Вы можете усовершенствовать ее, добавив таймаут сессии, но если вам нужно больше функций, лучше использовать проверенную систему. В Интернете можно найти несколько бесплатных систем, вы можете использовать одну из них.
|