2012-05-11 12 views
0

サイトはCode Igniterフレームワーク上に構築されています。私は2つのリンク(好き嫌い)を持っています。リンクをクリックすると、対応する値が増減します。サイトを見ることができます:http://joke.guluzade.com/jokes/view/24はクッキーを正しく設定できません

私が望むもの:このユーザーはこの値を1回だけ変更できます。私はクッキーでそれをする。たとえば、ユーザーが「好き」リンクをクリックすると、値+5は+6になります。次に、「嫌い」をクリックすると、値が変更されてはなりません。ユーザーは好き嫌いが1回しかないはずです。これで正しく動作しません。クリックすると嫌なことをクリックすることもできますが、嘘や嫌いの値を1回だけ変更したいだけです。

どのようにしますか:クッキーが設定されているかどうかをチェックし、機能が何もしない場合はクッキーを設定して値を変更します。しかし、クッキーが好きに設定されている場合、あなたが嫌い​​なものをクリックすると、そのクッキーは表示されません。ここで

はコードです:

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- phy – Chinook

+1

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

+0

ありがとう、チヌーク。それは助けて – jumancy

答えて

2

使用get_cookie( 'some_cookie')または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

関連する問題