表單$_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 層級錯誤檢查,可以迴避掉這個毛病
但隱患終究是存在的,程式是不健壯的
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.