Вопрос: HTTP-Аутентификация в PHP

Вопрос: HTTP-Аутентификация в PHP

Ответ:

Так, как на наших серверах используется php as FastCGI, то обычная http- аутентификация невозможна. Для решения проблемы необходимо отредактировать скрипт авторизации, добавив в него следующий код:
// проверяем - используется модуль или CGI
if (php_sapi_name() != "apache")
{
// если не задана авторизация - требуем её
if(!isset($_SERVER['Authorization'])){
//Header ("WWW-Authenticate: Digest realm=\"Admin Page\"");
header('WWW-Authenticate: Basic realm="Admin Page"');
Header ("HTTP/1.0 401 Unauthorized");
exit();
}else{ // авторизация не задана --> авторизация задана
list($hf_auth_type, $hf_auth_data) = preg_split("/[\s,]+/", $_SERVER['Authorization']);
list($_hf_login,$_hf_pass) = preg_split("/:/", base64_decode($hf_auth_data));
$_SERVER['PHP_AUTH_USER'] = $_hf_login;
$_SERVER['PHP_AUTH_PW'] = $_hf_pass;
// удаляем использованные переменные
unset($hf_auth_type);
unset($hf_auth_data);
unset($_hf_login);
unset($_hf_pass);
} // закрытие - авторизация задана
} // закрытие - интерфейс - модуль apache

Если же вами используется скрипт, зашифрованный с помощью zend\ioncube то можете создать файл /php-bin/auth.php (в кодировке, используемой скриптами) с указанным выше содержанием, и в файл /php-bin/php.ini добавьте строчку:
auto_prepend_file/php-bin/auth.php