Авторизация

arXon

Новичок
Авторизация

PHP:
if (!isset($_SERVER['PHP_AUTH_USER']))
// пользователь неизвестен
{
        Header("WWW-Authenticate: Basic Realm=\"Вход для администратора\"");
        Header("HTTP/1.0 401 Unauthorized");
        echo("<strong>ACCESS DENIED FOR UNAUTHORIZED USER!</strong>");
        exit;
}
Этот код работает локально. С других машин из локальной сети авторизация не проходит, то есть окно не выскакивает и сразу выдает ACCESS DENIED FOR UNAUTHORIZED USER!.

В сети не попалась эта проблема у меня:
Windows 2000
php-4.3.4-Win32
apache_1.3.29-win32-x86-no_src.exe
mysql-4.0.12-win

если известна проблема сообщите, или хотя бы где можно прочитать
большое спасибо
 

arXon

Новичок
Я не хочу сессиями спасибо.
Просто дело принципа я 1000 стр. перечитаю, если там будет ответ.

Просто ошибки нет, если запускать на этой же машине.
 

IntenT

SkyDiver
arXon
А где тут заголовок, который заставляет броузер открыть окно и попросить пароль???
 

arXon

Новичок
Header("WWW-Authenticate: Basic Realm=\"Вход для администратора\"");
Header("HTTP/1.0 401 Unauthorized");
 

arXon

Новичок
а что тогда застовляет вывести окно

у меня модулем прописано так что на машине локально все гут

-~{}~ 11.03.04 16:07:

спасибо всем все работает
 

evil-SHADOW

Guest
Привет всем!
Есть такая проблема с авторизацией посредством заголовка.
Итак:

<?php
if ( (!isset ($_SERVER['PHP_AUTH_USER'])) || (!isset ($_SERVER['PHP_AUTH_PW'])) || ($_SERVER['PHP_AUTH_USER']!="admin") || ($_SERVER['PHP_AUTH_PW']!="password") )
{
Header("WWW-Authenticate: Basic realm = Страница администратора сайта");
Header("HTTP/1.0 401 Unauthorized");
echo "Доступ запрещен<br>\n";
exit;
}

Что получаю в ответ при выполнении скрипта:

"Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request."

В чем проблема? Пробовал то же самое на другом хостинге - работает, как и должно. Хостинг не у себя , так что если проблема в настройках апача или PHP - напишите, буду пинать тамошнего админа.
 

lucas

Guest
Такой ответ сервера значит, что у PHP установлен не как модуль Apache, а как CGI.
Вывод -- поставить PHP модулем.
 

fixxxer

К.О.
Партнер клуба
Да, кстати, помнится, я обещал привести способ, как использовать http-авторизацию при CGI PHP. Ну так вот.

1) в <VirtualHost> добавляем
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^.*$ - [E=HTTP_CGI_AUTHORIZATION:%1]

2)
PHP:
list($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']) =
  explode(":",base64_decode(preg_replace('/basic\s+/i','', $_SERVER['HTTP_CGI_AUTHORIZATION'])),2);
 

xfrost

Guest
Кто нибуть может дать пример самого простого способа авторизации на PHP , но работающего на www.h11.ru
самый простой типа
if ($PHP_AUTH_PW != "pass" || $PHP_AUTH_USER != "admin") {
Header("WWW-authenticate: basic realm=\"SERVER\"");
Header("HTTP/1.0 401 Auth Required");
exit;
}
просто берет и опять страшивает пароль и ни с места что тут не так или может при обнавлении страницы соответсвующие переменные обнуляются?
 
Сверху