2012-09-05 101 views
-1

我收到以下警告消息,如圖所示,我相信是由於增加了一個額外的會話變量(session_start),所以我想要的是我需要隱藏該警告。 enter image description here如何隱藏會話的警告消息?

其實如果我沒有給會話在開始時獲得用戶會話,但如果它沒有給出然後會話未設置,但添加它時會發出警告。可能是什麼問題?

代碼:

<?php 
    session_start(); 
    include("connect/config1.php"); 
?> 
+1

所以,你只是想隱藏警告,而不是實際修復它?我希望你沒有爲這項工作獲得報酬...... – Bojangles

回答

3

你必須把session_start()在文檔的開頭。這次通話前必須沒有輸出。

隱藏郵件不會解決您的問題。

如果你只想隱藏警告:

<?php 
ini_set('error_reporting', 0); 
ini_set('display_errors', 0); 
?> 

看看你fullsearch.php,有可能是在開始一個空行(<?php之前)。去掉它。

+1

恭喜OP提示如何在腳下自己射擊。 – raina77ow

+0

我不同意。我的'建議'是要解決問題,並提示如何去做。儘管如此,有時隱藏警告是有用的(不在開發中,也可能不在這個錯誤中),因此我回答了這個問題。 – Jens

+0

我看到你的理由,但禁用error_reporting而不記錄這些錯誤(無論如何)是一項非常危險的政策。而且,不幸的是,我已經遇到了我所有的代碼,所有的垃圾都只是在地毯下掃蕩 - 不是沒有後果。 – raina77ow

2

永遠不要嘗試隱藏在開發環境中的警告:它們在尋找錯誤方面非常有用。例如,沒有這個特別的警告,你可能永遠不會知道爲什麼你的會話相關頭文件實際上沒有被髮送(換句話說,爲什麼會話不工作)。

取消顯示警告的原因。這個特別的警告很可能是由在您可信的<?php代碼分隔符前爬行的流氓空白引起的。這意味着服務器已經開始輸出的東西給客戶,但你希望他們要回了頭的發送...

因此,檢查你的文件,並確保沒有是呼應session_start()被調用之前。 This discussion可能會很有幫助。 )

UPDATE:

事實上,你的代碼已經引述的問題有它相當清楚:

<?php 
    session_start(); 
    include("connect/config1.php"); 
?> 

見,<?php由空格前面這裏。這意味着服務器將實際發送這些符號(在HTTP響應正文中),然後纔開始解析腳本本身。但之後它會被要求發送標頭 - 並且警告這個警告聲。

解決方法很簡單:刪除空白。這樣不僅警告將消失,而且會話也將開始工作。 )