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 19 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 PHP
php下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
浅析php创建者模式
Nov 25 PHP
避免Smarty与CSS语法冲突的方法
Mar 02 PHP
php bootstrap实现简单登录
Mar 08 PHP
php版微信发红包接口用法示例
Sep 23 PHP
Laravel日志用法详解
Oct 09 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
PHP生成加减算法方式的验证码实例
Mar 12 PHP
laravel接管Dingo-api和默认的错误处理方式
Oct 25 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 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
php提交post数组参数实例分析
2015/12/17 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
PHP的PDO连接讲解
2019/01/24 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
PyCharm第一次安装及使用教程
2020/01/08 Python
HTML5的革新 结构之美
2011/06/20 HTML / CSS
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
教学器材管理制度
2014/01/26 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
放假通知范文
2015/04/14 职场文书
护士旷工检讨书
2015/08/15 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python