У меня есть процесс входа в систему, когда пользователь может просмотреть свою панель после входа в систему.
Код в контроллере:
$adminid = $this->am->login_admin($email, $password); if ($adminid) { $admin_data = array( 'adminid' => $adminid, 'email' => $email, 'logged_in' => true, 'loggedin_time' => time() ); $this->session->set_userdata($admin_data); $this->session->set_flashdata('login_success', 'You are logged in'); redirect('Admin_dashboard/dashboard/' . $adminid); } else { $this->session->set_flashdata('login_failed', 'Invalid login!!'); redirect('admin/index'); }
После успешного входа пользователь перенаправляется на следующий URL-адрес
localhost/project/Admin_dashboard/dashboard/1
Проблема в том, что если пользователь вручную изменит URL-адрес на что-то вроде этого –
localhost/project/Admin_dashboard/dashboard/2
он может получить доступ к данным пользователя с идентификатором 2 без входа в систему
Чтобы решить проблему, я попытался использовать следующее кодирование в представлении
<?php if($this->session->userdata('logged_in')): ?> <? endif; ?>
Однако второй URL-адрес все еще доступен
После входа в систему пользователь перенаправляется на панель мониторинга, которая также содержит несколько других страниц, таких как страница профиля, страница оплаты и т. Д., Которая содержит данные, относящиеся только к нему.
Я хочу, чтобы после входа в систему он мог видеть все свои страницы, но не другие данные, изменяя URL-адрес