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.MVC的模板标签系统(三)
Sep 05 PHP
php执行sql语句的写法
Mar 10 PHP
PHP 基于文件头的文件类型验证类函数
May 01 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
什么情况下可以不写PHP的闭合标签“?>”
Aug 28 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
PHP读取Excel类文件
2017/05/15 PHP
php curl发送请求实例方法
2019/08/01 PHP
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
深入分析JavaScript 事件循环(Event Loop)
2020/06/19 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
Django多数据库的实现过程详解
2019/08/01 Python
python同步windows和linux文件
2019/08/29 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
日语专业毕业生自荐书
2014/06/18 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
消防演习感想
2015/08/10 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL