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

环境

百度云应用、原生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>

到这里,就大功告成了。

转载于:https://my.oschina.net/u/2996336/blog/886592

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值