2012-05-11 83 views
0

網站建立在代碼點火器的框架。我有兩個鏈接(喜歡和不喜歡)。當你點擊鏈接時,相應的值會增加或減少。您可以看到網站:http://joke.guluzade.com/jokes/view/24不能設置cookie的正確

我想要什麼:那用戶只能更改一次該值。我通過cookies做到這一點。例如,如果用戶點擊「喜歡」鏈接,則值+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

檢查,如果這可以幫助您http://stackoverflow.com/questions/612034/how-can-i-set-a-cookie-and-then-redirect-in- PHP – Chinook

+1

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

+0

謝謝你,支奴幹。它幫助 – jumancy

回答

2

使用get_cookie( 'some_cookie')OR get_cookie( 'some_cookie',TRUE);而不是$ cookie [$ value]。

而且使用

   $cookie = array(
       'name' => 'The Cookie Name', 
       'value' => 'The Value', 
       'expire' => '86500', 
       'domain' => '.some-domain.com', 
       'path' => '/', 

       ); 

       set_cookie($cookie); 
+0

我已經解決了它。問題在路上,我添加了路徑'/',它的工作原理是正確的。 – jumancy