为了账号安全,请及时绑定邮箱和手机立即绑定

我如何设置跟踪 cookie,以便将回访者定向到他们在首次访问时选择的页面?

我如何设置跟踪 cookie,以便将回访者定向到他们在首次访问时选择的页面?

PHP
白衣染霜花 2023-04-15 17:31:11
我的主页有 4 个链接到不同的子页面(page-1、page-2 等),当访问者选择一个页面(即 /page-1/)时,我希望他们被直接路由到他们的那个页面回访网站。我正在尝试使用 cookie 来存储所选页面并在返回时检查 cookie 以重定向到先前选择的 URL。function set_pref_cookie(){    $root = $_SERVER['REQUEST_URI'];    if ($root !='/'){        setcookie('pref_sel',$root, time()+60*60*24*5, "/");    }    if (isset($_COOKIE['pref_sel'])){        header('Location:' .  $_COOKIE['pref_sel']);        exit;    }}add_action('init','set_pref_cookie');这适用于设置 cookie,但在返回站点时,我遇到了一个重定向循环。
查看完整描述

1 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

你有一个重定向循环原因:

  • 我导航到第 1 页

  • 你把 cookie 放到 page-1

  • 你将我重定向到第 1 页

  • 你把 cookie 放到 page-1

  • 你将我重定向到第 1 页

  • 等等 ..

在重定向之前,只需检查我是否已经在正确的页面上 :)

只是改变这个:

if (isset($_COOKIE['pref_sel'])){ 
       header('Location:' .  $_COOKIE['pref_sel']); 
              exit;
    }

对此:

if (isset($_COOKIE['pref_sel']) && $_COOKIE['pref_sel'] != $root){  
      header('Location:' .  $_COOKIE['pref_sel']);    
          exit;
    }

并且它不会在无限循环中重定向


查看完整回答
反对 回复 2023-04-15
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信