2016-04-25 38 views
1

您好我有一個PHP文件,該文件是空的代碼的唯一行有會話在空白頁面上啓動會導致錯誤;在session_start():不能發送會話緩存限制器

<?php session_start(); ?> 

沒有HTML標記或任何PHP代碼,除了上面的代碼。

在本地主機上它不會觸發一個錯誤,但是當它在服務器上,我訪問該頁面,一個新的生產線被印在上面寫着

[25-APR-2016 05錯誤日誌:43:34 UTC] PHP Warning:session_start():無法發送會話緩存限制器 - 已在第1行的/path/to/file.php中發送(在path/to/file.php:1處開始輸出)的頭文件

服務器正在運行Apache和PHP 5.6如果這是相關的,我也嘗試刪除.htacces文件,以防萬一這是什麼導致問題,但仍然沒有運氣。

任何人都可以指出我在正確的方向,看看有什麼可能導致問題?謝謝!

+0

你直接訪問這個PHP文件?是否有一個包含PHP腳本的地方,在輸出任何內容後調用'session_start'? –

+0

是的。我正在訪問頁面,如「domain.com/file.php」。有一個包含在不同頁面上的session_start(),但不在當前頁面 –

+0

我假設它在第1行(上面沒有空格)。我發現這個(從http://serverfault.com/questions/618316/warning-session-start-cannot-send-session-cache-limiter-headers-already-sent)誰似乎從來沒有得到一個經過驗證的答案。也許嘗試將代碼分成三行:1. <?php' 2.'session_start();'3.'?>' –

回答

1

問題:有時在你的代碼文件中有不可見的字符。

解決方案: 所以乾脆現在如果想使這裏修正這個錯誤是快速的方法來做到這一點: 我相信你必須使用某種形式的代碼編輯器只是簡單的保存與編碼你的PHP文件作爲「帶有BOM的UTF-8」,然後將保存的文件上傳到您的網站,然後訪問您的文件,您將沒有任何問題。

截圖爲了更好的指導: enter image description here

參考網址:

How to fix "Headers already sent" error in PHP

如果不解決您的問題,所以再使用此解決方案:

  1. 確保有絕對沒有空格前<?php
  2. ob_start()之前,而不是之後把它放到session_start()
  3. 如果失敗,嘗試註釋掉session_start()爲您 之一包括可能已經開始了會議,就像這樣:/** session_start(); **/
+0

哇,謝謝!這解決了我的問題。這是我第一次讀到這個問題,這個問題具體叫什麼,以便我可以更多地研究它?用編碼保存解決了我的問題精確 –

+0

@JustinMercado:答案已更新,以供參考URL&歡迎您。沒有問題..不要猶豫在尋求更多的幫助,如果你覺得需要..! –

相關問題