0

我正在尝试为 wordpress 主题创建一个投票系统。我正在使用 cookie 系统来确保选民只投票一次,但问题是当用户投票给一个帖子时,投票的 cookie 设置为 1,如果他们想投票给另一个帖子,因为 cookie 设置为 1他们不能。我怎样才能解决这个问题并为每个 wordpress 帖子拥有唯一的投票?

我正在使用以下代码来设置 cookie

setcookie('voted','1');

我使用 if 语句来查看用户是否投票:

if(!isset($_COOKIE["voted"]){
     // vote up code
}
4

2 回答 2

2

您可以尝试将 poll 的 id 存储在投票的 cookie 中。

<?php
setcookie("voted[$id_of_poll]", $id_of_poll);

然后像这样检查它

<?php
if (in_array($id_of_poll, $_COOKIE['voted']))
{
   // already voted
}

但是请注意,cookie 具有很高的挥发性。用户可以清除它们,他们可能使用多个设备等。您最好将其存储在您自己的数据库中,以针对用户 ID。

于 2013-09-13T08:08:27.540 回答
1

将帖子 ID 附加到 cookie 中,使其唯一:

setcookie("voted-".get_the_ID(),'1');

像这样的东西:

if(!isset($_COOKIE["voted-".get_the_ID()]){
     // vote up code
}
于 2013-09-13T08:06:06.183 回答