Не работает Header location

Рейтинг: 0Ответов: 2Опубликовано: 21.01.2015

Вот код

<?php
error_reporting(E_ALL);
ini_set('display_errors','On');
ini_set('session.use_cookies', 'On');
ini_set('session.use_trans_sid', 'Off');
session_set_cookie_params(604800000, "/", ".site.ru", false, false);
session_start();
define('SID',session_id());
if (!isset($_SESSION["uid"])){
echo "Хакирование запрещено!";
exit;
}
include('../conf.php');
$uid = intval($_SESSION["uid"]);
header ("Location: ../profile.php");
exit;
?>

А вот ошибка

Cannot modify header information - headers already sent by (output started at ...general.php:16) in ...general.php on line 15

Пересохранял без BOM, как сам файл, так и конфиг, лишних пробелов и интеров нет

Ответы

▲ 1Принят

Зайди в php.ini и установи следующее значение:

output_buffering = On

P.S. Не забудь перезагрузить сервер, на котором установлен PHP. Наверное, это апач.

▲ 1

В самом начале

ob_start();

После всех действий в конце скрипта

ob_end_flush()

Это буферизует вывод (кроме заголовков). Все должно работать после этого.