Ошибка входа / индекса PHP

#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