0

我的视频网站的视频广告点击率非常高。所以我正在为我的 php 网站创建一个附属程序插件。

要检查我的视频广告是否被点击,我需要检查 cookie 是否存在。所以我
写了一个 php 脚本,它基本上检查循环中是否存在 cookie。

我知道用户可以随时点击视频广告,所以我认为使用循环是个好主意。事实证明,如果我打开了循环,则在满足循环条件之前,不会加载页面的其余部分。所以我想象每分钟左右完成一次检查,但我不知道该怎么做。无论如何我认为我已经说得够多了。下面是我写的php代码。

$cookie1= $_COOKIE['PBCBD2A0PBP3D31B'];
$cookie2= $_COOKIE['PBC0622FPBP3D31B'];
$cookie3= $_COOKIE['PBC669C9PBP3D31B'];
$count= "1";
while ($count >0 )
{
if (isset($cookie1) || isset($cookie2) || isset($cookie3))
    {$count= "0"; echo "You clicked on an AD";} else{$count= "1";}
}
4

5 回答 5

3

使用 javascript onclick 事件运行 AJAX 调用来检查 cookie 的存在。

于 2012-07-26T17:51:09.567 回答
2

这是 PHP 与 JavaScript 的基本问题。

如果您想使用 PHP 每分钟检查一次 cookie,则必须每分钟刷新一次页面。由于多种原因,这显然是非常不经济的,其中至少是您正在使用服务器端代码检查客户端的某些内容 - 通过每分钟强制刷新页面,不少于。

根据您对您想要做什么的描述,我建议使用 JavaScript 来检查 cookie(链接中的页面显示了如何制作和检查测试 cookie;根据您的需要进行修改)并使用setInterval().

于 2012-07-26T17:54:25.270 回答
1

我同意马特的观点。您最好仅在 cookie 可能更改的情况下(当他们点击视频时)检测 cookie。但是,这取决于具体情况。您是在设置 cookie,还是在外部网站点击广告时设置了 cookie?

编辑:

你的两个目标似乎是:

  1. 根据附加到用户的 cookie 确定要投放的广告。
  2. 记录哪些用户点击了哪些广告。

如果您使用 PHP 生成所有广告并将它们提供给用户,那么在您选择要显示的广告之前,请检查一次用户的 cookie并从那里开始。

如果您使用 javascript 在页面中放置广告,则应在每次刷新广告时检查 javascript 中的 cookie。

无论如何,放弃循环。只需在投放广告之前直接检查 cookie。

为了确定哪些用户点击了哪些广告,您应该检测 javascript 中的点击,并使用 AJAX 将它们记录到您的服务器。

于 2012-07-26T17:53:29.700 回答
1

你的方法行不通。PHP 用于生成响应(即构成您的页面的 html、javascript 等)。一旦生成,响应就会发送给用户,您的 PHP 脚本就完成了。由客户端(想想 JavaScript)通知您任何用户操作。您可以添加一个 onclick 事件,向您的服务器发送一个新请求,从而检测广告点击。

于 2012-07-26T17:53:46.050 回答
1

使用 ajax 和 setInterval 函数

setInterval(function(){
    $.ajax({
         type:"POST",
         url: "the_php_that_checks_cookie.php",
         data:"check=true",
         success:function(data){
               //alert the message sent by the php file
               alert(data);
         }
    });
},5000);

每 5 秒发送一次 ajax 请求并在您的 PHP 文件中,

if(isset($_POST['check']){

    $cookie1= $_COOKIE['PBCBD2A0PBP3D31B'];
    $cookie2= $_COOKIE['PBC0622FPBP3D31B'];
    $cookie3= $_COOKIE['PBC669C9PBP3D31B'];
    $count= "1";

  while ($count >0 )
    {
      if (isset($cookie1) || isset($cookie2) || isset($cookie3))
      {$count= "0"; echo "You clicked on an AD";} else{$count= "1";}
    }
}
于 2012-07-26T17:58:25.570 回答