Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 验证用户是否为loggedin以及会话和数据库是否匹配_Php_Database_Codeigniter_Session - Fatal编程技术网

Php 验证用户是否为loggedin以及会话和数据库是否匹配

Php 验证用户是否为loggedin以及会话和数据库是否匹配,php,database,codeigniter,session,Php,Database,Codeigniter,Session,我的页面控制器上有这个 protected $auth = array(); function __construct(){ parent::__construct(); $this->auth['result'] = $this->is_logged_in(); } 这是我的core/base控制器,位于core文件夹中 public function is_logged_in(){ $session = $this->session->userdata(); if

我的页面控制器上有这个

protected $auth = array();

function __construct(){
parent::__construct();
$this->auth['result'] = $this->is_logged_in();
}
这是我的core/base控制器,位于core文件夹中

public function is_logged_in(){
$session = $this->session->userdata();
if(isset($session['logged_in'])){
    return $session;
}else{ return FALSE; }
}
以上代码是否足够?还是我错过了一些合法身份验证的事情?我第一次尝试用户身份验证

还有,比如说,如果可以的话

我在accounts表中添加了一列“isLoggedin”

int(1),NULL.
每当我的登录函数被调用,并且有人成功登录时,我也会将一个值作为'isLoggedin'插入到1中。1=正确,2=错误

例如,在我的pages控制器中,因为每次加载时,它都会在我的基本控制器中运行is_logged_函数,并从那里返回会话数据

我会将从我的基本控制器返回的会话数据与“isLoggedin”列设置为1的accounts表中的会话数据进行比较

还有,快速提问

在我的模型中,有一个查询行:$result=$this->db->insert'accounts',$data

如果我返回$result,它是否根据查询的成功或失败返回TRUE/FALSE?如果inserted=1

我已经打印了$r$结果;但它显示了1。我不确定这个1在int值中是否表示TRUE

另外,如何声明布尔值?所以它会打印为真或假


我已经试过了,布尔$result,但它会作为解析错误返回。

对于您的第一个问题,对于一个非常简单的案例,这就足够了。但在一个相当复杂的项目中,您需要检查更多的参数,如有效期、密码更改等

至于您的第二个,虽然您没有在代码或描述中指定,但从您的方法规范来看,我相信代码很可能是基于CodeIgniter的

你是对的。根据CodeIgniter文档,insert在成功时返回TRUE,在失败时返回FALSE,并且返回值应为bool类型


在codeigniter中,如果为TRUE,则返回1,如果为FALSE,则不返回任何内容,如果您打印r以检查结果。但是如果您执行var_dump,则将显示boolfalse/booltrue值。因此,如果您必须根据您的代码检查会话是否维护,您可以这样检查:-

function __construct()
    {
        parent::__construct();
        $this->auth['result'] = $this->is_logged_in();
        if(($this->auth['result']))
        {
           echo "session is set";/*Here your session is set*/ 
        }
        else
        {
            echo "session is not set";/*Here your session is not set*/
        }
    }
function __construct()
    {
        parent::__construct();
        $this->auth['result'] = $this->is_logged_in();
        if(($this->auth['result']))
        {
           echo "session is set";/*Here your session is set*/ 
        }
        else
        {
            echo "session is not set";/*Here your session is not set*/
        }
    }