我正在尝试为wordpress主题创建一个投票系统。我正在使用cookie系统来确保选民只投票一次,但问题是当用户投票支持投票的cookie被设置为1以及他们是否想投票给另一个帖子因为cookie被设置为1他们不能。我怎样才能解决这个问题并为每个wordpress帖子投票?
我使用以下代码设置cookie
setcookie('voted','1');
我使用if语句来查看用户是否已投票:
if(!isset($_COOKIE["voted"]){
// vote up code
}
答案 0 :(得分:2)
你可以尝试在投票的cookie中存储poll的id。
<?php
setcookie("voted[$id_of_poll]", $id_of_poll);
然后像这样检查
<?php
if (in_array($id_of_poll, $_COOKIE['voted']))
{
// already voted
}
但请注意,Cookie是高度动态的。用户可以清除它们,它们可能会使用多个设备等。最好将它存储在您自己的数据库中,以防止用户ID。
答案 1 :(得分:1)
将帖子ID附加到cookie,使其唯一:
setcookie("voted-".get_the_ID(),'1');
这样的事情:
if(!isset($_COOKIE["voted-".get_the_ID()]){
// vote up code
}