如果页面被访问超过5次,将访问者重定向到不同的URL?

时间:2012-12-24 03:18:32

标签: php session redirect cookies

我正在尝试重定向用户,如果他们访问页面的次数超过5次。 所以基本的想法是,如果用户没有登录我的网站并且他们正在浏览用户个人资料(profile.php),那么这会计算cookie会话的点击次数并重定向到页面以表示注册或其他内容

我是php的新手,不知道从哪里开始。有人可以告诉我。

3 个答案:

答案 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”的域名运行时运行,或者没有它。

告诉我它是否有效......我总是可以修改它。