文档章节

跳转到另一个网站之后,如何跳转回原来的站点并保留原来的信息

SunwardTree
 SunwardTree
发布于 2017/04/25 11:08
字数 709
阅读 20
收藏 0
点赞 0
评论 0

环境

百度云应用、原生PHP、ThinkPHP

步骤

1、维护一个不能再维护的老网站,比较实际的方法是“新功能另起炉灶,搭建新网站,让它们看起来像是同一个网站”。然而随之带来的问题是,新老网站的切换。我正在添加功能的一个老网站每个页面都设置了以SESSION的某些值为标记的登陆检查,用URL方式反链接回去,所有之前的信息全部丢失,由此开始想解决办法。

2、解决办法

      2.1、将用户信息SESSION的项以POST的形式传输给新网站,这种方法理论上是可行的,然而实际上面临两个问题:首先,老网站是否允许向外部POST(我的就卡在这里了,老网站的ThinkPHP框架不允许);其次,只能保证最主要的下次继续登陆,不能实现其他访问信息的恢复;

      2.2、利用COOKIS保留的浏览信息,使用JS实现回退。这样一则可以保留大部分浏览信息,二则简便易行,具体实现方法在下一部分介绍。

3、实现方法

3.1、记录访问的深度

      从老站访问到新站以后,需要记录在新站访问的深度,方便JS回退。我这里就用PHP新建了一个SESSION变量,每新访问新站的一个页面,自动加一。

3.2、防止刷新

      刷新不改变深度,却有可能改变记录深度的值,因此,我们需要防止因刷新改变的深度。这里我用的办法是,不同新站不同页面切换赋予SESSION变量一个不同的值,并用另一个SESSION变量保留其旧值,只有在两个值不同时才增加记录深度。

3.3、防止只打开新站

      由于新站也是一个独立的网站,可以单独访问,因此需要确定新站是否由老站打开,如果是再开始计数,否则,不设置SESSION变量,这里就需要用到PHP的获取前一个URL的功能。

if(strstr($_SERVER['HTTP_REFERER'],"oldwebsite")){
	$_SESSION['count'] = 1;
}

这里仅提醒需要注意的地方,具体判断逻辑根据需要会有不同。

3.4、JS回退到老站

      这里用到的方法是绑定按钮和JS函数,当点击按钮时,调用系统回退函数,回退到指定深度的页面。

<script>
$(function() {
    $("#backold").click(function(){
        window.history.go(-count);//count记录深度
    });
});
</script>
<ul class="nav navbar-nav">
	<li><button id="backold">返回老站</button></li>
</ul>

到这里,就大功告成了。

© 著作权归作者所有

共有 人打赏支持
SunwardTree
粉丝 1
博文 10
码字总数 6625
作品 0
武汉
程序员
301重定向设置

昨天发现网站的百度快照中,带www.的首页竟然没有,而不带www.的首页却有收录,而且排名还在第2页。原来我是绑定了2个域名,一个是 www..com。另一个是.com。为什么.com有快照,而且排名不错...

红薯没我帅 ⋅ 2012/03/02 ⋅ 0

多个不同域名共用一个QQ登录实例教程

简介 本篇教程不仅仅是qq登录教程,关键问题还有解决一个多域名共用一个qq登录问题。 网站做大了,很多网站开始给用户提供一个二级域名的主页。或者自己本身就有很多二级域名子站。而腾讯申请...

星空幻颖 ⋅ 2017/11/29 ⋅ 0

jFinal validator的handleError()方法如何保留用户已输入的表单信息

在handleError()方法中跳转到原表单页面后如何保留用户已经输入的信息,已经加了keepPara()方法,可是跳转回表单页面后,表单中还是空的,什么都没有。看jFinal手册中说,使用keepPara()方法...

当风 ⋅ 2014/06/07 ⋅ 2

Flask: SSO原理及实现

现在大多数软件公司的业务不再是单条线,而是发展成多元化的产品线。包括多个网站应用、移动APP以及桌面软件,那么当然希望能实现统一用户和统一登录。统一用户基本都已实现,然而统一登录却...

陈亦 ⋅ 2014/02/15 ⋅ 25

探秘 widget 之 launcher 添加 widget 的流程分析

最近打算研究下android的widget相关问题,并把一些心得在此稍作记录,哈哈,等研究完成了,如果有必要的话,也会把改动的源码贴出来,以飨读者。今天先来看看launcher2中添加widget的流程。 ...

鉴客 ⋅ 2011/09/25 ⋅ 1

php页面跳转

一 PHP用户登录后跳转回上一访问页面的实现思路及代码 项目需求 访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.php,怎么实现登录后返回到刚才访...

