m0dE
@m0dE

Из-за чего может не срабатывать header?

Добрый день!
Есть промежуточная страница, для учета переходов по ранее сгенерированной ссылке, при переходе по которой выставляется флаг о переходе. Так вот между запросами и переходами есть разница (из 50 запросов с переходами примерно ссылок 7 ссылок не помечаются "переходом").
В логах сервера, базы данных ошибок нет. При запросе и при переходе в самом начале пишутся логи. Запрос ссылки происходит через CURL. Ссылка получена, делаю:
header('Location: '.$url);
die();


На стороне клиента такие ссылки все пишутся в логи. На стороне сервера она даже не попадает в лог начала вызова метода, где должна помечаться "переходом". Не могу понять из-за чего. Нигде никаких ошибок, связанных с этим нет (я про логи).
Какие могут быть предположения?
  • Вопрос задан
  • 2240 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ninazu
@Ninazu
Если до вывода хедера был какой-то вывод данных, хедер не отработает. Убедитесь что до выставления хедера не было echo, print_r, var_dump и прочих функций вывода. Если файл подключается, проверьте также в родительском файле. Также проверьте что файл не сохранён с использованием BOM. Если выставлен
error_reporting(E_ALL), то может валится какой-то notice, который тоже является выводом

Работать не будет
<html><body>
<?php
header('Location: '.$url);
die();


Работать не будет
<?php
echo "123";
header('Location: '.$url);
die();


Работать не будет
{ПРОБЕЛ, ТАБУЛЯЦИЯ ИЛИ ДРУГОЙ СИМВОЛ}<?php
header('Location: '.$url);
die();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы