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 25 PHP
php防盗链的常用方法小结
Jul 02 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
PHP 之Section与Cookie使用总结
Sep 14 PHP
php中导出数据到excel时数字变为科学计数的解决方法
Feb 03 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
PHP中isset与array_key_exists的区别实例分析
Jun 02 PHP
基于PHP实现数据分页显示功能
May 26 PHP
Laravel如何友好的修改.env配置文件详解
Jun 07 PHP
php利用array_search与array_column实现二维数组查找
Jul 08 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 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 url地址栏传中文乱码解决方法集合
2010/06/25 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
php给图片加文字水印
2015/07/31 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
js parsefloat parseint 转换函数
2010/01/21 Javascript
仿微博字符限制效果实现代码
2012/04/20 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
Vue官网todoMVC示例代码
2018/01/29 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python编码时应该注意的几个情况
2013/03/04 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
职业生涯规划书的格式
2013/12/29 职场文书
入党思想汇报
2014/01/05 职场文书
闭幕式主持词
2014/04/02 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
大学生自荐信范文
2015/03/05 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书