У меня есть сайт с файлами в корне, этот сайт с всплывающим логином через неавторизованный в php, этот логин работает хорошо.
У меня есть другой сайт в папке в корне: root / admin_pi /, на этом сайте у меня также есть всплывающее имя входа через неавторизованный, как сайт в корне,
У меня проблема на втором сайте (root / admin_pi /)
когда я вхожу в систему, сайт заходит на домашнюю страницу, но когда я перехожу на другую страницу или перезагружаю домашнюю страницу, я снова вижу всплывающее окно входа,
каждый раз, когда я меняю страницу, я снова вижу всплывающее окно,
кто-нибудь может помочь мне узнать, как я могу исправить конфликт с двумя именами входа?
каждый сайт имеет свой файл .htaccess со строкой:
RewriteRule. * — [E = HTTP_AUTHORIZATION:% {HTTP: авторизация}]
это мой php код для входа в систему:
function doLogin()
{
if(!isset($_SESSION['login']))
{
if (isset($_POST['email']) && isset($_POST['pass'])) {
$_SESSION['logged_in']=true;
$_SESSION['logged_in_password']=$password;
$_SESSION['logged_in_username']=$user;
header("location: ".HOME_PAGE);
return;
}
else {
showLoginBox();
}
}
else
{
if(preg_match('/Basic+(.*)$/i', $_SERVER['REDIRECT_HTTP_AUTHORIZATION'], $matches))
{
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['REDIRECT_HTTP_AUTHORIZATION'], 6)));
}
$user = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
$password = isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
$login_success = check_user_details($user, $password);
if($login_success)
{
$_SESSION['logged_in']=true;
$_SESSION['logged_in_password']=$password;
$_SESSION['logged_in_username']=$user;
header("location: ".HOME_PAGE);
return;
}
else
{
session_unset($_SESSION['login']);
showLoginBox();
}
}
}function showLoginBox(){
$_SESSION['login']=true;
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$_SESSION['logged_in']=true;
$_SESSION['logged_in_password']=$password;
$_SESSION['logged_in_username']=$user;
header("location: ".HOME_PAGE);
return;
}
header('WWW-Authenticate: Basic realm="Admin Panel"');
header('HTTP/1.0 401 Unauthorized');
echo "You must enter a valid username and password to access this page\n";
echo '<p><a href="javascript:location.reload(true)">Try again</a></p>';
exit;
}
большое спасибо
Задача ещё не решена.
Других решений пока нет …