session_start () и заголовок ('location:') redirect

Возможный дубликат:
Заголовки, уже отправленные PHP

У меня проблема с session_start() и header('Location:') в файле php выхода из системы.

Я связываюсь с файлом выхода из системы, используя простой тег привязки из html-файла. Файл php logout:

 <?php session_start(); session_destroy(); header("Location: index.php"); ?> 

Чтобы узнать, где были ошибки, которые я использовал,

 error_reporting(E_ALL); ini_set('display_errors', '1'); 

Я получил предупреждение о том, что «Warning: session_start (): Не удается отправить ограничитель кеша сеанса, уже отправленный» в строке 4 (где session_start(); is) и Warning: Невозможно изменить информацию заголовка – заголовки, уже отправленные по строке 6 (где header('Location') есть).

Я осмотрел других, у которых были подобные проблемы. Я уверен, что перед session_start() нет пробелов. Перед этим ничего не выводится. Я пробовал только установить session_start() если он еще не установлен. Я попробовал буферизацию с помощью ob_start() . Я попробовал относительный и абсолютный путь для перенаправления, чтобы убедиться. Но ничего не сработало.

Я что-то упускаю? Буду признателен за любую оказанную помощь.

Related of "session_start () и заголовок ('location:') redirect"

проверить спецификацию

http://en.wikipedia.org/wiki/Byte_order_mark

в блокноте ++ – кодирование -> utf8 без спецификации

РЕДАКТИРОВАТЬ

просто для комментариев – вы должны использовать exit; после заголовка («Местоположение …»), чтобы убедиться, что ничего не будет запущено, как рекомендовано в http://php.net/manual/en/function.header.php

Иногда тег окончания ?> известно, вызывает эту проблему. В файле, содержащем PHP и ничего больше, удаление ?> Почти всегда решаемых headers already sent проблемы для меня.

PHP * session_destroy () * – это только одна часть вопроса. Вам также необходимо явно удалить данные из массива $ _SESSION. Вам также может понадобиться очистить файлы cookie. Вы не можете проверить это успешно, если одновременно открыто несколько экземпляров браузера (окна или вкладки) – все они используют один и тот же куки-файл cookie и, таким образом, используют один и тот же сеанс PHP.

Вы можете прочитать эту ссылку: http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_2391-PHP-login-logout-and-easy-access-control.html

Этот код является хорошим примером выхода из системы.

 <?php session_start(); // CLEAR THE INFORMATION FROM THE $_SESSION ARRAY $_SESSION = array(); // IF THE SESSION IS KEPT IN COOKIE, FORCE SESSION COOKIE TO EXPIRE if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', $cookie_expires, '/'); } // TELL PHP TO ELIMINATE THE SESSION session_destroy(); // SAY GOODBYE... echo "YOU ARE LOGGED OUT$uid. GOODBYE."; // OR REMOVE THE GOODBYE MESSAGE AND ACTIVATE THESE LINES TO REDIRECT TO THE HOME PAGE // header("Location: /"); // exit; 

скопируйте эту

 <? session_start(); session_unset(); session_destroy(); ob_start(); header("location:home.php"); ob_end_flush(); exit(); ?>