christina_12345 ⋅ 2014/03/16 ⋅ 0

吉趣管理端-第一次上手代码

前天,吉软国际,马老师花了2个小时给我们讲述了一下开发管理端,和移动端的区别。 然后我便着手安装环境,准备开发。 昨天花了3个小时用2倍速看完了慕课网上的《JavaEE》课程 然后今天一整天...

大海画家 ⋅ 2017/09/05 ⋅ 0

Iframe跳转问题

Iframe 点击超链接跳转到另一个页面并且让跳转的页面在规定的iframe框架中显示 <!--添加一个iframe,然后给iframe定义一个name,在连接的target上填写这个name就可以了,具体代码如下:--> <...

yeahlife ⋅ 2015/11/18 ⋅ 0

Web术语—request、forward、redirect、error、GET、POST、U...

1.浏览器的刷新与转到的区别 2.Web环境下request、forward、redirect、error之间的关联与区别 3.Web环境下请求方式GET与POST的区别 4.URL与URI的区别 关于HTTP请求流程参见下面的URL地址: ...

回忆在昨天 ⋅ 2012/10/12 ⋅ 0

酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)

最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地址和页面返回地址,相信做过这类接口的朋友应该猜到 最近手头在开发一个游戏官网,在支付...

thinkyoung ⋅ 2015/11/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

LVM

LVM: 硬盘划分分区成物理卷->物理卷组成卷组->卷组划分逻辑分区。 1.磁盘分区: fdisk /dev/sdb 划分几个主分区 输入t更改每个分区类型为8e(LVM) 使用partprobe生成分区的文件:如/dev/sd...

ZHENG-JY ⋅ 39分钟前 ⋅ 0

彻底删除Microsoft Office的方法

参照此链接彻底删除Office https://support.office.com/zh-cn/article/%e4%bb%8e-pc-%e5%8d%b8%e8%bd%bd-office-9dd49b83-264a-477a-8fcc-2fdf5dbf61d8?ui=zh-CN&rs=zh-CN&ad=CN......

Kampfer ⋅ 54分钟前 ⋅ 0

大盘与个股之间关系

大盘走多:积极出手 顺势加码 大盘走空: 少量出手 退场观望 大盘做头:逆势减码 少量操作 大盘做底 : 小量建仓 小量试单

guozenhua ⋅ 56分钟前 ⋅ 0

Day16 LVM(逻辑卷管理)与磁盘故障小案例

lvm详解 简述 LVM的产生是因为传统的分区一旦分区好后就无法在线扩充空间,也存在一些工具能实现在线扩充空间但是还是会面临数据损坏的风险;传统的分区当分区空间不足时,一般的解决办法是再...

杉下 ⋅ 今天 ⋅ 0

rsync实现多台linux服务器的文件同步

一、首先安装rsync,怎样安装都行,rpm,yum,还是你用源码安装都可以。因为我用的是阿里云的ESC,yum install rsync就ok了。 二、配置rsync服务 1.先建立个同步数据的帐号 123 groupadd r...

在下头真的很硬 ⋅ 今天 ⋅ 0

前端基础(三):函数

字数:1685 阅读时间:5分钟 函数定义 在最新的ES规范中,声明函数有4中方法: -函数声明 -函数表达式 -构造函数Function -生成器函数 1.函数声明 语法: function name([param[, param2 [....

老司机带你撸代码 ⋅ 今天 ⋅ 0

Java虚拟机的Heap监狱

在Java虚拟机中,我是一个位高权重的大管家,他们都很怕我,尤其是那些Java 对象,我把他们圈到一个叫做Heap的“监狱”里,严格管理,生杀大权尽在掌握。 中国人把Stack翻译成“栈”,把Hea...

java高级架构牛人 ⋅ 今天 ⋅ 0

Spring MVC基本概念

只写Controller

颖伙虫 ⋅ 今天 ⋅ 0

微软重金收购GitHub的背后逻辑原来是这样的

全球最大的开发者社区GitHub网站花落谁家的问题已经敲定,微软最终以75亿美元迎娶了这位在外界看来无比“神秘”的小家碧玉。尽管此事已过去一些时日,但整个开发者世界,包括全球各地的开源社...

linux-tao ⋅ 今天 ⋅ 0

磁盘管理—逻辑卷lvm

4.10-4.12 lvm 操作流程: 磁盘分区-->创建物理卷-->划分为卷组-->划分成逻辑卷-->格式化、挂载-->扩容。 磁盘分区 注: 创建分区时需要更改其文件类型为lvm(代码8e) 分区 3 已设置为 Linu...

弓正 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部