2016-04-28 16 views
0
から開始されます)

ログインシステムの設定中にエラーが発生しました。すべてのスクリプトの上にstart_sessionを置く警告:session_start():セッションキャッシュリミッタを送信できません - ヘッダーは既に送信されています(出力は

警告:にsession_start():セッションのキャッシュリミッタを送信できません - すでに送信 ヘッダ(出力は TEST4の\のindex.phpをで開始:)。 中test4 \ classes \ Login.php on line 28


ライン311:クラス/ Login.phpで

<?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(); 

ライン28:

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

     session_start(); // line 28 

事前にありがとうございます!あなたが入れて持っている理由、それは後半のどちらかsession_handler()をロードするようにすることですので、すでに送られたヘッダが、それはだから、このエラーが発生し

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

+0

311行目にphpタグを開いているのはなぜですか?つまり、たとえそれが新しい行であったとしても、その前にいくつかの非PHPがあることを意味します。 – jeroen

+0

@jeroen実際には311行前のHTMLだけです –

答えて

3

session_start()機能は、このようなあなたのファイルの先頭にする必要がありますそれをヘッダーとともにロードするためにファイルの上に置いてください。

あなたはページが含まフレームワークを使用する場合は、あなただけ私はこのことを願っていますが、他のファイルが含まれるメインファイル(index.phpを例えば)、

に一度session_start()を使用する必要がありますが手伝う。

+0

あなたの入力C0dekidありがとうございますが、これはうまくいきません私のために: '警告:session_start():2行目のtest4 \ classes \ Login.phpでセッションキャッシュのリミッタを送信できません - 既に送信されたヘッダ(test4でインデックスを開始しました\ index.php:311)' –

+0

セッションを他の場所で使用していますか?あなたのファイルに? – Jer

+0

私はちょうどチェックし、クラス/ Login.phpのものが唯一のsession_startです –

3

session_start()関数はちょうどtopを呼び出します。

<?php 
session_start(); 
関連する問題