我收到这个非常奇怪的错误“不能使用标量值作为数组” 谷歌上帝和SOF的东西都没有帮助我这个我想要做的是我已经创建了用户会话[有会话数据用户名和密码]现在用户登录my_profile页面后我附加了一些会话数据,如user_id然后我开始得到这个错误???任何帮助或提示
//控制器
<?php
class My_profile extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('session');
$this->load->helper('form');
$this->load->helper('url');
$this->load->helper('html');
$this->load->database();
$this->load->library('form_validation');
// $this->is_login();
}
public function index () {
if($this->session->userdata('is_login')) {
$session_data = $this->session->userdata('is_login');
$session_data['user_id'] = $this->session->userdata('user_id');
$this->session->set_userdata("is_login", $session_data);
$this->load->model('My_profilee');
$data['query']=$this->My_profilee->view_data();
$this->load->helper('url');
$this->load->view('header2');
$this->load->view('my_profile');
// $this->load->view('footer');
}else {
echo "you don't have permission to access this page <a href=../Homecontroller/index/>Login</a>";
die();
}
}
}
?>
// model
<?php
class My_profilee extends CI_Model {
function __construct()
{
// Call the Model constructor
parent::__construct();
$this->load->database();
}
public function view_data() {
//echo $this->session->userdata('user_id');
$query=$this->db->get('tbl_usrs');
return $query->result();
}
}
?>
我真正想做的是在登录会话数据后添加用户ID [来自数据库],然后根据用户ID显示用户信息??
答案 0 :(得分:0)
这很简单。
您有一个分配,其中将单个值(无论是整数还是字符串)分配给变量:
$session_data = $this->session->userdata('is_login');
现在这是一个标量值。除非在上下文中重新定义,否则它是不可变的。您不能将数组值应用于现有标量值,必须实例化新数组,并将该值应用为索引,然后将新项目作为索引添加到新数组中。
$session_array['session_data'] = $this->session->userdata('is_login');
继续为此数组分配变量,等等。