|
|
|
| Как сделать корректный LogOut ?! Пытался так:
unset($PHP_AUTH_USER);
unset($PHP_AUTH_PW);
header("HTTP/1.0 401 Unauthorized");
exit;
|
Но не получается... стоит нажать в браузере Назад и всё, мы снова авторизованы. Как быть ? | |
|
|
|
|
|
|
|
для: DDK
(17.03.2006 в 12:42)
| |
<?PHP
$PHP_AUTH_USER = "";
$PHP_AUTH_PW = "";
?>
|
P.S. Когда Вы нажымаете НАЗАД, страница берется из кэша! Попробуйте вернуться назад и обновить ее. | |
|
|
|
|
|
|
|
для: Artemy
(17.03.2006 в 12:54)
| | И ничего не меняется... Я нажимаю Назад, обновляю - и всё, как буд то я и не выходил, работаю дальше...
Поставлю вопрос иначе - слышал, что через определённый заголовок (header) можно убить возможность отката на страницу назад... каким заголовком ? Т.е. убить кэш. | |
|
|
|
|
|
|
|
для: DDK
(17.03.2006 в 12:42)
| | Мне кажется это ни к чему не приведёт, так как переменные запоминает браузер - там помоему специальный HTTP-заголовок был для сброса, нужно будет порыться в RFC... | |
|
|
|
|
|
|
|
для: cheops
(17.03.2006 в 13:28)
| | RFC-2617
Чтобы 401 Unauthorized сработал, его нужно дополнить WWW-Authenticate: Basic realm="..."
Уж коль говоришь, что доступ неавторизован, надо дать информацию о том, как его получать. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 13:56)
| | Хмм... хорошо, пишу так:
unset($PHP_AUTH_USER);
unset($PHP_AUTH_PW);
header("WWW-Authenticate: Basic realm=\"Sitename\"");
header("HTTP/1.0 401 Unauthorized");
exit;
|
Результата ноль :( Стоит нажать Назад... | |
|
|
|
|
|
|
|
для: DDK
(17.03.2006 в 14:30)
| | Заголовок
<?php
header("HTTP/1.0 401 Unauthorized");
?>
|
Всегда должен идти первым и "Назад" наверное мало - нужно перезагрузить страницу обязательно, чтобы браузер получил HTTP-заголовки. | |
|
|
|
|
|
|
|
для: cheops
(17.03.2006 в 15:54)
| | Хм... я пробовал после этого обновить страницу, но ничего не выходит... почему переменные $PHP_AUTH_USER и $PHP_AUTH_PW нельзя unset ?! А точнее меня интересует больше не почему, а как, если не так ? Собственно и тему я так назвал поэтому - убить авторизацию... т.е. как убить эти две переменные... | |
|
|
|
|
|
|
|
для: DDK
(17.03.2006 в 16:20)
| | >Хм... я пробовал после этого обновить страницу, но ничего не
>выходит... почему переменные $PHP_AUTH_USER и $PHP_AUTH_PW
>нельзя unset ?! А точнее меня интересует больше не почему, а
>как, если не так ? Собственно и тему я так назвал поэтому -
>убить авторизацию... т.е. как убить эти две переменные...
В тех источниках, которые мне встречались, говорилось, что unset($PHP_AUTH_USER... $PHP_AUTH_PW) делать не нужно.
Что он делается сам путем генерации 401 Unauthorized.
Сам я с этим не экспериментировал. | |
|
|
|
|
|
|
|
для: cheops
(17.03.2006 в 15:54)
| | >Заголовок ....HTTP/1.0 401 ....Всегда должен идти первым
С чего бы это?
Замечание: The HTTP status header line will always be the first sent to the client, regardless of the actual header() call being the first or not. The status may be overridden by calling header() with a new status line at any time unless the HTTP headers have already been sent.
Строка заголовка отклика "статус возврата" будет всегда отправлена первой, независимо от того, был первым соответствующий вызов функции header() или нет. Статус возврата может быть перекрыт повторным вызовом функции header() с новым статусом возврата в любой момент пока заголовки еще фактически не отправлены. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 16:25)
| | Хм... не знал, что PHP такой умный, сам заголовки сортирует... лучше конечно к этому не привыкать, чтобы правильно расставлять заголовки при работе с сокетами... | |
|
|
|