#php
#php
Вопрос:
Моя форма входа работает нормально, но на моей индексной странице у меня есть скрипт, который перенаправляет пользователя на вход в систему, если он не вошел в систему, но выдает ошибку, также, если я удалю код, он будет работать нормально
Вот код:
<?php
session_start();
include_once 'db.php';
if(isset($_SESSION['usr_id'])!="") {
header("Location: index.php");
}
if(!isset($_SESSION['usr_id'])!="") {
header("Location: login.php");
}
?>
Комментарии:
1. В чем ошибка?
2.
isset()
возвращает логическое значение. Не уверен, с чем вы это сравниваете!= ""
.3. @R.Chappell ‘Не удалось открыть страницу’
4. Если это ваш index.php файл, почему ты снова переадресовываешь на него? Похоже, вы застряли в бесконечном цикле. Ваша индексная страница постоянно перенаправляется на саму себя.
Ответ №1:
Вам нужно только второе условие:
if (!isset($_SESSION['usr_id'])) {
header("Location: login.php");
}
Добавление первого условия приведет к бесконечному циклу.
Комментарии:
1. @oceanman Странно, что вы использовали мой ответ для решения вашей проблемы, но вы приняли другой ответ с тем же самым, но без объяснения причин.. это неправильно..
Ответ №2:
Как я вижу здесь, вы пытаетесь проверить существующий индекс неправильным способом, вместо этого проверьте этот код
<?php
session_start();
include_once 'db.php';
if(isset($_SESSION['usr_id']) amp;amp; !empty($_SESSION['usr_id'])) {
header("Location: index.php");
}
else
{
header("Location: login.php");
}
?>
ОБНОВЛЕНИЕ
как упоминалось в комментариях, не делайте этого в index.php . если вы находитесь в index.php удалить блок else
Комментарии:
1. На это все еще влияет ошибка бесконечного цикла, если она добавлена на страницу индекса.
Ответ №3:
if (!isset($_SESSION['usr_id'])) {
header("Location: login.php");
exit;
}
Комментарии:
1. Хотя этот фрагмент кода может решить проблему, он не объясняет, почему или как он отвечает на вопрос. Пожалуйста, включите объяснение вашего кода , так как это действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос для читателей в будущем, и эти люди могут не знать причин вашего предложения кода.
Ответ №4:
Попробуйте использовать else вместо другого if