|
|
|
| Уважаемые знатоки, помогите разрешить такую проблему.
У меня авторизация производится так:
<?php
session_start();
include("config.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 * 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 (md5($_SERVER['PHP_AUTH_PW'])!= $pass['pass'])
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
}
?>
|
Когда находишься в админке, нужно сделать кнопочку "Выйти".
Делаю так:
сама кнопка
<form method='post'> <input type='submit' name='exit' value='Выйти'> </form>
|
в начале скрипта поставил такой обработчик
if($_POST[exit]) {unset ($_SERVER['PHP_AUTH_USER']); unset($_SERVER['PHP_AUTH_PW']);}
|
после него идёт та проверка, что в начале.
Казалось бы должно работать, но по нажатии на "Выход" выскакивает окошко для ввода авторизации, но при вводе корректных логина и пароля, не пускает, а при отмене как ни в чём не бывало загружает того юзера, из которого вышли.
Не подскажете, как правильно реализовать выход? | |
|
|
|
|
|
|
|
для: netas
(23.03.2011 в 11:14)
| | Со стороны клиента: достаточно закрыть все окна браузера.
Со стороны сервера: никак.
http://softtime.ru/forum/read.php?id_forum=1&id_theme=67980&page=2
первый ответ в теме вас заинтересует и там вы найдете комментарий по поводу вот этого куска кода:
<?
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']);
}
|
| |
|
|
|
|
|
|
|
для: netas
(23.03.2011 в 11:14)
| | Человеческий выход из basic-аутентификации не предусмотрен... да появляется окно входа и тут нужно нажать отмена, чтобы произошел выход или закрыть окно. Красивого и читого выхода нет. | |
|
|
|