Перенаправить на страницу входа, если пользователь не вошел в систему

Я пытаюсь настроить страницу, которая доступна, только если пользователь вошел в систему и в противном случае перенаправляет на страницу входа.

У меня есть функция ниже, которую я получил из книги «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');
?>

0

Решение

У вас есть синтаксическая ошибка здесь в строке ниже:

if(!isset($_SESSION('userid'))) {

изменить на

if(!isset($_SESSION['userid'])) {

$ _SESSION — это массив, а не функция!

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]