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

2015-01-24信息快讯网

访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.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中使用CURL模拟登录并获取数据实例
PHP登录环节防止sql注入的方法浅析
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
php采用curl访问域名返回405 method not allowed提示的解决方法
ThinkPHP页面跳转success与error方法概述
Zend Framework页面缓存实例
PHP获取windows登录用户名的方法
destoon整合ucenter后注册页面不跳转的解决方法
destoon之一键登录设置
ThinkPHP访问不存在的模块跳转到404页面的方法
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Codeigniter实现处理用户登录验证后的URL跳转
教你如何快捷的使用cmd访问mysql小技巧
php判断电脑访问、手机访问的例子
PHP mail()函数使用及配置方法
PHP四舍五入精确小数位及取整
php环境下利用session防止页面重复刷新的具体实现
php检测用户是否用手机(Mobile)访问网站的类
微信扫描二维码登录网站代码示例
discuz免激活同步登入代码修改方法(discuz同步登录)
php获取301跳转URL简单实例
Server.HTMLEncode让代码在页面里显示为源代码
php查找任何页面上的所有链接的方法
php编写的简单页面跳转功能实现代码
php页面防重复提交方法总结
php用header函数实现301跳转代码实例
PHP CURL获取cookies模拟登录的方法
php使用curl模拟登录后采集页面的例子
php网站判断用户是否是手机访问的方法
PHP禁止个别IP访问网站
单点登录 Ucenter示例分析
PHP利用REFERER根居访问来地址进行页面跳转
PHP实现根据浏览器跳转不同语言页面代码
PHP 关于访问控制的和运算符优先级介绍
©2014-2024 dbsqp.com