[英]PHP code after IF not executed
我有这个功能
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) {
为true,如果执行了if括号内的代码,则执行另外两行代码:
$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
如上所述,您的更新语句需要分开。 您需要修改这一行:
$this -> db -> update('users') -> where('id = ' . "'" . $user_id . "'");
对此:
$this->db->where('id = ' . "'" . $user_id . "'");
$this->db->update('users');
请注意,在update语句之后where子句被“清空”,并且如果您打算将来进行多个更新,则必须重复where子句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.