PHP查看反垃圾邮件预防

时间:2011-03-31 00:33:46

标签: php mysql cookies

嘿,我已经有一个计数器编码的视图,但我需要帮助阻止人们只是刷新和刷新以添加更多视图。通常情况下,我会标记存储在SQL表中查看的IP,页面名称和日期,在php中,我会运行搜索以查看是否有人在24小时内查看了该页面,但我运行的网站是主要在学校运行,我希望计算机实验室中的每台计算机在看到页面时都算作视图。再次,我可以使用cookie,但我的服务器没有正确发送cookie。它在我的测试服务器上工作正常但在专用的Web托管服务器上没有。还有其他方法可以阻止垃圾邮件吗?

继承我的代码

function connect() {

$domain = $_SERVER['HTTP_HOST'];

$dbhost  = 'censored';
$dbname  = 'censored';
$dbuser  = 'censored';
$dbpass  ='censored';

if ($domain == 'localhost'){
$dbhost  = 'localhost';
$dbname  = 'db1';
$dbuser  = 'root';
$dbpass  ='';
}

 $con = mysql_connect($dbhost, $dbuser, $dbpass);
 if(!$con){
  trigger_error("Problem Connecting to the MySQL Server.");
 }  
 $db =  mysql_select_db($dbname, $con);
  if(!$db){
   trigger_error("Problem finding the Database!");
 }  
return $con;
}


function fetchdata($qry){
connect();
$result = mysql_query($qry);
return $fetch = mysql_fetch_assoc($result);
}



    function addcounter($id) {
connect();
$counter = fetchdata("SELECT * FROM counter WHERE `path` = '$id';");
$counter = $counter['counter'];
if(isset($_COOKIE["counter_".$id.""])){
}else{
if ($counter === NULL) {
    mysql_query("INSERT INTO counter VALUES (0, '" .$id. "');");
}
echo "<!-- submitting query -->";
mysql_query("UPDATE counter SET counter = `counter`+ 1 WHERE path = ".$id."") or die ('failupdate');
setcookie("counter_$id", "Playcookie_".$id."");
}
}

1 个答案:

答案 0 :(得分:1)

如果你不能使用用户的IP地址(可能是因为他们在NAT后面?)并且你不能使用cookie,那么你真的没什么可做的。

可以尝试将IP与用户代理字符串一起使用(可能在实验室中的不同计算机之间不同),但这会慢当然远非保证工作。

除此之外,我认为你没有选择。