header("Location:")作為php的轉向語句。其實在使用中,他有幾點需要注意的地方。
1、要求header前沒有任何輸出
但是很多時候在header前我們已經輸出了好多東西了,但是此時如果再次header的話,顯然是出錯的,在這里我們啟用了一個ob的概念,這個東東的意思是在服務器端先存儲有關輸出,等待適當的時機再輸出,而不是像現在這樣運行一句,輸出一句,發現header語句就只能報錯了。
具體的語句有: ob_start(); ob_end_clean();ob_flush();.........
2、在header("Location:")后要及時exit
否則他是會繼續執行的,雖然在瀏覽器端你看不到相應的數據出現,但是如果你進行抓包分析的話,你就會看到下面的語句也是在執行的。而且被輸送到了瀏覽器客戶端,只不過是沒有被瀏覽器執行為html而已(瀏覽器執行了header進行了轉向操作)。
所以,標準的使用方法是:
ob_start();
........
if ( something ){
ob_end_clean();
header("Location: yourlocation");
exit;
else{
..........
ob_flush(); //可省略
}
新聞熱點
疑難解答