Я пытаюсь выполнить вход в систему с помощью сеансов, но, похоже, это не работает, поскольку при входе в систему данные сеанса не отображаются. после входа в систему должно появиться что-то вроде: «Добро пожаловать, Джон», но это не так. В чем может быть проблема
контроллер fn
function login_user()
{
if(isset($_POST['login']))
{
$data = $this->Model_students->fetchUserData();
if(!empty($data))
{
var_dump($data);
foreach ($data as $key => $value) :
$user_id = $value->id;
$firstname = $value->firstname;
$lastname = $value->lastname;
$grade = $value->grade;
$email = $value->email;
$images = json_decode($value->userfile);
endforeach;
$user_info = array(
'id' => $user_id,
'firstname' => $firstname,
'lastname' => $lastname,
'grade' => $grade,
'email' => $email,
'images' => $images[0]->file_name,
'is_logged_in' => TRUE
);
$this->session->set_userdata($user_info);
redirect('Students/homepage');
}
else
{
$this->session->set_flashdata('error', 'Error! Invalid username or password');
redirect('Students/login_user');
}
}
else
{
$this->load->view('signup');
}
}
модель соединение здесь для другой таблицы в том же БД, где общий строка является идентификатором..не уверен, что соединение тоже корректно
public function fetchUserData()
{
$this->db->select('users.*, user_images.*');
$this->db->from('users');
$this->db->join('user_images', 'users.id=user_images.user', 'inner');
$this->db->where('email', $this->input->post('email'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get();
if($query->num_rows() == 1 ) :
foreach($query->result() as $row):
$data[] = $row;
endforeach;
return $data;
endif;
}
view img scr здесь должно отображать изображение пользователя на основе того, что сохранено в БД, когда он / она впервые зарегистрирован
</head>
<body>
<h3>Welcome <?php $this->session->userdata('$firstname')?>.</h3>;
<a href=""> <img class ="img-circle" src="<?=base_url();?>uploads/users/<?=$this->session->userdata('userfile/file_name');?>" width="250" height="auto"></a>