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+dbfile开发小型留言本
Oct 09 PHP
PHP如何得到当前页和上一页的地址?
Nov 27 PHP
php获取网页请求状态程序示例
Jun 17 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
php去除头尾空格的2种方法
Mar 16 PHP
php实现面包屑导航例子分享
Dec 19 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
PHP实现本地图片转base64格式并上传
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中利用XML技术构造远程服务(下)
2006/10/09 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
JavaScript 学习初步 入门教程
2010/03/25 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
jQuery事件详解
2017/02/23 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
[48:41]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
Python模块学习 datetime介绍
2012/08/27 Python
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
高中生第一学年自我鉴定
2014/09/12 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle