【发布时间】:2020-06-09 16:13:25
【问题描述】:
我的页面有 4 个链接,当有人单击其中一个链接时,我想设置一个 cookie 来存储所选链接,然后当他们返回该站点时,cookie 会将他们重定向到他们之前选择的链接。由于我只希望 4 个链接设置 cookie,因此我在链接中使用查询字符串 (?sel=p1) 并检查它以设置 cookie。
function set_pref_cookie(){
if (isset($_GET['sel'])) {
$root = $_GET['sel'];
if ($root = 'p1'){
$cookie_var = '/page1/';
} else if ($root = 'p2'){
$cookie_var = '/page2/';
} else if ($root = 'p3'){
$cookie_var = '/page3/';
} else if ($root = 'p4'){
$cookie_var = '/page4/';
}
} else {
$root = '';
}
if ($root !=''){
setcookie('pref_sel',$_COOKIE['sel'] = $cookie_var, time()+60*60*24*5, "/");
}
if (isset($_COOKIE['pref_sel']) && $_COOKIE['pref_sel'] != ''){
header('Location:' . $_COOKIE['pref_sel']);
exit;
}
}
add_action('init','set_pref_cookie');
问题是,所有 4 个链接在 cookie /page1/ 中设置了相同的值
,并且,在返回站点时,我得到了一个重定向循环。
我也试过检查空 cookie
if (isset($_COOKIE['pref_sel']) && !empty($_COOKIE['pref_sel']) ){
但结果相同。
【问题讨论】:
-
if (isset($_COOKIE['pref_sel']) && $_COOKIE['pref_sel'] != $root){ header('Location:' . $_COOKIE['pref_sel']);出口; }
-
谢谢,但我试过了,问题仍然存在。 $cookie_var 设置为 /page-1/ 无论点击什么链接,回家还是有重定向问题。
-
是的,因为您设置的 cookie 只有一个等号(情感)而不是 2 个等号 ==(比较)