Я пытаюсь настроить страницу, которая доступна, только если пользователь вошел в систему и в противном случае перенаправляет на страницу входа.
У меня есть функция ниже, которую я получил из книги «PHP и MySQL в In Easy Steps», но когда ни один пользователь не вошел в систему, он просто зависает и не перенаправляет. Я проверил ошибки транскрипции и не вижу проблем.
Я также пытался использовать header()
напрямую, и я также пытался использовать ob_start()
на случай, если проблема была в том, что заголовок не был отправлен первым — но все же я не могу заставить его работать и не вижу, в чем проблема. Любое руководство будет высоко ценится!
<?php
SESSION_START();
function load($page='login.php') {
$url='http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url=rtrim($url,'/\\');
$url.='/'.$page;
header("Location:$url");
exit();
}
if(!isset($_SESSION['userid'])) {
load('login.php');
}
include_once('includes/header.html');
/* ...rest of webpage...*/
include_once('includes/footer.html');
?>
У вас есть синтаксическая ошибка здесь в строке ниже:
if(!isset($_SESSION('userid'))) {
изменить на
if(!isset($_SESSION['userid'])) {
$ _SESSION — это массив, а не функция!
Других решений пока нет …