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 相关文章推荐
用session做客户验证时的注意事项
Oct 09 PHP
php 前一天或后一天的日期
Jun 28 PHP
PHP 文件类型判断代码
Mar 13 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 PHP
php array_walk() 数组函数
Jul 12 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
本地计算机无法启动Apache故障处理
Aug 08 PHP
基于thinkPHP框架实现留言板的方法
Oct 17 PHP
php die()与exit()的区别实例详解
Dec 03 PHP
php json中文编码为null的解决办法
Dec 14 PHP
laravel自定义分页效果
Jul 23 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 mcrypt可逆加密算法分析
2011/07/19 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
Web层改进II-用xmlhttp 无声息提交复杂表单
2007/01/22 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
微信小程序如何获取用户手机号
2018/01/26 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
Python自定义简单图轴简单实例
2018/01/08 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
基于python实现名片管理系统
2018/11/30 Python
java判断三位数的实例讲解
2019/06/10 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
消防安全责任书范本
2014/04/15 职场文书
论文诚信承诺书
2014/05/23 职场文书
司机岗位职责说明书
2014/07/29 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
社区文艺活动方案
2014/08/19 职场文书
如何撰写促销方案?
2019/07/05 职场文书
python如何获取网络数据
2021/04/11 Python
利用python做数据拟合详情
2021/11/17 Python
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python