Я создаю свой первый процесс входа в систему в CodeIgniter.
Я использую библиотеку simpleloginsecure для реального управления сессиями, но я сам написал контроллер и модель, и я надеялся, что вы сможете увидеть в ней какие-либо недостатки.
Мой класс User_model
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User_model extends CI_Model {
public function __construct() {
parent::__construct();
}
function login($email, $password) {
if($this->simpleloginsecure->login($email, $password)) {
return true;
}
return false;
}
}
?>
Класс My User Controller
if(!defined('BASEPATH')) exit('No Direct script access allowed');
Class User extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('user_model');
}
public function index() {
if($this->session->userdata('logged_in')) {
redirect('/user/dashboard/', 'location');
} else {
$data['message'] = '<p class="error">You need to be logged in to view the administration area</p>';
$this->load->view('user/login', $data);
}
}
public function dashboard() {
if($this->session->userdata('logged_in')) {
$data['title'] = 'Welcome';
$this->load->view('user/dashboard', $data);
} else {
$data['message'] = '<p class="error">You need to be logged in to view the administration area</p>';
redirect('/user/login/', 'location');
}
}
public function login() {
if($this->session->userdata('logged_in')) {
redirect('/user/dashboard/', 'location');
}
$this->form_validation->set_rules('email', 'E-mail', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'Wachtwoord', 'trim|required|min_length[4]|max_length[32]');
if($this->form_validation->run() == FALSE) {
$this->index();
} else {
if($this->user_model->login($this->input->post('email'), $this->input->post('password'))) {
redirect('/user/dashboard/', 'location');
} else {
$this->index();
}
}
}
public function logout() {
$this->simpleloginsecure->logout();
redirect('/user/login/', 'location');
}
}