Проверка подлинности HTTP не работает при переключении на хост LIVE - PullRequest
0 голосов
/ 13 апреля 2011

Привет, ребята, я снова застрял, так куда еще идти, кроме stackoverflow?Так вот в чем дело: мой сайт настроен и прекрасно работает на LOCALHOST.У меня есть раздел администратора на моем сайте - ничего особенного, но я использовал обычную http-аутентификацию для его защиты.Я только что переместил весь FTP в каталог LIVE HOST и установил низкий уровень, и вот, аутентификация HTTP не работает.В частности, появляется всплывающее окно с именем пользователя и паролем, в котором указаны правильные данные.Тем не менее, когда я ввожу правильные данные для входа в систему, окно не пускает меня на страницу, оно просто появляется пустым.Сценарий аутентификации представляет собой отдельный файл:

<?php
 // User name and password for authentication
 $username = 'USER';
 $password = 'PASSWORD';

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||
($_SERVER['PHP_AUTH_USER'] != $username) || ($_SERVER['PHP_AUTH_PW'] != $password)) {
// The user name/password are incorrect so send the authentication headers
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="The Manor Cheadle"');
exit('<h2>The Manor Cheadle</h2>Sorry, you must enter a valid user name and 
password to access this page.');
}
?>

and is referenced at the top of every page:

<?php
require_once('authorize.php');
?>

Есть идеи, как обойти это и заставить его работать?

Заранее спасибо

1 Ответ

0 голосов
/ 13 апреля 2011

Я всегда использовал это для простой аутентификации, никогда не было проблем с этим. Но это выглядит очень похоже на ваш.

<?
$auth = 0;
if (!isset($_SERVER['PHP_AUTH_USER']))
{
    header('WWW-Authenticate: Basic realm="Login"');
    header('HTTP/1.0 401 Unauthorized');
    print "you need to login";
    exit;
}
else
{
    if ($_SERVER['PHP_AUTH_USER'] == "UserName" and $_SERVER['PHP_AUTH_PW'] == "Password")
    {
        $auth=1;
    }
    else
    {
        header('WWW-Authenticate: Basic realm="Login"');
        header('HTTP/1.0 401 Unauthorized');
        print "you need to login";
        exit;
    }
}

if ($auth==0) {
    print "you need to login";
    exit;
}
?>
...