簡體   English   中英

如何確保用戶只按一下我的喜歡按鈕?

[英]How do I make sure my like button is pressed only once by user?

像Button的表一樣

  • LIKE_ID(每個帖子的ID都是唯一的)
  • LIKES(有人點擊按鈕的次數)
  • POST_ID(對應於posts表的POST_ID)

一個單獨的post表具有上面的POST_ID,對於每個帖子都是唯一的

用戶存在單獨的用戶表

因此,當用戶單擊like按鈕時,它會向Like表中添加+1,其中post_id是他們喜歡的任何帖子。

javascript文件

$(document).ready(function() {
$('img.like_click').click(function() {
var form = $(this).closest('form[name=like_form]');
var lid = $(form).find('input[name=lid]').val();
$.post("like.php?lid='" + lid + "', function(data) {
$(form).find('span.like_count').html(data);
});
});

like.php文件

$lid = $_GET['lid'];
mysql_query("UPDATE tbl_likes SET likes=likes+1 WHERE like_id=".$lid) or     die(mysql_error());
$result = mysql_query("SELECT likes from files where fileid=" . $id) or die(mysql_error());
$row = mysql_fetch_assoc($result);
echo $row['likes'];

我無法弄清楚如何阻止用戶一遍又一遍地喜歡。 我發現網絡上的facebook風格就像阻止人們這樣做的腳本,但它們基於IP地址(如果你沒有登錄就不能喜歡我的帖子)這些代碼讓我感到困惑,因為我不是jquery的家伙。 我仍然試圖弄清楚如何使用上面的代碼正確顯示類似的按鈕,但最困難的部分是限制多個喜歡,這讓我很難過。 有人可以幫忙嗎? 謝謝

你說用戶不能喜歡你的帖子,除非他們已經登錄。所以在你的情況下,你自己很容易。 您只需跟蹤哪些用戶喜歡哪些帖子以防止重復。

在相似的表中,刪除likes列。 我們稍后會計算出來。 添加user_id列,以便跟蹤哪些用戶喜歡哪些帖子。 然后在post_iduser_id上添加組合的 primary_key以防止重復。

然后構建您的查詢,如下所示:

$q = mysql_query("INSERT INTO tbl_likes (user_id, post_id) VALUES ('{$user_id}', {$post_id})");

if( $q === false ) {
    // query didn't work, probably a duplicate
}
else {
    // return a success etc
}

如果你想獲得喜歡的數量,請使用如下計數查詢:

SELECT post_id, count(*) as c FROM tbl_likes WHERE post_id = $post_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM