Code Igniter フレームワーク上に構築されたサイト。リンクが 2 つあります (好きなものと嫌いなもの)。リンクをクリックすると、対応する値が増減します。サイトを見ることができます: http://joke.guluzade.com/jokes/view/24
私が欲しいもの:そのユーザーはこの値を一度だけ変更できます。私はクッキーでそれを行います。たとえば、ユーザーが「いいね」リンクをクリックすると、値 +5 が +6 になります。次に、「嫌い」をクリックした場合、値は変更してはなりません。ユーザーが好きか嫌いかを決めるチャンスは 1 回だけです。好きなようにクリックすると嫌いなものもクリックできるようになりましたが、嘘や嫌いな値を一度だけ変更したいだけです。
方法: Cookie が設定されているかどうかを確認します。関数は何もしません。そうでない場合は、Cookie を設定して値を変更します。しかし、cookie が like に設定されている場合、dislike をクリックしてもその 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']);
}
}
}
誰が私が間違っていると言うことができますか?