PHP 登录完成跳转上一访问页面

发布时间:2019-11-11编辑:脚本学堂
如何实现php登录完成后,跳转到上一访问页面呢?这里做下详细介绍,有需要的朋友参考下。

需求描述: 
访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.php,怎么实现登录后返回到刚才访问的页面。

解决思路1:
在跳转到登录页面之前要将当前访问页面的url保存到cookie里面,登录验证授权通过后,从cookie中取出这个url值,跳转到该url指定的页面。

具体实现
基于thinkphp框架,会有一个父类控制器。
把这个设置cookie的代码加到这个BaseAction里面的_initialize()函数中。
代码:
 

复制代码 代码示例:
$refer = 'http://' . $_SERVER ['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
Cookie::set('refer', $refer);

登录检测的函数中加入:
 

复制代码 代码示例:
$refer = Cookie::get('refer');
 

现在这个$refer就是之前访问的页面,可以通过AJAX返回这个参数,然后进行跳转,或直接使用程序进行跳转。

解决思路2:
除了存成cookie的形式,很多大型网站直接采用GET的形式获得,Drupal的登陆机制就是这样。

实现思路:
在跳转到登录页面前,要将访客访问的页面的url作为参数传递过去,登录验证后,授予访问权限之后跳转到该url指定的页面。
比如登录前的url为:openphp.html 当访客访问时,点击无权限,跳转到登录页面的地址就为login.php?url=openphp.html,这样在登录时就可以用GET方式获取该参数 openphp.html,登录验证成功后跳转到openphp.html 这个页面就可以了。

关于php登录后跳转到上一页面的实现方法,就分享这二种方法,希望对大家有所帮助吧。