2012-04-07 10 views
0

Possible Duplicate:
Headers already sent by PHP

Hier habe ich seltsames Problem meine Seiten zu schützen, ist zu überprüfen Sitzung gestartet, wenn nicht anmelden Umleitung auf,

<?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. 

} 
?> 

Ich habe diesen Fehler: in Zeile 8:

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

Kann jemand eine gute Lösung posten, um zu überprüfen, ob die Sitzung gestartet wird, und wenn nicht Umleitung zur Login-Seite weiter auf Seite bleiben? Txanks

+2

Entfernen Sie den Leerraum vor dem Öffnen '

+0

Wenn es vor dem '

+0

Oder auto_prepend_file – Leigh

Antwort

5

Das ist Ihr Problem:

<?php 
^^^^ 

Sie keine Ausgabe jeden Inhalt haben kann, bevor die Header gesendet wurden; das schließt Leerzeichen ein.

+0

Kein Leerzeichen in nur hier? Irgendeine andere Idee? –

+0

Nein, ich formatiere nur hier auf der Seite ist so –

1

Immer wenn Sie headers already sent sehen, bedeutet das, dass etwas ausgegeben wird, bevor PHP die Header senden kann.

In Ihrem Fall sind es die zusätzlichen Quellen vor dem PHP-Tag, wie Oli Charlesworth sagte.