Заголовок () не перенаправляет PHP

Я использую следующий код PHP для проверки сеанса. Но если сеанс не регистрируется, тогда страница не перенаправляет, просто покажет черную страницу.

Мое условие If правильно! он поражает функцию заголовка. Вот мой код:

if( !isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '') AND !isset($fb_login) ) { header("location:login.php?msg=Please+Login+Again."); } 

Предложения приветствуются!

 HTTP/1.1 200 OK Date: Wed, 10 Oct 2012 10:57:14 GMT Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.3.3 Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=UTF-8 

Если вы используете header("Location: "); после вывода содержимого убедитесь, что вы поместили ob_start(); ранее в скрипте. ob_start(); буферизирует ваш скрипт, поэтому ничего не выводится, пока вы не ob_end(); или достигнут конец файла. Вызов header("Location: "); после того, как контент уже был выведен в браузер, это может вызвать проблемы.

Поместите ob_start (); в начале файла PHP это поможет,

 <?php ob_start(); /* Your code */ ?> 

Обязательно поставьте выход; или умереть; после команды: и запустите «Местоположение» в верхнем регистре

 if (!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '') AND !isset($fb_login)) { header("Location:login.php?msg=Please+Login+Again."); exit; } 

Сделать L капитала.

  header("Location: login.php?msg=Please+Login+Again."); exit(); // just a precaution 

Попробуйте правильно форматировать заголовок:

 header("Location: login.php?msg=Please+Login+Again."); 

И, конечно же, убедитесь, что вы не отправляете какой-либо вывод (либо по назначению, либо по ошибке) перед вызовом.

 header("Location: login.php?msg=Please+Login+Again."); exit(); 

1) Убедитесь, что вы ничего не посылаете перед функцией header ()

2) Сделайте «местоположение» в «Location:»

Добавляя к тому, что говорили другие, вы уверены, что условия выполнены, чтобы попасть в заголовок ()

Вы можете использовать empty (), чтобы очистить свой код и выполнить некоторые тесты:

 //Debug unset($_SESSION['SESS_MEMBER_ID']); unset($fb_login); if(empty($_SESSION['SESS_MEMBER_ID']) && !isset($fb_login)) { exit(header("Location: login.php?msg=Please+Login+Again.")); } с //Debug unset($_SESSION['SESS_MEMBER_ID']); unset($fb_login); if(empty($_SESSION['SESS_MEMBER_ID']) && !isset($fb_login)) { exit(header("Location: login.php?msg=Please+Login+Again.")); } с //Debug unset($_SESSION['SESS_MEMBER_ID']); unset($fb_login); if(empty($_SESSION['SESS_MEMBER_ID']) && !isset($fb_login)) { exit(header("Location: login.php?msg=Please+Login+Again.")); } 

Попробуйте изменить AND для &&

 if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '') && !isset($fb_login) ) { header("location:login.php?msg=Please+Login+Again."); }