与使用Codeigniter和AJAX的系统一样

时间:2015-03-29 10:18:19

标签: javascript php ajax codeigniter

我的类似系统有问题,用户可以提供多于1个,但系统在db上只注册一个,我认为这是一个与AJAX相关的问题。

这是按钮:

<a class="btn btn-xs btn-white" name="btn" onclick="usercountcomments(<?php echo $value['user_id'].",".$value['personal_closest_id'].",".$value['id']; ?>)"><i class="fa fa-star"></i><span id="countVal1_<?php echo $value['id']; ?>"><?php echo $value['countcomments']; ?></span> Cool </a>

这个是jscript AJAX脚本:

function usercountcomments(user_id,postId,id){
var a = $("#countVal1_"+id).text();
var display = document.getElementById("countVal1_"+id);
var count = a;
var user_comments="cool";

$.ajax({
    type: "POST",
    url: "<?php echo base_url() ?>social/commentcool/" +user_id+"/"+postId+"/"+user_comments,
    data:{ user_comments : user_comments},
    success: function(data) { 
        count++;
        display.innerHTML = count;
       // alert(a++);   
    }
});
}

我该怎么做以防止用户提供多个像?

1 个答案:

答案 0 :(得分:1)

您可以使用cookie

<?php
$id =$_GET['id'];
if(isset($_COOKIE['like'.$id])) {
    echo "error";
    exit;
}else {
    $sql = "UPDATE post SET likecount=likecount+1 WHERE id=$id";
    $conn->query($sql);
    $sql = "SELECT likecount from post where id=$id";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        $row = $result->fetch_assoc();
        echo $row['likecount'];
        setcookie('like'.$id,true, time() + (86400 * 30), "/");
    }
}