我正在尝试重定向用户,如果他们访问页面的次数超过5次。 所以基本的想法是,如果用户没有登录我的网站并且他们正在浏览用户个人资料(profile.php),那么这会计算cookie会话的点击次数并重定向到页面以表示注册或其他内容
我是php的新手,不知道从哪里开始。有人可以告诉我。
答案 0 :(得分:2)
基本上,您应该能够在服务器端或cookie中的会话变量中设置计数器。
每次访问个人资料页面时都会增加该计数器。如果该计数器大于5
,则使用php header
函数将用户重定向到您的注册页面。这里有一个快速代码提示,您可以使用会话变量来实现此目的:
if(! isset($_SESSION["ProfileVisitCount"])){
$_SESSION["ProfileVisitCount"] = 1;
}
$_SESSION["ProfileVisitCount"]++;
if($_SESSION["ProfileVisitCount"] > 5){
header("Location: http://domain.com/signup");
exit();
}
还要确保使用session_start()
启动这些代码之前的php会话。
使用这样的cookie可以实现同样的目的:
if(! isset($_COOKIE["ProfileVisitCount"])){
setcookie("ProfileVisitCount", "1", time()+3600);
}
if($_COOKIE["ProfileVisitCount"] > 5){
header("Location: http://domain.com/signup");
exit();
}
else {
setcookie("ProfileVisitCount", ($_COOKIE["ProfileVisitCount"] + 1), time()+3600);
}
答案 1 :(得分:2)
这在PHP中很容易实现。只需设置一个带有计数值的会话,并在每次访问后读取它。然后,如果计数为5或更多,则可以重定向。以下是示例代码
!session_id() ? session_start() : null; if(!isset($_SESSION['page_access_count'])){ $_SESSION['page_access_count'] = 1; }elseif($_SESSION['page_access_count'] >= 5){ // redirect to signup page header('Location:/signup.php'); exit; } // increase the page access session value $_SESSION['page_access_count']++; ...
答案 2 :(得分:0)
使用cookies。这是我在PHP中的表现:
<?php
if (!isset($_COOKIE["cookie1"]))
{
setcookie(
"cookie1",
"1",
time() + (20 * 365 * 24 * 60 * 60),
'/',
'.example.com'
);
}
else{
setcookie(
"cookie2",
"2",
time() + (20 * 365 * 24 * 60 * 60),
'/',
'.example.com'
);
else{
setcookie(
"cookie3",
"3",
time() + (20 * 365 * 24 * 60 * 60),
'/',
'.example.com'
);
}
else{
setcookie(
"cookie4",
"4",
time() + (20 * 365 * 24 * 60 * 60),
'/',
'.example.com'
);
}
else{
setcookie(
"cookie5",
"5",
time() + (20 * 365 * 24 * 60 * 60),
'/',
'.example.com'
);
}
else
{
header("Location: http://domain.com/signup");
}
}
?>
请务必将.example.com替换为您的域名。并保持“。”而不是“www。”如果您希望它在使用带有“www”的域名运行时运行,或者没有它。
告诉我它是否有效......我总是可以修改它。