[英]$_SESSION['loggedin'], identification of particular user and security questions
[英]Authenticate if user is loggedin and if session and db matches
我的页面控制器上有这个。
protected $auth = array();
function __construct(){
parent::__construct();
$this->auth['result'] = $this->is_logged_in();
}
这是我位于核心文件夹的核心/基本控制器。
public function is_logged_in(){
$session = $this->session->userdata();
if(isset($session['logged_in'])){
return $session;
}else{ return FALSE; }
}
以上代码够吗? 还是我缺少进行合法身份验证的东西?(我第一次尝试进行用户身份验证)
另外,例如,可以吗?
我在帐户表上添加了列“ isLoggedin
”。
int(1),NULL.
每当我的登录功能被调用并且有人成功登录时,我还将添加一个值作为' isLoggedin
'插入1。1 1=true, 2=false
。
因此,例如在我的页面控制器中,由于每次加载时,它将在我的基本控制器中运行is_logged_in()
函数,并将从那里返回会话数据。
我会将从我的基本控制器返回的会话数据与帐户表中的“ isLoggedin
” col设置为1的会话数据进行比较。
另外,快速提问。
在我的模型中,有一条查询行: $result = $this->db->insert('accounts',$data);
如果我返回$result
,它是否根据查询的成功或失败返回TRUE / FALSE?(如果插入= 1?)
我已经做了一个print_r($result);
但它显示为1。我不确定此1是否仅在int值中表示TRUE。
另外,如何声明布尔值? 因此它将打印为TRUE或FALSE。
我已经尝试过, boolean $result
但是它将作为解析错误返回。
在codeigniter中,如果为TRUE则返回1,但如果为FALSE则不返回任何内容,如果您执行print_r()检查结果结果。但是如果您执行var_dump()则将向您显示bool(false)/ bool(true )值。 因此,如果您必须根据代码检查会话是否维护,则可以像这样检查:
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*/
}
}
对于第一个问题,对于一个非常简单的情况,这已经足够。 但是在一个相当复杂的项目中,您需要检查更多参数(例如有效时间,密码更改等)。
至于您的第二个代码,虽然您没有在代码或描述中指定,但是从您的方法规范来看,我认为代码很可能基于CodeIgniter。
你是对的。 根据此处的CodeIgniter文档,insert TRUE on success, FALSE on failure
返回TRUE on success, FALSE on failure
则返回TRUE on success, FALSE on failure
,返回值应为bool
类型。
insert([$table = ''[, $set = NULL[, $escape = NULL]]])
Parameters:
$table (string) – Table name
$set (array) – An associative array of field/value pairs
$escape (bool) – Whether to escape values and identifiers
Returns:
TRUE on success, FALSE on failure
Return type:
bool
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.