目前为止还没有一种方法能完全避免网上重复投票
如果记录ip,一般ADSL断网再连ip就变了设置cookie,浏览器都有禁用或者清除cookie的功能设置session,关闭浏览器就没了所以,我们只能尽量防止重复投票现象
PHP投票 24小时内只能投票一次
session_start();//获取ip地址
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
if(($_COOKIE['VoteIP']==$cip) or ($_SESSION['VoteIP']==$cip)){
//拒绝投票
}
//记录到cookie中
SetCookie("VoteIP", $cip, time()+3600*24);//3600秒=1小时 过期时间为24小时
//记录到session中
$_SESSION['VoteIP']=$cip;
//设置session存活时间
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
PHP投票 每天投票一次
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
//获取当前时间
$date=date('y:m:d');
//以数组形式存入session
$info = array('ip'=>$cip,'time'=>$date);
//取出
$_SESSION['voteip'] = $info;
$arr = $_SESSION['voteip'];
//取出储存的日期
$t1 = strtotime($arr['time']);
//取出当前日期
$t2 = strtotime(date('y:m:d'));
//计算当前相差天数
$t = $t2 - $t1;
echo (int)($t / 86400);
//判断是否大于一天
if($t>=1){
//允许投票
}else{
//拒绝
}
?>
网友评论