我的朋友和我正在创建一个请愿板,我正在添加一个喜欢/不喜欢的功能。我打算这样做,只有用户可以喜欢/不喜欢它。问题是,我不知道如何确保用户不多次垃圾邮件按钮以及如何注册哪个用户喜欢/不喜欢哪个主题。以下是我目前的代码。
编辑:谢谢我现在正在创建喜欢/不喜欢的表。但现在我必须将用户与数据库进行比较,看看他们之前是否喜欢评论。我知道我必须使用WHERE(检查喜欢和不喜欢的表)但我不知道如何将它与IF结合起来。<?php
include connect.php
if (isset($_POST['like']) || isset($_POST['dislike']))
{
if($_SESSION['signed_in']){
if (isset($_POST['like'])) {
$sql="UPDATE
topics
SET
likes=likes+1,
WHERE
id=topic_id";
echo "You liked it";
}
elseif (isset($_POST['dislike'])) {
$sql="UPDATE
topics
SET
dislikes=dislikes+1,
WHERE
id=topic_id";
echo "You disliked it";
}
}
else{
echo 'Please log in.'
}
?>
答案 0 :(得分:5)
您应该有一个包含以下列的“赞”表。
“article_id”,“user_id”,主键应包含两列
每次用户喜欢文章时,INSERT INTO都会喜欢VALUES($ article_id,$ user_id); 如果有人喜欢两次,它会失败,这要归功于主键。
每次用户不喜欢,DELETE FROM喜欢WHERE article_id = $ article_id AND user_id = $ user_id。这将允许用户再次喜欢。
要获得文章的喜欢次数,请运行SELECT COUNT(*),因为nb_of_likes FROM喜欢WHERE article_id = $ article_id,而不是将数字存储在文章表中。
有道理吗?
答案 1 :(得分:0)
以下解决方案是可能的,可以一起使用:
您永远无法完全摆脱垃圾邮件发送者,取决于您的请求的具体情况。因此,你越想阻止利用请愿书,就越不会匿名。