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


Posted in PHP onJanuary 14, 2014

项目需求
 
访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面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 相关文章推荐
php的一些小问题
Jul 03 PHP
php URL验证正则表达式
Jul 19 PHP
PHP内核探索:变量存储与类型使用说明
Jan 30 PHP
php通过session防url攻击方法
Dec 10 PHP
浅谈php错误提示及查错方法
Jul 14 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
CodeIgniter 完美解决URL含有中文字符串
May 13 PHP
PHP微信支付开发实例
Jun 22 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
PHP实现用户登录的案例代码
May 10 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
PHP四舍五入精确小数位及取整
Jan 14 #PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
Jan 14 #PHP
php的一个简单加密解密代码
Jan 14 #PHP
PHP随机生成随机个数的字母组合示例
Jan 14 #PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 #PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 #PHP
memcache命令启动参数中文解释
Jan 13 #PHP
You might like
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
ThinkPHP模板自定义标签使用方法
2014/06/26 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
Laravel下生成验证码的类
2017/11/15 PHP
JavaScript 的继承
2011/10/01 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
element-ui 实现响应式导航栏的示例代码
2020/05/08 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
Python中encode()方法的使用简介
2015/05/18 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
python数组过滤实现方法
2015/07/27 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
Python IDLE清空窗口的实例
2018/06/25 Python
Python3 max()函数基础用法
2019/02/19 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
详解Python中的文件操作
2021/01/14 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
水利公司纪检监察自我鉴定
2014/02/25 职场文书
干部下基层实施方案
2014/03/14 职场文书
《穷人》教学反思
2014/04/08 职场文书
教师个人教学总结
2015/02/11 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
SQL之各种join小结详细讲解
2021/08/04 MySQL
Python数据结构之队列详解
2022/03/21 Python
Golang 入门 之url 包
2022/05/04 Golang