我们经常会碰到类似用户在没有登录的情况下进行提问、评论,需要用户登录后返回刚才浏览的网页,这种功能用cookie保存当前url地址来实现。我用的是jquery,读者需要懂点jquery中的ajax请求。这个场景的cookie名我用'__forward__',读者可以用自己需要的标识符。

1. 不下载cookie.js。用post请求将当前网页的ulr地址传到后台,让后台用cookie保存url地址;在完成类似登录的页面的功能后,从cookie中取出来,用于页面跳转。

1.1  html页面

//js部分
$('#ask').click(function(){
var href = window.location.href; //用于没有登录的用户在登录后返回。
$.post("<{:U('question')}>",{'url':href}, function(data){ //把当前页面的链接传递给后台
         alert('ok');
       }

1.2  PHP部分

cookie('__forward__', I('post.url'));  //我用的是ThinkPHP中自带的I()来获取post过来的url。读者可以用自己的方式获取传递到后台的url。
//下面是你做的业务功能,完成后可以在后台任何地方获取cookie中的url,并实现跳转。 //页面跳转
$url = cookie('__forward__');
cookie('__forward__', null); //注意:在取到cookie中的url后,将这个cookie删除。
$this->success('test', $url);  //这里我用的是ThinkPHP中的页面跳转方法

2.  使用cookie.js,在html中使用cookie保存当前的url地址。需要下载cookie.js插件,用法可以取百度。与上一种做法的区别是不用传递cookie到后台了,后台任何地方都可以使用cookie中保存的url来实现跳转回指定页面。

2.1  html部分

<script type="text/javascript" src="__PUBLIC__/js/jquery.cookie.js"></script>    <!-- 引入操作cookie的插件,路径是自己本地插件所在目录  -->

<script>
$('#ask').click(
var href = window.location.href;
$.cookie('__forward__', href);
$.get("<{:U('question'}>" , funciton(data){
alert('ok');
});
);
</script>

2.2  php部分

与第一种实现方式的php部分唯一区别是,不用在cookie中保存刚才指定页面的url,即省去前面用cookie保存url的部分,其余相同。

    如有错误,望指正。

在PHP中如何实现在做了么个操作后返回到指定页面的更多相关文章

  1. 解决:"不再sudoers文件中,此事将不做被报告”的问题

    使用sudo出现问题:不再sudoers文件中,此事将不做被报告 系统:win8.1 +cents 7 问题:在虚拟机中,默认不是root账号,在使用sudo命令时候收到下面警告: sudo命令含义: ...

  2. PMO在组织中实现价值应做的工作

    PMO在组织中实现价值应做的工作 研发人员及项目经理常常对PMO有反感情绪,认为其不熟悉业务流程与技术.经常要求项目经理和研发人员提交形式化的材料,只审批和监控,不能为项目提供良好的服务.在很多企业, ...

  3. 记录一下SparkStreaming中因为使用redis做数据验证而导致数据结果不对的问题

    业务背景: 需要通过redis判断当前用户是否是新用户.当出现新用户后,会将该用户放入到redis中,以标明该用户已不是新用户啦. 出现问题: 发现入库时,并没有新用户入库,但我看了数据了,确实应该是 ...

  4. API接口自动化之3 同一个war包中多个接口做自动化测试

    同一个war包中多个接口做自动化测试 一个接口用一个测试类,每个测试用例如下,比如下面是4个测试用例,每个详细的测试用例中含有请求入参,返回体校验,以此来判断每条测试用例是否通过 一个war包中,若含 ...

  5. UIButton中的**EdgeInsets是做什么用的?

    UIButton中的**EdgeInsets是做什么用的? UIEdgeInsetsMake Creates an edge inset for a button or view.An inset i ...

  6. C#中如何防止Excel做科学计算法转换

    C#中如何防止Excel做科学计算法转换  string style = @"<style>.text{mso-number-format:\@;}</style>& ...

  7. PHP中GD库是做什么用的? PHP GD库介绍11111111

    什么是gd库?    gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片. 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据 ...

  8. Python中实现对list做减法操作介绍

    Python中实现对list做减法操作介绍 这篇文章主要介绍了Python中实现对list做减法操作介绍,需要的朋友可以参考下 问题描述:假设我有这样两个list, 一个是list1,list1 = ...

  9. 技术分享 | 在GreatDB分布式部署模式中使用Chaos Mesh做混沌测试

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1. 需求背景与万里安全数据库软件GreatDB分布式部署模式介绍 1.1 需求背景 混沌测试是检测分布式系统不确定性.建 ...

随机推荐

  1. jdbc.properties各种数据库连接配置

    # HSQLDB  #jdbc.driverClassName=org.hsqldb.jdbcDriver #jdbc.url=jdbc:hsqldb:hsql://localhost:9001/bo ...

  2. SQLite一些函数用法

    --格林威治日期时间,比北京时间晚8小时 select datetime('now'); --格林威治日期 select date('now'); --本地时间 select time('now',' ...

  3. BZOJ 4517: [Sdoi2016]排列计数

    4517: [Sdoi2016]排列计数 Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 911  Solved: 566[Submit][Status ...

  4. Unicode 互转

    // 转为unicode 编码 function encodeUnicode(str) { var res = []; ; i<str.length; i++ ) { res[i] = ( ) ...

  5. [转] charles使用教程指南

    charles使用教程指南   0x01 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势 ...

  6. IOS判断设备是否已越狱

    转自:http://www.cnblogs.com/supercheng/archive/2012/12/05/2804166.html - (BOOL)isJailbroken { BOOL jai ...

  7. Observer,Observable实现观察者模式

    (#)个人对于观察者的理解:观察者与发布订阅模式是非常的相似的,例如当多个威信使用者订阅了同一个主题之后,那么这个主题就是一个被观察者,而这些用户就是观察 者,当这个主题更新了新的内容以后,就要通知所 ...

  8. 12 个CSS 高级技巧汇总[转载]

    使用 :not() 在菜单上应用/取消应用边框 给body添加行高 所有一切都垂直居中 逗号分隔的列表 使用负的 nth-child 选择项目 对图标使用SVG 优化显示文本 对纯CSS滑块使用 ma ...

  9. 6.1-CALayer 使用

    @设置圆角 注意点 1圆角效果,并不是在给定frame布局后有,要给定内容后才有 //头像 NSData *data = [[DJXMPPTool sharedInstance].cardAvatar ...

  10. Linux 的文本处理命令一览

    grep 基于关键字搜索文本内容 -i 搜索时忽略大小写-n 显示结果所在行数-v 输出不带关键字的行-Ax 在输出的时候包含结果所在行之后的指定行数(x为一个数值,表示输出后面x行)-Bx 在输出的 ...