基于 Code Igniter 框架构建的站点。我有两个链接(喜欢和不喜欢)。单击链接时,相应的值会增加或减少。您可以查看该网站:http: //joke.guluzade.com/jokes/view/24
我想要什么:该用户只能更改此值一次。我用饼干做的。例如,如果用户单击“喜欢”链接,则值 +5 变为 +6。然后,如果您单击“不喜欢”,则该值不得更改。用户应该只有一次喜欢或不喜欢的机会。现在它不能正常工作,如果你点击喜欢你也可以点击不喜欢,但我只想改变一次谎言或不喜欢的价值。
我怎么做:我检查是否设置了 cookie,函数什么也不做,如果没有,它会设置 cookie 并更改值。但是,如果 cookie 设置为喜欢,当您单击不喜欢时,它不会看到该 cookie。
这是代码:
function vote ($mm, $id){ //get the parameters (like or dislike and id)
$name = $mm;
$value = (int)$id;
$time = time()+3600;
if(isset($_COOKIE[$value])){
redirect($_SERVER['HTTP_REFERER']);
} else {
SetCookie($value, $name, $time);
if($name == "like"){
$this->db->select('like');
$this->db->where('id', $id);
$query = $this->db->get('jokes');
$data = $query->row_array();
$likes = $data['like'];
$likes++;
$dd = array();
$dd['like'] = $likes;
$this->db->where('id', $id);
$this->db->update('jokes', $dd);
redirect($_SERVER['HTTP_REFERER']);
} else {
$this->db->select('dislike');
$this->db->where('id', $id);
$query = $this->db->get('jokes');
$data = $query->row_array();
$likes = $data['dislike'];
$likes--;
$dd = array();
$dd['dislike'] = $likes;
$this->db->where('id', $id);
$this->db->update('jokes', $dd);
redirect($_SERVER['HTTP_REFERER']);
}
}
}
谁能说,我做错了什么?