2016-05-05 11 views
0

私は私のライブにPHPのセッションのエラーを取得していますセッションの問題(CI)

localhostの罰金で働く
A PHP Error was encountered 

Severity: Warning 

Message: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/userts4m/public_html/development/relatioweb/admin/index.php:1) 

Filename: Session/Session.php 

Line Number: 140 

Backtrace: 

File: /home/userts4m/public_html/development/relatioweb/application/admin/controllers/User.php 
Line: 9 
Function: __construct 

File: /home/userts4m/public_html/development/relatioweb/admin/index.php 
Line: 293 
Function: require_once 

CodeIgniterの使用して開発。しかし私がサーバー上で肥大化したとき、私たちはこの問題に直面しています。

私は何をすべき...

+1

私はあなたがprint_r()を削除するのを忘れてしまったと思います。またはエコーステートメント – Kunal

+1

このファイルの1行目は何ですか? '/ home/userts4m/public_html/development/relatioweb/admin/index.php' – Dale

+0

' User.php'管理者のコンストラクタで何か変更してください。 – Tpojka

答えて

1

@kunalあたりと@dale提案としてにスペースがありました

2

これは通常どこかにすでにsession_start()を持っている2つ目は、このエラーをスローすることを意味します。冗長なものを削除します。

1

@session_start()を使用してください。エラーを回避し、セッションが開始されます。 @session_start()はコードの最初の行です。その前に何かを実行したりエコーしたりしないでください。

5

これらの2つのソリューションは私にとってはうまくいきます。それはあなたのために働くことがあります。

いくつかの回にこのエラーが原因、フレームワークの誤った構成に発生した、 はこの

<?php 
    if (!defined('BASEPATH')) exit('No direct script access allowed'); 
    ob_start(); 
    /* Remaining Part Of your file 
    ......................................... 
    */ 

別の解決策のようにファイルの先頭でこれをフォルダアプリケーション/設定に移動し、config.phpの書き込みを開きますこのようなクラス のコンストラクタにob_start()を記述することです:

<?php 
if (!defined('BASEPATH')) exit('No direct script access allowed'); 
    class Your_Controller extends CI_Controller { 
    public function __construct() { 
     parent::__construct(); 
     ob_start(); 
    } 
    } 
1

問題はよく私が 出力バッファリングの概念を実装するために必要なこれを解決するために、ここでHow to fix "Headers already sent" error in PHP

説明されているが(出力バッファリングとは、代わりに、我々はバッファブラウザに即座に応答を送信する仕組みでありますそれはどこかで、コンテンツ全体が準備できたらすぐに送ることができます)。 だからエラーなどの問題は、私は、開始PHPタグの前に空白スペースを有していてもよく、このファイルにindex.phpを

1

の先頭に

ob_start(); 

を挿入し、私がやったindex.phpの
で発生を示しています。