0

基于 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']);               
        }    
    }
}

谁能说,我做错了什么?

4

2 回答 2

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); 
于 2012-05-11T06:54:09.683 回答
0

您可以从以下帖子中找到答案。

如何设置 cookie 然后在 PHP 中重定向?

http://www.tek-tips.com/viewthread.cfm?qid=1509045

于 2012-05-11T11:07:43.153 回答