2016-04-28 2 views
0

Ich erhalte eine Fehlermeldung beim Versuch, die Einrichtung Anmeldungssystem Ich habe versucht, mehrere „Lösungen“, aber keiner von ihnen arbeiten wie. setzen die start_session auf der Spitze aller SkripteWarning: session_start(): Can not Sitzungscache senden - headers already sent (output started at

Warning: session_start():. Kann nicht Session Cache senden - Header bereits gesendet (Ausgabe begann bei test4 \ index.php:) in test4 \ Classes \ login.php auf der Leitung 28


Zeile 311:

<?php // line 311 
    if (version_compare(PHP_VERSION, '5.3.7', '<')) { 
     exit("Please upgrade the PHP version to 5.3.7 or higher."); 
    } else if (version_compare(PHP_VERSION, '5.5.0', '<')) { 
     require_once("libraries/password_compatibility_library.php"); 
    } 

    require_once("config/db.php"); 
    require_once("classes/Login.php"); 

    $login = new Login(); 

Linie 28 in Klassen/login.php:

<?php 
class Login { 
    private $db_connection = null; 
    public $errors = array(); 
    public $messages = array(); 
    public function __construct() { 

     session_start(); // line 28 

Danke im Voraus!

+0

Warum haben Sie ein öffnendes PHP-Tag in Zeile 311? Das heißt, es gibt einige nicht-PHP vor, dass, auch wenn es nur eine neue online ist ... – jeroen

+0

@jeroen Eigentlich ist es HTML kurz vor der 311 Linie –

Antwort

3

Die session_start() Funktion am Anfang Ihrer Datei wie folgt sein sollte:

<?php 
session_start(); // Should be on top when using $_SESSION 

class Login { 
    private $db_connection = null; 
    public $errors = array(); 
    public $messages = array(); 
    public function __construct() { 

     // Rest of your scripts 

Dieser Fehler wird verursacht, weil die Header, wo bereits gesandt, damit er die session_handler() entweder spät zu laden ist, das ist, warum Sie setzen müssen Es über Ihrer Datei, um es mit den Headern zu laden.

Wenn Sie einen Rahmen verwenden, die die Seiten enthält, können Sie nur die session_start() einmal in der Hauptdatei verwenden müssen (zB index.php), wo Sie die anderen Dateien

umfassen hoffe, dass ich diese wird dir helfen.

+0

Danke für Ihre Eingabe C0dekid, aber das scheint nicht zu funktionieren für mich: 'Warnung: session_start(): Sitzungs-Cache-Begrenzer kann nicht gesendet werden - Header bereits gesendet (Ausgabe gestartet bei test4 \ index.php: 311) in test4 \ classes \ Login.php in Zeile 2' –

+0

Verwenden Sie die Sitzung an anderer Stelle in deinen Dateien? – Jer

+0

Ich habe gerade überprüft und die in Klassen/Login.php ist der einzige session_start –

3

session_start() Funktionsaufruf nur oben.

<?php 
session_start(); 
Verwandte Themen