目前為止還沒(méi)有一種方法能完全避免網(wǎng)上重復(fù)投票
如果記錄ip,一般ADSL斷網(wǎng)再連ip就變了設(shè)置cookie,瀏覽器都有禁用或者清除cookie的功能設(shè)置session,關(guān)閉瀏覽器就沒(méi)了所以渔欢,我們只能盡量防止重復(fù)投票現(xiàn)象
PHP投票 24小時(shí)內(nèi)只能投票一次
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小時(shí) 過(guò)期時(shí)間為24小時(shí)
//記錄到session中
$_SESSION['VoteIP']=$cip;
//設(shè)置session存活時(shí)間
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
PHP投票 每天投票一次
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
//獲取當(dāng)前時(shí)間
$date=date('y:m:d');
//以數(shù)組形式存入session
$info = array('ip'=>$cip,'time'=>$date);
//取出
$_SESSION['voteip'] = $info;
$arr = $_SESSION['voteip'];
//取出儲(chǔ)存的日期
$t1 = strtotime($arr['time']);
//取出當(dāng)前日期
$t2 = strtotime(date('y:m:d'));
//計(jì)算當(dāng)前相差天數(shù)
$t = $t2 - $t1;
echo (int)($t / 86400);
//判斷是否大于一天
if($t>=1){
//允許投票
}else{
//拒絕
}
?>