【发布时间】:2012-01-06 21:37:55
【问题描述】:
我有这个功能
public function logout() {
if ($this -> user_model -> is_logged() === TRUE) {
$user_id = $this -> user_model -> get_id();
if (get_cookie('cookie_name') != FALSE) {
delete_cookie('cookie_name');
$new_cookie = md5(sha1(rand() . time() . $user_id));
$this -> db -> set('cookie', $new_cookie);
$this -> db -> update('users') -> where('id = ' . "'" . $user_id . "'");
}
$this -> session -> unset_userdata('user_id');
echo "logged out? <a href=" . base_url() . ">click here</a>";
} else {
echo "no";
}
}
当
if (get_cookie('cookie_name') != FALSE) {
为真,如果括号内的代码被执行,那么其他两行代码:
$this -> session -> unset_userdata('user_id');
echo "logged out? <a href=" . base_url() . ">click here</a>";
当 if 代码没有被执行时,这些行被正确执行。
if 里面的代码被正确执行,因为 cookie 被删除,数据库被更新。
我正在使用 Codeigniter 2.1.0,但我认为问题与此无关。
我的 php 版本是 Ubuntu 11.04 上 localhost 下的 5.3
【问题讨论】:
-
我很难解决您的问题。执行内部 If 语句时,以下两行代码没有正确执行?这就是你想说的吗?
-
是否有可能
update有一个致命错误或exit或最后的什么?unset_userdata怎么样? -
我不完全确定你可以像你一样链接 db 命令。将 where 子句移至其 on db 调用... $this->db->where("") 然后运行 $this->db->update()。再说一次,我不确定这是不正确的,我只是从未见过这样做过。
标签: php codeigniter if-statement