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中的 == 运算符进行字符串比较
Nov 26 PHP
php绝对路径与相对路径之间关系的的分析
Mar 03 PHP
php通用防注入程序 推荐
Feb 26 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
有关phpmailer的详细介绍及使用方法
Jan 28 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
PHP memcache在微信公众平台的应用方法示例
Sep 13 PHP
php微信开发之图片回复功能
Jun 14 PHP
laravel5.5添加echarts实现画图功能的方法
Oct 09 PHP
PHP实现微信提现功能(微信商城)
Nov 21 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用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
jQuery客户端分页实例代码
2013/11/18 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
js实现双色球效果
2020/08/02 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
python取余运算符知识点详解
2019/06/27 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
2014年街道办事处工作总结
2014/12/11 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
jquery插件实现代码雨特效
2021/04/24 jQuery
Ajax实现异步加载数据
2021/11/17 Javascript
Java实现带图形界面的聊天程序
2022/06/10 Java/Android
nginx之内存池的实现
2022/06/28 Servers