Это так же просто, как и получается.Пользователь хочет перейти на скрытую страницу 1, если у него нет сеанса, он перенаправляется на страницу входа в систему (ему просто требуется сообщение для себя, поле идентификатора и пароля и место для echo $msg
).После входа они будут перенаправлены обратно на скрытую страницу и смогут просматривать содержимое.
Это можно немного убрать, но это общая идея.
class Auth extends CI_Controller {
private $id = '123';
private $password = 'abc';
public function __construct() {
parent::__construct();
$this->load->library('session');
$this->load->helper('url');
}
public function login_page() {
$data = array();
if ($this->input->post()) {
$id = $this->input->post('id');
$password = $this->input->post('password');
if ($id == $this->id && $password == $this->password) {
$this->session->set_userdata('auth', TRUE);
if ($this->session->has_userdata('redirect_to')) {
redirect($this->session->redirect_to);
exit;
}
// no redirect specified, display message
$data['msg'] = 'Logged in.';
} else {
$data['msg'] = 'Wrong credentials.';
}
}
$this->load->view('login', $data);
}
public function hidden_content_1() {
if (!$this->session->has_userdata('auth')) {
$this->session->set_userdata('redirect_to', uri_string());
redirect('auth/login_page');
}
echo 'If you are seeing this you are logged in!';
}
}