2015-08-09 86 views
0

我在發佈我的網站時遇到問題。我有一個使用codeigniter進行會話的驗證系統。 當它在localhost上運行時,它是完美的。但是,當我在服務器(主機GoDaddy的)發佈,它顯示此消息 嚴重性:警告使用會話codeigniter時出錯

消息:在session_start():不能發送會話cookie - 已經 通過發送頭(輸出開始 /家/ cristiandelacruz /的public_html/crmappsdc /應用/配置/ config.php文件:1)

文件名:控制器/ login.php中

回答

0

這意味着你必須在瀏覽器的東西輸出,而重定向。

你可以做以下的事情:

1)檢查其代碼打印HTML。並刪除它。 例如。空格,回顯或打印語句。 2)如果這不起作用,請添加ob_start();如果這不起作用,請添加ob_start();如果這不起作用,請添加ob_start();如果此操作不起作用,請添加ob_start();如果此操作不起作用,請添加ob_start在文件開始處。它將輸出存儲在緩衝區中併發生重定向。

0

檢查在php提示文件中打開標記之前是否有空格。再次嘗試在沒有BOM的情況下保存該文件(將內容複製到新文件中,並仔細檢查在文件啓動之前沒有空白或任何字符,並將其保存爲不含BOM的UTF-8編碼)。也許有幫助。

0

發生這種情況是因爲您的本地環境沒有打開完整的錯誤報告,而您的託管提供了此功能。問題很可能總是存在的。造成這個問題的原因很可能是您正在調用Codeigniter的會話類$this->session-> ...,但是在加載應用程序的某個地方,PHP已經遇到了這個問題:session_start()。爲了解決這個問題,你需要調試你的程序,並找出會話正在被初始化的地方,因爲它的當前設置方式,它被初始化兩次。

0

原因:

此錯誤是,如果你的PHP腳本打印到前發送標題中的瀏覽器造成的。一個常見的例子是在開始會話或設置cookie之前打印html標籤。錯誤告訴需要修改的行(在這種情況下,它在/config.php上)。

分辨率:

要解決此錯誤請從PHP代碼,在發送之前打印頭到瀏覽器的線路。

此錯誤的另一個常見原因是文件開頭或結尾的空白。修復方法是從文件中刪除空白。仔細閱讀錯誤信息。它說輸出開始於..。後跟一個文件名和一個行號。這是您需要編輯的文件(和行)。忽略第二個文件名 - 這只是包含具有空白的文件的文件。第一個文件是我上面所有的解決方案試圖在一個你必須編輯,而不是從 WHAT DO I DO WHEN I RECEIVE A PHP HEADER ERROR MESSAGE? GoDaddy Forum

Codeigniter Seesion class

0

第二個

來源。終於,我在php.ini(GoDaddy的服務器)

output_buffering = on 

改變output_buffering在PHP默認爲output_buffering 5.4版本沒有價值 我默認情況下,PHP版本5.4更新到5.6和5.6版本,它的價值4096 現在它工作正常