index.php
<?php include("lock.php");?>
<div>
<a href='exit.php'><input name='Выход' type='submit' value='Выход'></a>
</div>
Файл lock.php
<?php include("blocks/bd.php"); // подключение к бд
if (!isset($_SERVER['PHP_AUTH_USER']))
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
else {
if (!get_magic_quotes_gpc()) {
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
}
$query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
$lst = @mysql_query($query);
if (!$lst)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
if (mysql_num_rows($lst) == 0)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
$pass = @mysql_fetch_array($lst);
if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
}
?>
Можно ли прописать как-то кнопку выхода (log-out)
Пробовал писать так
<a href='exit.php'><input name='Выход' type='submit' value='Выход'></a>//Кнопка выхода
В файле exit.php
<?php
session_start();
if (empty($_SERVER['PHP_AUTH_USER']) or empty($_SERVER['PHP_AUTH_PW']))
{
//если не существует сессии с логином и паролем, значит на этот файл попал невошедший пользователь. Ему тут не место. Выдаем сообщение об ошибке, останавливаем скрипт
exit ("<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>");
}
unset($_SERVER['PHP_AUTH_PW']);
unset($_SERVER['PHP_AUTH_USER']);
exit("<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>");
// отправляем пользователя на главную страницу с окном пароля.
?>
Но к сожалению выводит окно уже открытое а не окно выбора пароля не могу понять как удалить пароль и логин с $_SERVER['PHP_AUTH_PW'] И $_SERVER['PHP_AUTH_USER']
можно конечно сделать на сессиях но хотелось бы через такой способ
Помогите пожалуйста
Спустя 10 минут, 22 секунды (24.09.2012 - 15:09) inpost написал(а):
Выкинь код Попова! Его в соседней теме вообще взломали
Спустя 1 минута, 40 секунд (24.09.2012 - 15:11) Гость_Максим написал(а):
То есть лучше создать защиту на сессиях?
Спустя 1 минута, 53 секунды (24.09.2012 - 15:13) Guest написал(а):
Я для входа на сайт создал на сессиях, а для админки думал переделать но не получается, тогда сделаю на сессиях если данная аутентификация не надежна?
Спустя 1 час, 35 минут, 45 секунд (24.09.2012 - 16:49) twin написал(а):
Вот тут почитай. Аутентификация то вполне надежна, реализация у Попова хромает просто.