我有一个PHP代码投票我想阻止用户投票两次。我想检查用户是否已投票,并阻止他们再次投票。 这是我的代码:
<?php
include('conn.php');
$expire = 24*3600*30; //after one day
setcookie('SnugglesVotingSystem'.$_POST['id'], 'voted', time() + $expire, '/'); // Place a cookie
if($_POST)
{
try{
$query = "UPDATE tbl_images SET up =up".$_POST['value']." WHERE id=".$_POST['id'].""; // Update number with +1 or -1
// Prepare statement
$stmt = $DB->prepare($query);
// execute the query
$stmt->execute();
// echo a message to say the UPDATE succeeded
echo $stmt->rowCount();
}
catch(PDOException $e)
{
echo $query . "<br>" . $e->getMessage();
}
$value = "SELECT up FROM tbl_images WHERE id=".$_POST['id'].""; // Get the new number value
$stmt = $DB->prepare($value);
$stmt->execute();
$images = $stmt->fetchAll();
if (is_array($value) && isset($_POST['up'])) {
echo $value['up'];
}
//echo $value['up']; // Send back the new number value
}
?>
答案 0 :(得分:1)
您需要在数据库中保存某种标志,以确定此用户是否已为此图像投票。不是仅保留图像的总投票数,而是为每个投票在新的image_votes表中插入一条新记录。该记录只包含user_id和image_id。然后,您可以计算任何一个用户的投票或图像的投票,并且您可以轻松地在此表上执行SELECT以查看用户是否已经投票,然后通知他们他们无法再次投票或为他们插入行。