2012-04-07 3 views
0

Possible Duplicate:
Headers already sent by PHP

Здесь у меня есть странные проблемы, чтобы защитить свои страницы, чтобы проверить, запускается сеанс, если не перенаправлять войти,

<?php 
require_once ('includes/config.inc.php'); 

// Start output buffering: 
ob_start(); 

// Initialize a session: 
session_start(); 

// Check for a $page_title value: 
if (!isset($page_title)) { 
    $page_title = 'User Registration'; 
} 

// If no first_name session variable exists, redirect the user: 
if (!isset($_SESSION['first_name'])) { 

    $url = BASE_URL . 'index.php'; 
    ob_end_clean(); // Delete the buffer. 
    header("Location: $url"); 
    exit(); // Quit the script. 

} 
?> 

Я получил эту ошибку: в строке 8:

session_start() [function.session-start]: Cannot send session cache limiter - headers already sent

Может ли кто-нибудь опубликовать хорошее решение, чтобы проверить, запущен ли сеанс, а если не перенаправить на страницу входа еще на странице? Txanks

+2

Удалите пробел перед открытием '

+0

Если пробелы перед ''? Php' в коде, указанном ниже (в соответствии с вашим кодом), быть либо пробелом в вашем 'config.inc.php', либо каким-либо другим выходом, выполняемым в этом файле. –

+0

Или auto_prepend_file – Leigh

ответ

5

Это ваша проблема:

<?php 
^^^^ 

Вы не можете иметь выходную любое содержимое до заголовки были посланы; который включает пробелы.

+0

Без пробелов здесь? Любая идея? –

+0

Нет, я просто форматирую здесь, на странице. –

1

Всякий раз, когда вы видите headers already sent, это означает, что что-то выводится до того, как PHP может отправить заголовки.

В вашем случае это дополнительные источники перед тегом PHP, как сказал Оли Чарлворт.

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