PHP - 我希望用户不能多次投票
Posted
技术标签:
【中文标题】PHP - 我希望用户不能多次投票【英文标题】:PHP - I want the user to have no possibility to upvote more than one time 【发布时间】:2015-04-30 03:28:18 【问题描述】:我正在使用 php 和 mysql 开发一个小型社交网络 我希望用户能够对帖子进行投票,我已经这样做了,但问题是我希望用户只能投票一次。
这是我的 PHP 代码:
if (isset($_POST['heart']))
$identificateur = $_POST['hide'];
$Q = "UPDATE posts SET avis = avis + 1 where id=$identificateur ";
$bdd->query($Q);
这是upvote按钮的形式:
<form action="p.php" method="POST">
<label><?php
if ($avis != 0)
echo $avis;
?></label>
<input type="hidden" value="<?php echo "$id" ?>" name="hide">
<input type="submit" value=" " id="heart" name="heart">
</form>
每个用户都应该只有一次点击赞成投票图标的权利。 非常感谢您。
【问题讨论】:
您必须有一个表格,其中包含用户条目及其对帖子的投票。 我的建议是,您需要创建一个新的数据库表来存储哪个人对哪个帖子进行了投票。 【参考方案1】:您需要有第二个表,它有两个字段,post_id
和 voter_id
。 (post_voter
).post_id
有一个包含 post 表 id 的外键,voter_id
有用户表的外键。此表指定帖子的投票者和用户投票的帖子。当用户尝试对帖子进行投票时,您必须检查post_voter
表并获取post_id
等于帖子ID 和voter_id
等于用户ID 的行数。如果 count = 0,这意味着用户还没有对帖子进行投票,他现在可以投票给它。否则,用户已经为该帖子点赞,他无法再次点赞。
【讨论】:
以上是关于PHP - 我希望用户不能多次投票的主要内容,如果未能解决你的问题,请参考以下文章
PHP/MySQL:在投票系统中,如何防止用户看到他已经投票的个人资料?