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 相关文章推荐
Windows下PHP的任意文件执行漏洞
Oct 09 PHP
PHP脚本的10个技巧(5)
Oct 09 PHP
PHP 身份证号验证函数
May 07 PHP
PHP 七大优势分析
Jun 23 PHP
PHP读取XML值的代码(推荐)
Jan 01 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
PHP获取文件的MD5值并判断是否被修改的例子
Jun 19 PHP
php提示Failed to write session data错误的解决方法
Dec 17 PHP
Yii2选项卡的简单使用
May 26 PHP
基于php中echo用逗号和用点号的区别详解
Jan 23 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 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 输出缓存详解
2009/06/20 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
如何在Django项目中引入静态文件
2019/07/26 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
鼓励运动员的广播稿
2014/02/08 职场文书
材料物理专业求职信
2014/09/01 职场文书
2014全年工作总结
2014/11/27 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python