我们经常会碰到类似用户在没有登录的情况下进行提问、评论,需要用户登录后返回刚才浏览的网页,这种功能用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. js设计模式总结-策略模式

    策略模式 要解决的问题 当解决一个问题有多种方法时,选择使用哪种方法时就少不了要用大量的if语句进行判断,如果将这些方法的实现和判断语句放在一起实现就会产生问题, 比如增加一种的新的方法时,就不得不再 ...

  2. 流媒体测试笔记记录之————阿里云监控、OBS、FFmpeg拉流和推流变化比较记录

    OBS设置视频(512kbps)和音频(128kbps)比特率 阿里云监控结果: 使用FFmpeg拉流到Nginx 服务器测试比特率 第二次测试,修改视频和音频比特率 OBS设置 阿里云监控 Ngin ...

  3. iOS 消息推送报错NSCocoaErrorDomain Code=3000

    转自: http://www.cnblogs.com/zxykit/p/5207498.html Xcode7推送报错.Error Domain=NSCocoaErrorDomain Code=300 ...

  4. pycharm快捷键、常用设置、包管理

    pycharm快捷键.常用设置.包管理 在PyCharm安装目录 /opt/pycharm-3.4.1/help目录下可以找到ReferenceCard.pdf快捷键英文版说明 or 打开pychar ...

  5. jieba分词

    一.安装 pip 安装 或者 先下载http://pypi.python.org/pypi/jieba/ ,解压后运行python setup.py install 二.功能 1.分词 2.添加自定义 ...

  6. java Collections.sort()实现List排序自定义方法

    方法一: package testSimple; import java.util.ArrayList; import java.util.Collections; import java.util. ...

  7. 老王讲自制RPC框架.(四.序列化与反序列化)

    #(序列化) 在实际的框架中,真正影响效率的就是数据的传输方式,以及传输的准备,或者说是tcp与http,序列化.当然要想提高整个框架的效率,需要采用一种高效的序列化 框架比如流行的protostuf ...

  8. Android开发之Git配置

    Android开发之Git配置 1.首先git配置: 输入命令: git config --global user.name "xxx.xx" git config --globa ...

  9. IE下,js改变绝对定位的属性不生效

    如果想要动态改变定位位置的值,例如改变TOP的值,IE下必须要给TOP一个初始值,不然不生效..

  10. Numpy Study 1

    Numpy 使用1 1.Numpy创建数组 import numpy as np 创建数组有以下方式: (1).arange numpy.arange([start, ]stop, [step, ]d ...