表單$_post[]的有關問題
來源:互聯網
上載者:User
表單$_post[]的問題
表單action指向本身所在頁面
提交按鈕
下面有一個判斷 if($_Get['search'])
如果有值,說明點擊了查詢按鈕,執行啥啥操作
如果沒有值,僅僅顯示本頁面靜態部分。
5.3可以運行
使用PHP5.5之後卻無法顯示該網頁
請問解決辦法吧。這是怎麼回事?所有代碼都需要重寫?
------解決思路----------------------
$_GET[search]
不加引號。PHP首先會尋找search常量,找不到所以就報錯了。
如果不想改代碼,可以在首行加上:error_reporting(E_ALL & ~E_NOTICE); 這句,就可以將notice錯誤報表屏蔽掉。
------解決思路----------------------
你可以把錯誤調試開啟,如果是網頁無法顯示,應該是哪裡有問題。
------解決思路----------------------
加引號這個是標準寫法。
為什麼不按標準呢。。
------解決思路----------------------
出現這個錯誤提示的原因,PHP會把沒有引號引起來的鍵名當作是常量去擷取, 當找不到的時候, 拋出一個NOTICE, 然後再根據“常量名”產生一個字串, 然後再講這個字串做為鍵名繼續~
可以設置error_reporting(E_ALL & ~E_NOTICE); 來屏蔽錯誤顯示。但最好還是加引號,這樣不需要在將常量轉字元去獲取多次,提高效率。
------解決思路----------------------
這與 php 版本無關,但與 php 環境設定有關
當然,隨著 php 版本的升級,你受到的約束也在升級
if($_Get['search']) 將可能會產生一個 E_NOTICE 層級的錯誤資訊
如果你沒有開啟錯誤顯示,或將錯誤資訊重新導向到日誌
那麼由於錯誤資訊沒有出路,導致一個 HTTP 500 狀態(伺服器拒絕響應)
雖然屏蔽掉 E_NOTICE 層級錯誤檢查,可以迴避掉這個毛病
但隱患終究是存在的,程式是不健壯的