<?php if($_SESSION['IS_LOGEDIN'] == 'Y') { header("location:index.php?page=home"); exit(); } ?>
У меня проблемы с ребятами, у меня есть этот код входа и эта ошибка, когда я хочу пойти на эту страницу.
Сессия уже запущена – игнорирование session_start ().
Я попытался сделать код таким образом, но когда я хочу перейти на страницу, я не хочу загружать:
<?php if(!isset($_SESSION['IS_LOGEDIN']) == 'Y') { session_start(); header("location:index.php?page=home"); exit(); } ?>
Какое решение?
Ваш код неверен:
if(!isset($_SESSION['IS_LOGEDIN']) == 'Y') session_start()
Вы начинаете свою сессию ПОСЛЕ того, как вы пытаетесь проверить значение, которое (предположительно) в сеансе. Кроме того, isset()
возвращает логическое значение true / false. Он никогда не вернет строку и не вернет значение, которое может быть установлено в переменной, которую вы тестируете. Так что в основном у вас есть, if (true/false == 'Y')
что не имеет смысла.
Вероятно, вам нужно что-то большее:
session_start() if (!isset($_SESSION['IS_LOGEDIN']) || ($_SESSION['IS_LOGEDIN'] != 'Y')) { header('....'); }
«если пользователь никогда не входил в систему или не регистрировался, а затем перенаправлял».
Вы можете попробовать
<?php session_start(); //must be at the start of the page if(!isset($_SESSION['IS_LOGEDIN']) or empty($_SESSION['IS_LOGEDIN'])) { $_SESSION['IS_LOGEDIN'] = 'Y'; header("location:index.php?page=home"); exit(); } ?>