У меня есть следующий код в PHP,
<?php
ob_start();
$valid_passwords = array ("matrixUlt" => "$ecurEh1FIVE");
$valid_users = array_keys($valid_passwords);
$user = $pass = null;
if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']))
{
$user = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
}
$validated = (in_array($user, $valid_users)) && ($pass == $valid_passwords[$user]);
if(!$validated)
{
header('WWW-Authenticate: Basic realm="You need to be authenticated to access the resource!"');
header('HTTP/1.0 401 Unauthorized');
exit("Not authorized");
echo ob_get_clean();
}
Это работает правильно в localhost, когда задано это [(«matrixUlt» => «$ ecurEh1FIVE»] имя пользователя: пароль. Но продолжает отображаться диалоговое окно аутентификации в LIVE сервере / рабочей среде. Есть идеи, почему это не работает?
Извините за весь беспорядок & я в замешательстве работает CGI / FastCGI в производстве. Так что это невозможно использовать HTTP AUTHENTICATION в PHP работает этот FastCGI
Этот ответ StackOverflow дал мне подсказку https://stackoverflow.com/a/7053320/1786360 ; Я не заметил эту вещь в руководстве по PHP, потому что она там отсутствует.
Других решений пока нет …