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的FTP学习(二)[转自奥索]
Oct 09 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
php输出xml格式字符串(用的这个)
Jul 12 PHP
解析argc argv在php中的应用
Jun 24 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
PHP实现货币换算的方法
Nov 29 PHP
php常见的魔术方法详解
Dec 25 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
Apr 15 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
PHP配置ZendOpcache插件加速
Feb 14 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 文件上传类代码
2011/08/06 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
百度地图API使用方法详解
2015/08/25 PHP
PHP实现简易blog的制作
2016/10/24 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
webpack打包js的方法
2018/03/12 Javascript
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[59:48]LGD vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
儿童学习python的一些小技巧
2018/05/27 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
把pandas转换int型为str型的方法
2019/01/29 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
卫校毕业生自我鉴定
2013/10/31 职场文书
小学新教师培训方案
2014/02/03 职场文书
保险专业自荐信范文
2014/02/20 职场文书
校本教研活动总结
2014/07/01 职场文书
Vue h函数的使用详解
2022/02/18 Vue.js
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android