重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
本篇內容主要講解“怎么解決php header失效問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么解決php header失效問題”吧!
10多年的淇濱網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都營銷網站建設的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整淇濱建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。創新互聯公司從事“淇濱網站設計”,“淇濱網站推廣”以來,每個客戶項目都認真落實執行。
php header失效的解決辦法:1、取消location和“:”符號之間的空格;2、在用header前不能有任何的輸出;3、修改php.ini打開緩存,并將“output_buffering=0”修改成409。
本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦
如何解決php header 失效問題?
PHP Header失效的原因分析及解決方法
在PHP中用header("location:test.php")進行跳轉要注意以下幾點:
1、location和“:”號間不能有空格,否則會出錯。
2、在用header前不能有任何的輸出,包括include的頁面中標簽“?>”后不能有空格!!
3、header后的PHP代碼還會被執行。
續:
問題:header函數前輸入內容
一般來說在header函數前不能輸出html內容,類似的還有setcookie() 和 session 函數,這些函數需要在輸出流中增加消息頭部信息。如果在header()執行之前有echo等語句,當后面遇到header()時,就會報出 “Warning: Cannot modify header information – headers already sent by ….”錯誤。就是說在這些函數的前面不能有任何文字、空行、回車等,而且最好在header()函數后加上exit()函數。例如下面的錯誤寫法,在 兩個php代碼段之間有一個空行:
//這里應該是一個空行
原因:
PHP腳本開始執行 時,它可以同時發送http消息頭部(標題)信息和主體信息. http消息頭部(來自 header() 或SetCookie() 函數)并不會立即發送,相反,它被保存到一個列表中. 這樣就可以允許你修改標題信息,包括缺省的標題(例如Content-Type 標題).但是,一旦腳本發送了任何非標題的輸出(例如,使用 HTML 或 print()調用),那么PHP就必須先發送完所有的Header,然后終止 HTTPheader.而后繼續發送主體數據.從這時開始,任何添加或修改Header信息的試圖都是不允許的,并會發送上述的錯誤消息之一。
解決方法:
修改php.ini打開緩存(output_buffering),將output_buffering=0修改成output_buffering=4096
或 者在程序中使用緩存函數ob_start(),ob_end_flush() 等。原理是:output_buffering被啟用時,在腳本發送輸出時,PHP并不發送HTTPheader。相反,它將此輸出通過管道(pipe) 輸入到動態增加的緩存中(只能在PHP4.0中使用,它具有中央化的輸出機制)。你仍然可以修改/添加header,或者設置cookie,因為 header實際上并沒有發送。當全部腳本終止時,PHP將自動發送HTTP header到瀏覽器,然后再發送輸出緩沖中的內容。
到此,相信大家對“怎么解決php header失效問題”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!