文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>投票系统防刷票的一些想法

投票系统防刷票的一些想法

时间:2006-11-07  来源:blau


采用$_SESSION和$_COOKIE做双重验证,不知道是不是罗嗦了,貌似用iecv15.exe
下载
清掉Cookie的缓存后把这些玩意全部清除掉了,但是用来防防君子还是不错的 ^^
另外在做session实验的时候还参考一个MM写的文章
http://blog.sina.com.cn/u/46599af7010003u6
case "vote":
if(!isset($_SERVER['HTTP_USER_AGENT']))
rollback("请用浏览器投票,不要用刷票脚本 T_T 如有任何出入请反馈到论坛");
/*
*校验传入的pid值是否和数据库中的一致
*并校验票选号码和页码是否为数值类型
*/
if($_GET['pid']==$vote->getpid($_GET['vid']) and is_numeric($_GET['vid']) and is_numeric($_GET['p']))
{
    //获取票选的信息
    $data=$vote->get($_GET['vid']);
    /*
    *检验投票的vid是否在session中
    *校验是否已经超过规定票数
    */
    if(strpos($_SESSION['sec_str'],"%".$_GET['vid'])===false && $_SESSION['allow_num']>0 && $_SESSION['isvoted']!=true)
    {   
        if(strpos($_COOKIE['sec_str'],"%".$_GET['vid'])===false && $_COOKIE['allow_num']>0 && $_COOKIE['isvoted']!=true)
        {                    
            $vote->addticket($_GET['vid']);
            $_SESSION['sec_str'].="%".$_GET['vid'];
            $_SESSION['allow_num']--;
            $_SESSION['votesite']=$data['sitename'];
            //$_SESSION['ip']=$vote->getip();
            //setcookie("votetime",gmdate("Y年m月d日H时i分s秒",time()+8*3600),time()+$lifetime*30);
            setcookie("sec_str",$_COOKIE['sec_str']."%".$_GET['vid'],time()+$lifetime*30);
            setcookie("allow_num",$_COOKIE['allow_num']--,time()+$lifetime*30);
            setcookie("votesite",$data['sitename'],time()+$lifetime*30);               
            jumpto("感谢参与投票,您还可以投".$_SESSION['allow_num']."票","list.php?p=".$_GET['p']."");
        }
        else
        {
            if($_COOKIE['allow_num']=0)
            {
                setcookie("isvoted",true,time()+$lifetime*30);
            }
            jumpto("您已经给".$_COOKIE['votesite']."投过票了 :)","list.php?p=".$_GET['p']."");
        }
    }
    else
    {        
        if($_SESSION['allow_num']=0)
            $_SESSION['isvoted']=true;
        jumpto("您已经给".$_SESSION['votesite']."投过票了,请不要重复投票 ^^","list.php?p=".$_GET['p']."");
    }
}
else
{
    //获取get过来的参数
    foreach($_GET as $key=>$value)
    {
        $istr.=$key."=".$value."&";
    }
    $istr=trim($istr,"&");   
    //使用vote实例中的logger类
    require_once("class.logger.php");
    $logger=new logger("running");
    $logger->add($istr);
    rollback("传递的参数错误,请刷新页面后再投票");
}
break;


相关阅读 更多 +
排行榜 更多 +
幸运硬币官方正版下载

幸运硬币官方正版下载

休闲益智 下载
宝宝来找茬手机版 v9.86.00.00 安卓版

宝宝来找茬手机版 v9.86.00.00 安卓版

休闲益智 下载
翻滚飞机大战最新版 v1.0.4 安卓版

翻滚飞机大战最新版 v1.0.4 安卓版

飞行射击 下载