时间:2024-10-25 来源:网络 人气:
CodeIgniter 是一个流行的 PHP 开发框架,以其简洁、高效和易于使用而著称。在开发过程中,用户系统是不可或缺的一部分。本文将详细介绍如何使用 CodeIgniter 框架来构建一个功能完善、安全可靠的用户系统。
在开始开发之前,请确保您的开发环境已经安装了以下软件:
PHP 5.6 或更高版本
MySQL 5.5 或更高版本
CodeIgniter 框架
用户系统需要存储用户信息,因此我们需要设计一个数据库表来存储这些信息。以下是一个简单的用户表结构示例:
```sql
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(100) NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```php
public function __construct() {
parent::__construct();
$this->load->database();
}
public function register($username, $password, $email) {
$data = array(
'username' => $username,
'password' => password_hash($password, PASSWORD_DEFAULT),
'email' => $email,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
);
return $this->db->insert('users', $data);
}
public function login($username, $password) {
$this->db->where('username', $username);
$user = $this->db->get('users')->row();
if ($user && password_verify($password, $user->password)) {
return $user;
}
return false;
}
控制器(Controller)负责处理用户请求,并调用相应的模型方法。以下是一个简单的用户控制器示例:
```php
class User_controller extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function register() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required|trim|is_unique[users.username]');
$this->form_validation->set_rules('password', 'Password', 'required|trim|min_length[8]');
$this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[users.email]');
if ($this->form_validation->run() == false) {
$this->load->view('register');
} else {
$username = $this->input->post('username');
$password = $this->input->post('password');
$email = $this->input->post('email');
if ($result) {
redirect('user/login');
} else {
$this->session->set_flashdata('error', 'Registration failed!');
redirect('user/register');
}
}
}
public function login() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required|trim');
$this->form_validation->set_rules('password', 'Password', 'required|trim');
if ($this->form_validation->run() == false) {
$this->load->view('login');
} else {
$username = $this->input->post('username');
$password = $this->input->post('password');
$user = $this->User