Php Codeigniter:将用户名变量添加到会话
大家好,我正在尝试在用户登录时从会话中的users表添加username字段。 会话保存在数据库中。Php Codeigniter:将用户名变量添加到会话,php,codeigniter,session,Php,Codeigniter,Session,大家好,我正在尝试在用户登录时从会话中的users表添加username字段。 会话保存在数据库中。 但我得到两条信息: 严重性:注意 消息:未定义变量:用户名 文件名:controllers/main.php 电话号码:43 严重性:注意 消息:未定义索引:用户名 文件名:controllers/main.php 电话号码:45 我错在哪里?“我整天都在想我错在哪里。 提前感谢。 这是我的型号: function getDataProfiloUtente($username) { $
但我得到两条信息: 严重性:注意
消息:未定义变量:用户名
文件名:controllers/main.php 电话号码:43 严重性:注意
消息:未定义索引:用户名
文件名:controllers/main.php 电话号码:45 我错在哪里?“我整天都在想我错在哪里。 提前感谢。
这是我的型号:
function getDataProfiloUtente($username) {
$query = $this->db
->where('username', $username)
->limit(1)
->get('users');
return $query->row();
}
$utente['records'] = $this->model_users->getDataProfiloUtente($username);
$data = array(
'username' => $utente['username'],
'is_logged_in' => 1
);
$this->session->set_userdata($data);
这是我的控制器:
function getDataProfiloUtente($username) {
$query = $this->db
->where('username', $username)
->limit(1)
->get('users');
return $query->row();
}
$utente['records'] = $this->model_users->getDataProfiloUtente($username);
$data = array(
'username' => $utente['username'],
'is_logged_in' => 1
);
$this->session->set_userdata($data);
这是我的观点:
<?php echo $this->session->userdata('username'); ?>
在我看来,您正在将数组分配给另一个具有索引
记录的数组
,因此要获取您的用户名,您必须执行以下操作:
$data = array(
'username' => $utente['records']['username'],
'is_logged_in' => 1
);
在我看来,您正在将数组分配给另一个具有索引
记录的数组,因此要获取您的用户名,您必须执行以下操作:
$data = array(
'username' => $utente['records']['username'],
'is_logged_in' => 1
);
这个
实际返回一个可以替代使用的对象(在模型中):
在控制器中:
//notice I removed the ['records'] index when assigning,
//there's no need to store the result into an array
$utente = $this->model_users->getDataProfiloUtente($username);
然后使用对象或数组表示法访问列/字段:
//if you use row() in your model
$utente->username;
//or if you used row_array in your model do:
//$utente['username'];
:
第()行
此函数返回单个结果行。如果您的查询包含多个
一行,它只返回第一行结果以文本形式返回
对象。下面是一个用法示例
还请注意您正在将结果保存到另一个数组中,如果需要这样做,您必须执行以下操作:
//if use row() and store the result in your array $utente['records']
$utente['records']->username;
或
这个
实际返回一个可以替代使用的对象(在模型中):
在控制器中:
//notice I removed the ['records'] index when assigning,
//there's no need to store the result into an array
$utente = $this->model_users->getDataProfiloUtente($username);
然后使用对象或数组表示法访问列/字段:
//if you use row() in your model
$utente->username;
//or if you used row_array in your model do:
//$utente['username'];
:
第()行
此函数返回单个结果行。如果您的查询包含多个
一行,它只返回第一行结果以文本形式返回
对象。下面是一个用法示例
还请注意您正在将结果保存到另一个数组中,如果需要这样做,您必须执行以下操作:
//if use row() and store the result in your array $utente['records']
$utente['records']->username;
或
你解释得太完美了+1现在我收到以下错误:严重性:注意消息:未定义变量:用户名文件名:controllers/main.php,而在查看此错误时:严重性:注意消息:数组到字符串转换文件名:views/members.php行号:50根据您的建议,我使用的是row_数组()在模型和控制器中的代码中:$user['username']=$this->model_users->getdataprofilouentent($username);$数据=数组('username'=>$user['username'],'is_logged_in'=>1);$此->会话->设置用户数据($data);抱歉,这是正确的代码:$Untete['username']=$this->model_users->getDataProfilouente($username)$数据=数组('username'=>$utete['username'],'is\u logged\u in'=>1)$此->会话->设置用户数据($data);将'username'=>$utente['username'],
更改为'username'=>$utente['username']['username']。
您仍然在将模型结果保存到数组位置($user['username'])您不需要这样做(至少您想要或有这样的要求),我已经用这些细节给出了我的答案。您的解释非常完美+1现在我收到以下错误:严重性:注意消息:未定义变量:用户名文件名:controllers/main.php,而在查看此错误时:严重性:注意消息:数组到字符串转换文件名:views/members.php行号:50根据您的建议,我使用的是row_数组()在模型和控制器中的代码中:$user['username']=$this->model_users->getdataprofilouentent($username);$数据=数组('username'=>$user['username'],'is_logged_in'=>1);$此->会话->设置用户数据($data);抱歉,这是正确的代码:$Untete['username']=$this->model_users->getDataProfilouente($username)$数据=数组('username'=>$utete['username'],'is\u logged\u in'=>1)$此->会话->设置用户数据($data);将'username'=>$Utene['username'],
更改为'username'=>$Utene['username']['username']。
您仍然在将模型结果保存到数组位置($user['username'])您不需要这样做(至少您想要或有这样的要求),我已经用这些细节给出了我的答案。