2013-09-06 5 views
0
function sec_session_start() { 
$session_name = 'exon_id_sessfval'; 
$secure = false; 
$httponly = true; 
ini_set('session.use_only_cookies', 1); 
$cookieParams = session_get_cookie_params(); 
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly); 
session_name($session_name); 
session_start(); 
session_regenerate_id(); 
} 

Следующий код выше генерирует заголовки уже прислал предупреждение, когда в связи с session_start(), даже если я использую ob_start() на первой линии, чтобы попытаться игнорировать проблема.PHP заголовки уже отправлены - session_start() и SetCookie()

его называют на странице, как следует:

<?php 
include('./inc/sessions.php'); 
sec_session_start(); 
header("Location: index.php"); 

Любые советы? Разумеется, заголовок включен в логический оператор для проверки с пользователем, но он ничего не выводит. Отслеживание приходит к session_start(), поэтому я полагаю, что он имеет какое-то отношение к сеансам cookie.

Внимание: session_start(): Не удается отправить ограничитель сессии кэш - заголовки уже прислал (выход начался в /customers/b/2/5/edited.com/httpd.www/beta/login.php:1) in /customers/b/2/5/edited.com/httpd.www/beta/inc/sessions.inc.php в строке 11

Предупреждение: session_regenerate_id(): невозможно восстановить идентификатор сеанса - заголовки уже отправлены /customers/b/2/5/edited.com/httpd.www/beta/inc/sessions.inc.php на линии 12

Предупреждение: не удается изменить информацию в заголовке - заголовки уже прислал (вывод начался с /customers/b/2/5/edited.com/httpd.www/beta/login.php:1) в /customers/b/2/5/edited.com/httpd.www/ beta/login.php on line 13

+0

У вас, очевидно, есть выход над одним из ваших файлов и может находиться внутри одного из ваших включенных файлов. Все, что указано выше '

+0

попробуйте поставить session_start(); как можно скорее на вашей странице –

+0

Что-то напечатано перед перенаправлением заголовка – Salim

ответ

2

У вас, очевидно, есть выход над одним из ваших файлов и может находиться внутри одного из ваших включенных файлов. Все, что выше <?php, рассматривается как выход.

«Anything» может быть HTML, текст, пробел, вкладка, спецификация (byte order mark), даже cookie.

+0

Да, спасибо. BOM Character это было – Resurgent

+0

@ user1597648 Добро пожаловать, и вот что я подумал. Также, как ни странно, cookie также будет рассматриваться как результат. –

+0

@ user1597648 Если вы можете принять мой ответ как правильный, то он не останется «без ответа». Приветствия –

1

Да, я только что проверил.

Я выбрал кодировку UTF-8 без спецификации в Блокноте +++, и она решила проблему.

Спасибо.

0

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

Также помните, что любой символ (включая пробелы, разрывы строк и тому подобное) считается выходным. Первыми символами любого файла PHP должны быть <?php.

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