Только что прочитал про базовую аутентификацию по уроку http://irbis-team.com/15/5/9
Написал у себя код, дабы испытать сие творение цивилизации:
<?php
header("Content-Type: text/html; charset=utf-8");
/////////////////////////////////////////////////////
/////////////////Настройки//////////////////////////
///////////////////////////////////////////////////
$admins=array(
'root' => 'root',
'admin' => 'admin'
);
////////////////////////////////////////////////////
//////////////////////Защита///////////////////////
//////////////////////////////////////////////////
if(empty($_SERVER['PHP_AUTH_USER'])){
header('WWW-Authenticate: Basic realm="Admin Page"');
header('HTTP/1.0 401 Unauthorized');
exit();
}
$key = false;
if(isset($admins[$_SERVER['PHP_AUTH_USER']])
&& $_SERVER['PHP_AUTH_PW'] === $admins[$_SERVER['PHP_AUTH_USER']])
{
$key = true;
}
if(empty($key))
{
header('WWW-Authenticate: Basic realm="Administrative resource"');
header ('HTTP/1.0 401 Unauthorized');
exit();
}
echo "HELLO";
?>
Все вроде как работает, если не одно но, при повторной аутентификации(Обновлении страницы) отсутствует запрос на очередную аутентификацию. Если перезапустить браузер тогда всё Ok.
В чём загвоздка уважаемые???
Спустя 15 минут, 55 секунд (4.09.2012 - 13:29) Hello написал(а):
Если сервер отвечает заголовком отличным от 401, то браузер сохраняет логин и пароль на всю сессию.
Спустя 1 час, 36 минут, 29 секунд (4.09.2012 - 15:06) argentum88 написал(а):
И как же мне узнать эти заголовки?
Спустя 2 часа, 21 минута, 40 секунд (4.09.2012 - 17:27) argentum88 написал(а):
get_headers вернул
Array ( [0] => HTTP/1.0 401 Unauthorized [1] => Date: Tue, 04 Sep 2012 14:21:22 GMT [2] => Server: Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13 [3] => X-Powered-By: PHP/5.3.13 [4] => WWW-Authenticate: Basic realm="Admin Page" [5] => Content-Length: 0 [6] => Connection: close [7] => Content-Type: text/html; charset=utf-8 )
Прошу прошения за нечитабельность
Я так понимаю 401 Unauthorized это значит что то не в порядке???
Array ( [0] => HTTP/1.0 401 Unauthorized [1] => Date: Tue, 04 Sep 2012 14:21:22 GMT [2] => Server: Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13 [3] => X-Powered-By: PHP/5.3.13 [4] => WWW-Authenticate: Basic realm="Admin Page" [5] => Content-Length: 0 [6] => Connection: close [7] => Content-Type: text/html; charset=utf-8 )
Прошу прошения за нечитабельность
Я так понимаю 401 Unauthorized это значит что то не в порядке???
Спустя 14 минут, 50 секунд (4.09.2012 - 17:42) argentum88 написал(а):
хотя нет, те же самые заголовки приходит и при первом запуске скрипта, когда всё нормально запрашивает
Спустя 1 день, 17 часов, 48 минут, 48 секунд (6.09.2012 - 11:31) argentum88 написал(а):
Кто нибудь поможет?
Спустя 5 минут, 19 секунд (6.09.2012 - 11:36) Игорь_Vasinsky написал(а):
$admins=array(
'root' => 'root',
'admin' => 'admin'
);
Цитата |
if(isset($admins[$_SERVER['PHP_AUTH_USER']]) && $_SERVER['PHP_AUTH_PW'] === $admins[$_SERVER['PHP_AUTH_USER']]) { $key = true; } |
не логичный кусок кода.
Спустя 28 минут, 6 секунд (6.09.2012 - 12:04) argentum88 написал(а):
Этот нелогичный кусок был взят из туториала twin, ссылку на который я предоставил в первом сообщении данной темы
Спустя 2 минуты, 52 секунды (6.09.2012 - 12:07) Игорь_Vasinsky написал(а):
аа. огляделся
if(isset($admins[$_SERVER['PHP_AUTH_USER']])
2 разные скобки
if(isset($admins[$_SERVER['PHP_AUTH_USER']])
2 разные скобки