проблема с аутентификацией

will_get_it

Новичок
Добрый день

имеется код, вынуждающий сделать аутентификацию при входе в админку


PHP:
<?php
include("mysql_connect.php");
if (!isset($_SERVER['PHP_AUTH_USER']))

{
        Header ('WWW-Authenticate: Basic realm="Admin Page"');
        Header ("HTTP/1.0 401 Unauthorized");
        exit();
}

else {
        if (!get_magic_quotes_gpc()) {
                $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
                $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
        }
        $query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
        $lst = @mysql_query($query);

        if (!$lst)
        {
            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
        Header ("HTTP/1.0 401 Unauthorized");
        exit();
        }

        if (mysql_num_rows($lst) == 0)
        {
           Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
           Header ("HTTP/1.0 401 Unauthorized");
           exit();
        }

        $pass =  @mysql_fetch_array($lst);
        if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
        {
            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
           Header ("HTTP/1.0 401 Unauthorized");
           exit();
        }


}




?>
который отлично работает на локальном сервере, но отказывается работать на хостинге.
переменная $_SERVER[''PHP_AUTH_USER] не получает никакого значения при вводе логина в соответствующее поле.

Буду благодарен любым советам:)
 

fixxxer

К.О.
Партнер клуба
посмотри phpinfo() на хостинге и там строчку Server API

если CGI, то понятно, почему не работает. и не должно
 

will_get_it

Новичок
разобрался

Server API: CGI/FastCGI

в этом проблема, так?

можно ли как то изменть на apache? или то, что хостер предоставляет, тем и нужно довольствоваться?
 

will_get_it

Новичок
нашел в faq, что только CGI...

как быть? есть ли альтернативные пути решения вопроса аутентификации?
 

will_get_it

Новичок
спасибо)

PHP:
explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
а можете расшифровать, что эта строчка делает?
 
Сверху