Помогайте. Как убить этот ключ? Делаю уже unset($_SERVER['PHP_AUTH_USER']) - он все равно жив. Чем мешает - если разок залогинелся - вышел, второй раз начинаешь логинится, получается что ты уже залогинен надеюсь понятно выразился (пиво играет
проверь print_r($GLOBALS); возможно она дублируется как глобальная... не факт конечно) если так, то запускай еще и unset($GLOBALS['PHP_AUTH_USER']); > пиво играет пиво в умеренном количестве помогает рождать идеи, иногда очень да же стоящие
Дурь уже полная PHP: <?php public static function logout() { if (isset($_SESSION['user'])) unset($_SESSION['user']); unset($_GET['login']); unset($_SERVER['PHP_AUTH_USER']); unset($_SERVER['PHP_AUTH_PW']); header('HTTP/1.0 401 Unauthorized'); return; } public static function login() { if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) { $user_pass = md5(SALT.$_SERVER['PHP_AUTH_PW']); $mysqli = new mysql(); $query = ".."; if($result = $mysqli->query($query)) { if ($result->num_rows) { $_SESSION['user'] = $result->fetch_object(); unset($_GET['login']); } else { if (isset($_SESSION['user'])) unset($_SESSION['user']); trigger_error("/login/error".$mysqli->error,E_USER_ERROR); } } else trigger_error("/crit_error{&&}Ошибка в запросе: ".$mysqli->error,E_USER_ERROR); } if (!self::loged()) { header("WWW-Authenticate: Basic realm='Administrating'"); header('HTTP/1.0 401 Unauthorized'); trigger_error("/login/fail",E_USER_ERROR); } } Что не так? Делаю логаут, потом логин и он меня не спрашивает имя и пасс...т.к. $_SERVER['PHP_AUTH_USER'] заданы
низя убить $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'] из-за соображений безопасности. Браузер их переписывает только на запрос пользователя (в окне авторизации) Делай доп. переменную в сессии и проверяй сначала ее. Если есть значение - проверяеш PHP_AUTH и если не верно, то выдавать авторизацию, если нет - сразу выкидываеш на авторизацию. при логоуте чистий сессию
alBoo - согласен ... только причина не в - "из-за соображений безопасности", а вто м что данные перменные создаются из переменных окружения ПХП, тоесть убив эту переменную она всеравно создастся в следующем запуске со всеми исходными значениями. Сюда переменная транслируется из заголовков запроса браузера - а значит нам надо прибить эту всю конструкцию в браузере, чтобы он перестал слать заголовок "Authorization: Basic " ... этого можно добиться отослав header( "HTTP/1.0 401 Unauthorized"); ;-) что и говорил флоппик ! alBoo - твоя конструкция и нужна для того чтобы отделить вход от выхода и просто работы ;-)