#php #authentication #session #redirect
Вопрос:
Я знаю, что в основном страница перенаправляется на страницу, которая перенаправляет на первую страницу, но по какой-то причине я не могу найти ошибки в своем коде. В принципе, если сеанс не вошел в систему, перейдите на страницу входа / ничего не делайте, но если они вошли в систему, перенаправьте их в индекс.
if (isset($_SESSION['loggedin'])) {
if ($_SESSION['loggedin'] == null || $_SESSION['loggedin'] == "false") {
$_SESSION['loggedin'] == "false";
}
elseif ($_SESSION['loggedin'] == "true") {
header('location:index.php');
}
}
Комментарии:
1. Вы уверены, что значение
$_SESSION['loggedin']
является строкой, а не логическим значением?2.
$_SESSION['loggedin'] == "false"
это сравнение. Вам нужно использовать=
для назначения.3. как только вы войдете в систему, он всегда будет возвращать значение true. именно поэтому вы получаете бесконечное перенаправление.
Ответ №1:
Вы можете просто сделать это так 🙂
Это твой «index.php» на странице входа в систему:
<?php
session_start();
if(isset($_SESSION['loggedin'])){
header("location:your_dashboard.php"); //your main dashboard
}
?>
И это «your_dashboard.php» в вашей системе:
<?php
session_start();
if(!isset($_SESSION['loggedin'])){
header("location: index.php"); //index of your login page
}
?>