在很多網站用戶先訪問一個要登錄的頁面,但當時沒有登錄後來登錄了,等待用戶登錄成功之後肯定希望返回到上次訪問的頁面,下面我就來給大家介紹登錄後跳轉回原來要訪問的頁面實例
最簡單的辦法就是直接使用php $_SERVER['HTTP_REFERER']
如果我在A.php頁面要登錄
現在跳到B.php頁面,我們只要在b.php中加如下代碼
$url = $_SERVER['HTTP_REFERER'];
header("location:$url");
但是上面的辦法會有很多不足,如帶參數等等,但在IE浏覽器下的話,假如你是通過js的location來跳轉的話,那這個值是獲取不到的。
下面我做一個全面點的。
首先創建一個方法判斷是否登錄,如果沒登錄則
protected function checkLogin() {
if (沒有登錄){
$thisurl = "http://".$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF'];//當前URL
$thisurl = urlencode($thisurl);//這裡要注意需要把獲取到的url轉碼,不然後面不好傳遞URL
redirect("http://".$_SERVER["HTTP_HOST"]."/cityosweb/default.php/Index/login?url=".$thisurl);
}
}
然後在需要登錄的才能反問的頁面調用這個方法:
代碼如下 復制代碼$this->checkLogin();
這樣如果你沒有登錄則跳轉到登錄頁面。並帶上了你之前頁面的url:
然後獲取URL提交登錄:
public function login() {
$url = $_GET['url'];
$this->assign('url',$url);
$this->assign('title','Login');
$this->display('user/reg_new.html');
}
模板上獲取到url後提交到php後台,登錄後跳轉到這個url ok搞定