Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery投票系统和避免重复的Mysql更新_Php_Jquery_Cookies - Fatal编程技术网

Php Jquery投票系统和避免重复的Mysql更新

Php Jquery投票系统和避免重复的Mysql更新,php,jquery,cookies,Php,Jquery,Cookies,我有一个投票系统,一切正常,除了一些用户试图发送快速请求,以便绕过系统并添加更多分数 if (isset($_COOKIE['vote_posneg_'.$id.''])){ die("already voted"); }else{ setcookie('vote_posneg_'.$id.'', 1, time()+7200); // set cookie that expires in 2 hour "time()

我有一个投票系统,一切正常,除了一些用户试图发送快速请求,以便绕过系统并添加更多分数

   if (isset($_COOKIE['vote_posneg_'.$id.''])){
         die("already voted");              
    }else{
        setcookie('vote_posneg_'.$id.'', 1, time()+7200);  // set cookie that expires in 2 hour "time()+7200".
    }
    switch ($section){
        case "comments":
            if($mode == "pos"){
            $sql= "UPDATE comments SET `positive`= positive+1 WHERE commentid='$id'";
            $sql2= "SELECT `positive` FROM comments WHERE commentid='$id' LIMIT 1";
            }else{
            $sql= "UPDATE comments SET `negative`= negative+1 WHERE commentid='$id'";
            $sql2= "SELECT `negative` FROM comments WHERE commentid='$id' LIMIT 1";
            }
        break;
        }

    list($cnumnow) = mysql_fetch_row(mysql_query($sql2)) or die(mysql_error());
    die($cnumnow);

因此,在更新DB表之后设置新cookie之前,用户可以发送快速Ajax请求并多次添加点

我以前只是在想。。我想获取用户ip或该用户的任何唯一信息,并将其保存在db或cookie中,这样我就可以让该用户只进行一次投票,并拒绝其他用户的点击:)当然,这会起作用,我知道,但它可能会向数据库中添加大量数据。请注意,用户可以删除cookie,将其浏览器配置为完全不接受cookie,甚至可以编写一个只发送投票而不接受cookie的脚本。