thinkphp實現登錄後返回原界面

我們通常會在項目裏定義一個登錄控制器和登錄界面用於用戶的登錄,可是通常我們在方法裏會指定一個登錄成功或失敗返回的界面,通常失敗返回登錄界面重新登錄,成功則跳到首頁。

那麼現在問題來了,如果用戶一開始沒有登錄,而是觀看了系統中的頁面,在實現某一功能的時候,比如評論,這個時候就需要登錄了,一般是跳到登錄頁面進行登錄,而登錄成功後又得重新來找到登錄之前的界面,下面介紹一種實現登錄後跳到原來界面的方法,以供參考。

在跳轉時,跳轉到定義的session中的地址。
先保存請求login方法界面的url
public function savelogin(){
    session('returnUrl',$_SERVER['HTTP_REFERER']);
}
在登錄方法最後跳轉時控制
if($returnUrl = session('returnUrl')) {
            session('returnUrl',null);
            $this->success('登錄成功',$returnUrl,0);
        }else{
            $this->success('登錄成功',U("Home/Index/index"),0);
        }
        }
   else if($returnUrl = session('returnUrl')){
        session('returnUrl',null);
            $this->error('登錄失敗(用戶名或密碼錯誤)',$returnUrl,0);
   }
    else{ $this->success('登錄失敗',U("Home/Login/index"),0);}
}
退出時也一樣
public function logout(){
    $returnUrl=$_SERVER['HTTP_REFERER'];
    session(null);
    $this->success('退出成功',$returnUrl,1);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章