我想将用户重定向到“提醒页面”,如果他们来到我的新网站 我的旧网站。 然而,只有一次。之后每隔一段时间他们就会不受阻碍地继续我的新网站。
这是我当前用于检测旧网站作为引用并重定向的代码:
<?php
if (false !== stripos($_SERVER['HTTP_REFERER'], "www.myoldsite.com")){
header ("Location: /alert.html");
}
?>
非常感谢您提出的任何指示。
答案 0 :(得分:2)
你的问题很奇怪,因为它包含答案!
您已经定义了代码的逻辑:如果用户来自特定网站(旧的)并且没有cookie,您希望显示消息并向用户添加cookie。
这是逻辑:
if (user referer url = "your old website" AND cookie_remember is null) then
add cookie "cookie_remember"
show a message (in that case, redirect to a specific page)
end if
对于您的代码,您刚刚错过了Cookie部分
if (false !== stripos($_SERVER['HTTP_REFERER'], "www.myoldsite.com") && !isset ($_CCOKIE['alerted']){
set_cookie('alerted', true);
header ("Location: /alert.html");
}
答案 1 :(得分:2)
这样就可以了。
$cond = isset($_SERVER['HTTP_REFERER'])
&& false !== stripos($_SERVER['HTTP_REFERER'], "www.myoldsite.com")
&& ( !isset($_COOKIE['alert_shown'])
|| ($_COOKIE['alert_shown']!=1)
);
if ($cond){
// set the cookie for 1 year.
setcookie('alert_shown', 1, time()+3600*24*365, '/', "www.mycurrentsite.com");
header ("Location: /showalert.html");
}
需要注意的要点。
isset
及其良好做法