2016-11-15 66 views
2

使用它這是我每一個表格後,使用回到以前的頁面在多頁表格的內容:

$url = htmlspecialchars($_SERVER['HTTP_REFERER']); 
echo "<a href='$url'>GO BACK</a>"; 

但我不確定它是否能正常工作。有沒有更好的方法回到上一頁。我不想使用標題(location:),也許是多次提交,即一個提交表單,另一個提交。但我不確定如何正確實施它。

+4

[返回上一頁帶標題(「Location:」);在PHP中](http://stackoverflow.com/questions/5285031/back-to-previous-page-with-header-location-in-php) –

回答

2

正如它是在documentation說,不是所有的用戶代理設置引薦:

「HTTP_REFERER」

頁面的地址(如果有的話),其被稱爲用戶代理到當前頁。這由用戶代理設置。並非所有的用戶代理都會設置它,有些提供了將HTTP_REFERER修改爲功能的功能。總之,它不能真正被信任。

換句話說,$_SERVER['HTTP_REFERER']可能是空的。

我寧願使用JavaScript:

<a href="javascript:history.go(-1)">Back</a> 

有時可以通過應用程序的邏輯來確定前一頁。例如,如果頁面「步驟2」在頁面「步驟1」之後,那麼我將根據邏輯:/registration/step1,/registration/step2等生成URL。這是最可靠的方式。

+0

history.go()將根據瀏覽器的歷史記錄是否正確?如果用戶同時訪問多個站點,那麼? – Shady7447

+1

@ Shady7447,對。然後它將作爲瀏覽器的「後退」按鈕。這就是爲什麼你應該根據你的應用程序的邏輯生成鏈接 –