gpt4 book ai didi

PHP 查看计数器垃圾邮件预防

转载 作者:行者123 更新时间:2023-11-29 14:52:17 26 4
gpt4 key购买 nike

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

这是我的代码

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."");
}
}

最佳答案

如果您无法使用用户的 IP 地址(大概是因为它们位于 NAT 后面?)并且您无法使用 cookie,那么您实际上无能为力。

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

除此之外,我认为您别无选择。

关于PHP 查看计数器垃圾邮件预防,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5494094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com