Я создаю собственную систему управления контентом для веб-сайта, который я построил, и до сих пор все выглядит хорошо до этого дорожного блока. Я получил свой код для работы, где с login.php страницы вы можете ввести имя пользователя и пароль, и он успешно перенаправляет меня на страницу index.php, но затем я решил, что мне нужно перенаправить всех, кто не вошел в систему, чтобы войти в систему.php, прежде чем смотреть на другие страницы моей CMS.
Итак, вот этот код прямо здесь...
<?php require_once("lib/sessions.php");
require_once("lib/functions.php");
require_once("meta.php");
login_confirm();
?>
Это в верхней части каждой страницы моей CMS и что функция login_confirm выглядит так...
function login_confirm() {
if(!logged_in()) {
redirect_to("login.php");
}
}
function logged_in() {
return isset($_SESSION['admin_id']);
}
$ _SESSION ['admin_id'] устанавливается на моей странице входа, как это...
$found_admin = attempt_login($username, $password);
if($found_admin) {
//Success, mark user as logged in
$_SESSION["admin_id"] = $found_admin["id"];
$_SESSION["username"] = $found_admin["username"];
redirect_to("index.php");
} else {
//failed
$_SESSION["message"] = "Log in failed";
}
И, как я уже сказал в начале, страница входа в систему успешно перенаправит вас на index.php без проблем, но это было до того, как я поместил login_confirm() в верхней части моих страниц. Теперь независимо от того, что я всегда перенаправляю на login.php, даже если я ввел правильные учетные данные. Я предполагаю, что сеанс не сохраняется или что-то еще...
Редактирование: session.php выглядит так. Таким образом, сеанс запускается в верхней части страницы.
<?php
session_start();
ob_start();
//function for message and errors
?>
Я не вижу, что вы используете session_start(); Перед использованием $ _SESSION вы должны инициализировать его.
require_once("lib/sessions.php);
Первая ошибка первой строки. Также я должен спросить, есть ли у васsession_start();
в любом используемом вами файле:$_SESSION
?