是否可以在我的数据库中存储设备唯一的"标识符"?(菲律宾比索)



我正在做一个投票系统,我希望每个设备只有一次投票机会。我如何使用PHP做到这一点?

PHP无法获取MAC,只能获取全局变量$_SERVER['REMOTE_ADDR']的客户端ip。

这将从环境变量中获得值

$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';

Cookie的使用

//如果用户第一次投票并成功,则设置$vote = "success",然后为该设备设置cookie变量,例如

if($vote == "success"){
setcookie("isvote", "true");
}

//要检查用户是否投票,您可以简单地检查cookie变量是否存在。//这是你可以使用的最后一个代码

if (isset($_COOKIE["isvote"])){ 
echo "you can vote only one time";
}else{
if($vote == "success"){
setcookie("isvote", "true");
}
}

通过ip地址和cookie,您可以分析投票来自哪个网络。。

您还可以保存用户id或为该用户设置计数,以了解用户尝试投票的次数。您可以在此条件下添加语句->

if (isset($_COOKIE["isvote"])){
// some statements that add or update counter in database
}

最新更新