• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

CodeIgniter 15- Thực hành đăng nhập/đăng xuất

tiendat3791

New Member
Trong bài viết trước Công ty thiet ke website OTVINA đã cùng các bạn tìm hiểu bài đầu tiên trong loạt bài Thực hành của Series Tự học Codeigniter đó là bài viết Codeigniter 14. Thực hành đăng ký thành viên bằng Codeigniter.
Trong bài viết hôm nay Công ty thiet ke web OTVINA sẽ tiếp tục gửi tới các bạn bài viết số 15 về chủ đề: Thực hành Đăng nhập/đăng xuất thành viên trong Codeigniter - Một trong những ứng dụng rất thực tế và thường xuyên gặp trong thiết kế website như: Thiet ke web ban hang, Thiet ke web nha hang, Thiết kế web Công ty,...
Bây giờ, hãy cùng Thiết kế web OTVINA bắt đầu nội dung chính nào!
[h=2]Xây dựng chức năng đăng nhập[/h]Tôi sẽ bắt đầu với form đăng nhập bằng HTML để chuẩn bị việc xây dựng chức năng đăng nhập khi thiết kế website:
- Xây dựng views: application/themes/login.php
<div class="notice"><?php echo $this->session->flashdata('notice');?></div>
<form action="<?php base_url()?>user/login" method="post">
<p>Tài khoản <input type="text" name="username" value="<?php echo set_value('username');?>" /></p>
<p class="error"><?php echo form_error('username');?></p>
<p>Mật khẩu <input type="password" name="password" /></p>
<p class="error"><?php echo form_error('password');?></p>
<input type="submit" name="submit" value="Đăng nhập" />
</form>- Xây dựng controller: application/user.php
Controller có chức năng lấy Tài khoản và mật khẩu để kiểm tra trong CSDL, nếu có 1 dòng đúng nghĩa là thông tin đăng nhập đã đúng. Nếu dữ liệu đúng sẽ Tạo session và đưa vào trang admin. Nếu dữ liệu sai sẽ khởi tạo 1 Flashdata và đưa người dùng quay lại trang đăng nhập. Các bạn có thể xem lại kiến thức Flashdata trong Codeigniter nếu quên nhé!
<?php
if(!defined('BASEPATH')) exit('Không có quyền truy cập');
class User extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->library(array('database','session','form_validation'));
$this->load->helper('url');
$this-load->model('user_model');
}
public function login(){

$this->form_validation->set_rules('username','Tài khoản','required|xss_clean');
$this->form_validation->set_rules('password','Mật khẩu','required|xss_clean');
if($this->form_validation->run()){
$username=$this->input->post('username');
$password=$this->input->post('password');
$result=$this->user_model->check_login($username,$password);
if($result==1){
$userdata=array(
'username'=>$username,
'is_member'=>true
);
$this->session->set_userdata('userdata',$userdata);
redirect('/admin/');
}
else{
$this->session->set_flashdata('notice','Đăng nhập không thành công, vui lòng kiểm tra lại tài khoản hoặc mật khẩu');
}

}
else {
$this->load->view('themes/login');//Dữ liệu k hợp lệ thì lại load form login ra
}

}
}
?>- Xây dựng model: application/model/user_model.php
Trong phần controller trên chúng ta có gọi 1 phương thức là check_login() có chức năng kiểm tra đăng nhập có hợp lệ hay không và trả về số dòng của kết quả, để tiếp tục kiểm tra ở controller:
<?php
class User_model extends CI_Model{
public function check_login($username,$password){
$this->db->where('username',$username);
$this->db->where('password',$password);
$query= $this->db->get('users');
return $query->num_row(); //trả về số dòng của kết quả truy vấn
}
}
?>Như vậy là chúng ta đã hoàn thành việc Xây dựng chức năng Đăng nhập trong Codeigniter, đây là 1 trong những phần giúp các bạn xây dựng được ứng dụng đăng nhập thành viên hoặc trang quản trị trong quá trình xây dựng/thiết kế web cho riêng mình.
[h=2]Đăng xuất trong Codeigniter như thế nào?[/h]Học tới Codeigniter chắc chắn các bạn cũng đã học về PHP căn bản và hiểu được việc xây dựng chức năng Đăng nhập/đăng xuất, vậy trong Codeigniter tương tự như vậy, để đăng xuất tài khoản chúng ta chỉ cần xóa session đi là xử lý xong.
Bây giờ công ty thiết kế website OTVINA sẽ viết thêm 1 phương thức logout trong controller nữa và chúng ta sẽ có 1 controller hoàn chỉnh như sau:
<?php
if(!defined('BASEPATH')) exit('Không có quyền truy cập');
class User extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->library(array('database','session','form_validation'));
$this->load->helper('url');
$this-load->model('user_model');
}
public function login(){

$this->form_validation->set_rules('username','Tài khoản','required|xss_clean');
$this->form_validation->set_rules('password','Mật khẩu','required|xss_clean');
if($this->form_validation->run()){
$username=$this->input->post('username');
$password=$this->input->post('password');
$result=$this->user_model->check_login($username,$password);
if($result==1){
$userdata=array(
'username'=>$username,
'is_member'=>true
);
$this->session->set_userdata('userdata',$userdata);
redirect('/admin/');
}
else{
$this->session->set_flashdata('notice','Đăng nhập không thành công, vui lòng kiểm tra lại tài khoản hoặc mật khẩu');
}

}
else {
$this->load->view('themes/login');//Dữ liệu k hợp lệ thì lại load form login ra
}

}
public function logout(){
$this->session->unset_userdata('userdata');//xóa session userdata vừa tạo ở trên
redirect('user/login');//chuyển hướng về trang đăng nhập
}
}
?>Vậy là nội dung bài viết Xây dựng ứng dụng Đăng nhập/Đăng xuất của chúng ta đã xong. Công ty thiết kế website OTVINA hy vọng bài viết này sẽ hữu ích với các bạn đang học Codeigniter! Chúc các bạn học tập tốt!

Nguồn : CodeIgniter 15- Thực hành đăng nhập/đăng xuất
 

Facebook Comments

New posts New threads New resources

Back
Top