在很多网站用户先访问一个要登录的页面,但当时没有登录后来登录了,等待用户登录成功之后肯定希望返回到上次访问的页面,下面我就来给大家介绍登录后跳转回原来要访问的页面实例,最简单的办法就是直接使用 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);
- 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搞定.. |