[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как удалить глобальную переменную?
Владимир55
Для проверки логина/пароля используется такой код:

// Проверка логина и пароля
if (!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="1c_exchange"');
header('HTTP/1.0 401 Unauthorized');
exit;
}

$login = trim($_SERVER['PHP_AUTH_USER']);
$parol = trim ($_SERVER['PHP_AUTH_PW']);

/* Здесь коды сличения логина/пароля
с установленным в системе */


unset($GLOBALS['PHP_AUTH_USER']); // Удаляем, если логин/пароль не совпали
Но получается так, что если хотя бы однажды введен логин, то форма ввода при обновлении страницы больше не вызывается. Очевидно, что unset глобальную переменную не удалил.
Игорь_Vasinsky
назначь ей false

if (!isset($_SERVER['PHP_AUTH_USER']) OR ($_SERVER['PHP_AUTH_USER'] !== false))


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
Цитата (Владимир55 @ 22.05.2013 - 14:06)
Но получается так, что если хотя бы однажды введен логин, то форма ввода при обновлении страницы больше не вызывается. Очевидно, что unset глобальную переменную не удалил.

Очевидно, что вы не понимаете как работает базовая http аутентификация smile.gif
unset ни в чем не виноват, после того как сервер подтвердил аутентичность, браузер будет в каждый запрос добавлять заголовок WWW-Authenticate Authorization с зашифрованным логином и паролем.

PS кстати, причем здесь $GLOBALS['PHP_AUTH_USER'] ? wink.gif
Владимир55
Цитата
Очевидно, что вы не понимаете как работает базовая http аутентификация 
Получается так.

Цитата
после того как сервер подтвердил аутентичность
Как он ее подтвердил?
Я предполагал, что "подтверждение" сводится к тому, что перестают посылаться заголовки
header('WWW-Authenticate: Basic realm="1c_exchange"');
header('HTTP/1.0 401 Unauthorized');
Неверно?
Цитата
браузер будет в каждый запрос добавлять заголовок WWW-Authenticate Authorization
Как это?
killer8080
Цитата (Владимир55 @ 22.05.2013 - 14:49)
Я предполагал, что "подтверждение" сводится к тому, что перестают посылаться заголовки
header('WWW-Authenticate: Basic realm="1c_exchange"');
header('HTTP/1.0 401 Unauthorized'); Неверно?

все так.
Цитата (Владимир55 @ 22.05.2013 - 14:49)
браузер будет в каждый запрос добавлять заголовок WWW-Authenticate Authorization Как это?

а вот так, на уровне http не существует сессий, откуда сервер будет знать, что юзер в предыдущем запросе правильно вводил пароль? Потому и будет браузер каждый раз, при запросе страницы с защищенной зоны, пихать пароль с логином в заголовок, до закрытия окна браузера.
Для того в php и придумали сессии, чтоб от этого говна избавится. smile.gif
killer8080
Свернутый текст
ух ты, у меня карма 404 (not found) laugh.gif
twin
Цитата (killer8080 @ 22.05.2013 - 12:03)
Свернутый текст
ух ты, у меня карма 404 (not found) laugh.gif



laugh.gif laugh.gif laugh.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Владимир55
Цитата (killer8080 @ 22.05.2013 - 12:02)
а вот так, на уровне http не существует сессий, откуда сервер будет знать, что юзер в предыдущем запросе правильно вводил пароль?
Для того в php и придумали сессии, чтоб от этого говна избавится. smile.gif

Собственно, я из этого и исходил...
twin
Штатный выход из базовой аутентификации не предусмотрен. Но есть изврат, вполне работоспособный. Даже куча их там.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Владимир55
Спасибо, для меня это большая неожиданность!

А все потому, что не очищаются $GLOBALS['PHP_AUTH_USER'] ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.