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 Document 代码注释规范
Apr 13 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 PHP
网页上facebook分享功能具体实现
Jan 26 PHP
最常用的8款PHP调试工具
Jul 06 PHP
php查看网页源代码的方法
Mar 13 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 PHP
CI框架附属类用法分析
Dec 26 PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 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做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
python使用wxpython开发简单记事本的方法
2015/05/20 Python
python复制文件的方法实例详解
2015/05/22 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
便利店促销方案
2014/02/20 职场文书
新员工入职欢迎词
2015/01/23 职场文书
初中政治教学工作总结
2015/08/13 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python