基于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']);
}
}
}
有人可以说,我做错了吗?
答案 0 :(得分:2)
使用get_cookie('some_cookie')或get_cookie('some_cookie',TRUE);而不是$ cookie [$ value]。
此外,使用
为完整域设置cookie $cookie = array(
'name' => 'The Cookie Name',
'value' => 'The Value',
'expire' => '86500',
'domain' => '.some-domain.com',
'path' => '/',
);
set_cookie($cookie);
答案 1 :(得分:0)