HTTP авторизация и настройки Apache
Вот такая вот штука приключилась...
На серваке HTTP авторизация работает.. А вот дома поставил себе Апач и фишки с HTTP авторизацией таким вот сриптом
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
if (!isset($_SERVER['PHP_AUTH_USER']) ||
!($_SERVER['PHP_AUTH_USER']=='mega') ||
!($_SERVER['PHP_AUTH_PW']=='uzver'))
{
header("WWW-Authenticate: Basic realm=\"X-zone\"");
header("HTTP/1.0 401 Unauthorized");
echo " <table width=100% height=100%><tr><td valign=middle align=center><font face=verdana size=50>Access denied</td><tr></table>";
exit;
}
?>
не работает... Подскажите, кто знает, как то это может быть связано с конфигом апача ? если да, то что нужно переписать чтобы пахало ?
Привет !
Вот такая вот штука приключилась...
На серваке HTTP авторизация работает.. А вот дома поставил себе Апач и фишки с HTTP авторизацией таким вот сриптом
......скипет....скипет....скипет
не работает... Подскажите, кто знает, как то это может быть связано с конфигом апача ? если да, то что нужно переписать чтобы пахало ?
1. Версии Apache и PHP дома и на сервере
2. Что значит "не работает"?
1. Версии Apache и PHP дома и на сервере
2. Что значит "не работает"?
Не помню... :(
А не работает значит - делает вид что пароль не принят.. в то время как пишется праивльный пасс..
Не помню... :(
А не работает значит - делает вид что пароль не принят.. в то время как пишется праивльный пасс..
Не могу точно сказать, но возможно "дома" PHP старенький и не знает массива $_SERVER -- нужно это проверить.
Например так:
//test.php
print_r($_SERVER);
?>
Не могу точно сказать, но возможно "дома" PHP старенький и не знает массива $_SERVER -- нужно это проверить.
Например так:
//test.php
print_r($_SERVER);
?>
не-е-е... PHP как раз новенький.. и такие оскращения понимает.. да я и запенять на полное HTTP_ и т.п. менял.. - ноль на массу :(
не-е-е... PHP как раз новенький.. и такие оскращения понимает.. да я и запенять на полное HTTP_ и т.п. менял.. - ноль на массу :(
Ну тогда сначала удостоверься в существовании этих переменных вообще (phpinfo())
И почитай вот тут
А Апаче, кстати, не второй?
значит я не один такой!!!
помните все, я год назад всем вез мозг прокомпостировал с ентим, так вот - мне так и не удалось запустить http authentication под виндами:))) даже спецификацию http читал, сто мануалов и статей про пхп basic authentication прочитал - ноль!!!!
пробовал под apache1.3.27+php4.3.0 затем 4.3.3
не помню помоему под apache2 тоже.
пробовал под apache1.3.27+php4.3.0 затем 4.3.3
не помню помоему под apache2 тоже.
Фиг знает, коллеги, но у меня всё прекрасно работает (Apache 1.3.24, php 4.3.2, Win2k).
А вообще, я в своё время, при написании ныне почившего портала "Ёпрст!", наелся с этой HTTP авторизацией и передачей её между доменами третьего уровня... Та ещё колбасня была.
ИМХО, лучше забить на это и написать свою на сессиях -- совсем не сложно, но 100% надежней.
2)дело ведь в принципе - какого собственно ... она имеет право не работать. ты не мог бы выложить 100% рабочий исходник и/или php.ini?
3)а basic authentication точно точно лучше домарощенных только в одном: уж больно красивая табличка в WinXP вылезает!!! правда, нравится она мне!
1)епрст рулил:) -respect
10nx ;)
2)дело ведь в принципе - какого собственно ... она имеет право не работать. ты не мог бы выложить 100% рабочий исходник и/или php.ini?
Не вопрос.
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "
Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "
You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
А из php.ini к этому делу наверное только одна строчка относится: register_globals = Off :)
Стоит, также, ещё раз внимательно почитать все хинты и нотесы в мане.
по-моему это текст из мануала:)) но это мелочи
заходишь вводишь login gufy pass gufy и так 3 раза - а потом text to send if user hits cancel button:(((
стоит apache 1.3.28 + php 4.3.3 sapi
я аж php sapi модулем с php4apache.dll установил, а то обычно все php.exe...
....
по-моему это текст из мануала:))
....
стоит apache 1.3.28 + php 4.3.3 sapi
я аж php sapi модулем с php4apache.dll установил, а то обычно все php.exe...
Из мануала конечно... В своих проектах я использую либо самопальную сессионную авторизацию либо .хтаццесс-ную.
Слушай:
1. Добавь phpinfo() в конец скрипта -- есть там вообще эти переменные?
2. Вот это читал?
ИМХО врядли есть что то надежнее чем апачевая аутентификация, грамотно организованная...
а разве для работы этого механизма не надо .htaccess в папку класть? прописывать там "user valid-user"??
Нет, не нужно это разные вещи.
ИМХО врядли есть что то надежнее чем апачевая аутентификация, грамотно организованная...
Надежность авторизации "php сессии на сервере" + "mysql md5(password)" будет никак не меньшей но на порядок удобней в работе. Но без использования SSL говорить о надежной защите -- баловство в обоих случаях.
ИМХО основаный на опыте реализации коммерческих проектов с использованием обоих вариантов.
почему же я раньше не встречал что она на cgi версии не пашет? блин.
а когда я еще вспомнил что у меня склеротика register_globals = off и заменил $PHP_USER_PASS bили как там ее на $_SERVER['тожесамое'] то оно коyечно заработало:)))
за ссылку спасибо - интересно:)