一般我們在PHP執行要轉跳頁面,大部分我們都是使用 header("Location:$url" )的方式。可以直接把頁面轉到特定你所指定的URL。比較少人用 header("Refresh: 0; url=$url")。這兩行都可以做到同樣轉跳網址的功能。但是還是有些微差異。
這邊我分別說明一下。當我透過A頁面,送出http://titan.test.com.tw/B.php?A=10,到B.php處理,如果使用 header("Location:c.php" ),頁面在執行B.php之後就會馬上導到C.php,所以使用者的瀏覽器中,只會看到A.php與C.php在歷史中。當你導到C.php之後,如果你按上一頁。網頁會直接跳到A.php,瀏覽器並不會知道B的存在。
如果你使用header("Refresh: 0; url=c.php"),瀏覽器會在B.php停頓,然後在導到C.php,但是這個方法還有一個好處,可以設定N秒之後在進行轉跳頁面。只要修改Refresh後面的數字,就可以。如果我要停頓3秒之後在轉頁面,那就是header("Refresh: 3; url=c.php")。
我在實做時,有一個狀況,如果當C.php是不存在的時後,如果選擇header("Location:c.php" ),由頁面A送出http://titan.test.com.tw/B.php?A=10的時後,因為C.php的頁面不存在。使用者的瀏覽器的網址列就會停留在http://titan.test.com.tw/B.php?A=10,但是頁面內容卻是找不到頁面的資訊。下圖只是讓大家知道我所指的瀏覽器的網址列是什麼。變成A.php送什麼東西到B.php,只要C.php 不存在,就所有送過來的資訊都會被一覽無遺。
但是如果使用header("Refresh: 0; url=c.php"),使用者在瀏覽器的網址列就會停留在c.php,雖然內容頁也是找不到網頁。
至於如何運用就看個人了,因為我會找這個資訊是因為,我們公司要讓使用者丟資料到我們的公司的頁面,處理之後,要再丟到別的公司的頁面,之後別的公司在導回來我們的頁面。因為不想讓使用者直接看到別家公司丟到我們公司的資料,所以去查了這方面資訊。
留言列表