2011年8月6日 星期六

使用header()函數

重新導向為最常見的用法,即利用header()函數將目前瀏覽器的網頁導向另一網頁
header("Location: http://www.google.com/")
重新導向應該是目前網頁所執行的最後一項動作,所以此灀之後,通常會跟隨著一行用以結束程式執行的exit()敘述。

要特別留意,呼叫header()函數的動作,需在任何資料輸出至瀏覽器前進行,不論是HTML程式碼甚至是空白字元。若是header()函數敘述前,含有任何echo()、print()敘述或是空行(PHP標籤外)等內容,或是載入了包含這些內容的included file,將會出現以下錯誤訊息。
Warning:Cannot add header information - headers already sent bby (output started at phpmysql/header.inc:6) in phpmysql/header.php on line 6
避免錯誤發生,可使用headers_sent()函數來檢查是否已有資料輸出至瀏覽器。
if(!headers_sent()){
  header("Location: http://www.google.com/");
  exit();
} else {
  echo 'Wanted to redirect you but I could not do it!';
TIPS

  • header()函數也可應用於由PHP程式產生PDF檔、圖檔或其他非HTML的文件類型。
  • 建議於header()函數中使用完整的URL網址http://domain/index.php 。

-延伸閱讀 -
http://php.net/manual/en/function.header.php
http://www.w3.org/Protocols/

沒有留言:

熱門文章