2009-11-17 3 views
0

У меня есть форма, которая отправляет сценарий обработки, который проверяет наличие ошибок в сообщении. В зависимости от обработки заголовок переадресовывается в другое место. Это, похоже, сработало, но я только что заметил, что все еще выполняет материал после заголовка.Почему моя страница все еще выполняется?

Что происходит?

+1

У вас есть пример кода? – Lizard

+3

Не могли бы вы выслать код? Это поможет в выявлении проблемы. Спасибо – Sundeep

+0

Подробнее здесь: http://thephpcode.blogspot.com/2009/01/why-exit-after-header-redirect.html – mauris

ответ

11

Нам понадобится некоторый код, чтобы увидеть то, что происходит ...

Но, скорее всего, вы уверены, что не используете выход(); или умереть(); после заголовка («Местоположение: ...»);

например.

//check your post 

if($errors) 
{ 
    header("Location: errors.php"); // bug fixed =D 
    exit(); 

    // this will still be executed if the exit was not there. 
} 
+1

Больше объяснений, которые я написал здесь: http: //thephpcode.blogspot. com/2009/01/why-exit-after-header-redirect.html – mauris

4

Помещенный die(); после функции header();

+1

или выйти; [...........] – dusoft

0

Это правильное поведение - вызов header() не остановит скрипт сразу. Для большинства других заголовков (Content-type, ETag, Expires и т. Д.) Вы не должны хотеть его останавливать, поскольку эти заголовки относятся к контенту, который вот-вот последует; в этом отношении, Местонахождение: немного необычно.

Смежные вопросы