天天看點

***PHP Notice: Undefined index: ..問題的解決方法PHP error_reporting() 錯誤控制函數功能詳解

 首先,這個不是錯誤,是warning。是以如果伺服器不能改,每個變量使用前應當先定義。

    方法1:伺服器配置修改 

    修改php.ini配置檔案,error_reporting = E_ALL & ~E_NOTICE

    方法2:對變量進行初始化,規範書寫(比較煩瑣,因為有大量的變量)。但還沒有找到好定義方法,望大家指教

    方法3:每個檔案頭部加上:error_reporting(0); 如果不行,隻有打開php.ini,找到display_errors,設定為display_errors = Off。以後任何錯誤都不會提示。

    方法4 :做判斷:isset($_GET["page"])      if-else判斷

    或者加上''@''表示這行如果有錯誤或是警告不要輸出

    如:@$page=$_GET["page"]

    方法5:file1.php檔案把$xx變量付一個值,用post傳遞給file2.php,

    如果file2.php沒有$xx的定義,而直接使用$yy=$xx; 系統就會報錯:"undifined variaable $xx", 如果file2.php的檔案開始用$xx="";定義,那麼file1.php的$xx值就傳不過來了!

    file2.php裡可以這樣

    if(!isset($xx)) $xx="";

<code>定義和用法:</code>

<code>error_reporting() 設定 PHP 的報錯級别并傳回目前級别。</code>

<code>函數文法:</code>

<code>error_reporting(report_level)</code>

<code>如果參數 level 未指定,目前報錯級别将被傳回。下面幾項是 level 可能的值:</code>

<code>值 常量 描述</code>

<code>1 E_ERROR 緻命的運作錯誤。錯誤無法恢複,暫停執行腳本。</code>

<code>2 E_WARNING 運作時警告(非緻命性錯誤)。非緻命的運作錯誤,腳本執行不會停止。</code>

<code>4 E_PARSE 編譯時解析錯誤。解析錯誤隻由分析器産生。</code>

<code>8 E_NOTICE 運作時提醒(這些經常是你代碼中的bug引起的,也可能是有意的行為造成的。)</code>

<code>16 E_CORE_ERROR PHP啟動時初始化過程中的緻命錯誤。</code>

<code>32 E_CORE_WARNING PHP啟動時初始化過程中的警告(非緻命性錯)。</code>

<code>64 E_COMPILE_ERROR 編譯時緻命性錯。這就像由Zend腳本引擎生成了一個E_ERROR。</code>

<code>128 E_COMPILE_WARNING 編譯時警告(非緻命性錯)。這就像由Zend腳本引擎生成了一個E_WARNING警告。</code>

<code>256 E_USER_ERROR 使用者自定義的錯誤消息。這就像由使用PHP函數trigger_error(程式員設定E_ERROR)</code>

<code>512 E_USER_WARNING 使用者自定義的警告消息。這就像由使用PHP函數trigger_error(程式員設定的一個E_WARNING警告)</code>

<code>1024 E_USER_NOTICE 使用者自定義的提醒消息。這就像一個由使用PHP函數trigger_error(程式員一個E_NOTICE集)</code>

<code>2048 E_STRICT 編碼标準化警告。允許PHP建議如何修改代碼以確定最佳的互操作性向前相容性。</code>

<code>4096 E_RECOVERABLE_ERROR 開捕緻命錯誤。這就像一個E_ERROR,但可以通過使用者定義的處理捕獲(又見set_error_handler())</code>

<code>8191 E_ALL 所有的錯誤和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP 6.0)</code>

例子:

任意數目的以上選項都可以用“或”來連接配接(用 OR 或 |),這樣可以報告所有需要的各級别錯誤。

例如,下面的代碼關閉了使用者自定義的錯誤和警告,執行了某些操作,然後恢複到原始的報錯級别:

<code>&lt;?php</code>

<code>//禁用錯誤報告</code>

<code>error_reporting</code><code>(0);</code>

<code>//報告運作時錯誤</code>

<code>error_reporting</code><code>(E_ERROR | E_WARNING | E_PARSE);</code>

<code>//報告所有錯誤</code>

<code>error_reporting</code><code>(E_ALL);</code>

<code>?&gt;</code>

如何聯系我:【萬裡虎】www.bravetiger.cn

【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)

【部落格】http://www.cnblogs.com/kenshinobiy/