• 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

Similar threads
Thread starter Title Forum Replies Date
T CodeIgniter 16- Quản lý cookie trong CI Mã nguồn web 0
T CodeIgniter 7- Tìm hiểu Helpers và Libraries là gì? Mã nguồn web 0
T CodeIgniter 4- Controller trong CodeIgniter Mã nguồn web 0
T CodeIgniter 18- Helper language, đa ngôn ngữ trong CI Mã nguồn web 0
T CodeIgniter 9- Form validation trong Codeigniter Mã nguồn web 0
T CodeIgniter 10- Thư viện upload file PHP 1
T CodeIgniter 2 - Hướng dẫn cài đặt CodeIgniter PHP 2
T Codeigniter 19- Helper date trong Codeigniter Tin tức CNTT 1
Admin Share code tin tức bằng codeigniter Mã nguồn web 0
katy Android MobiCA - Dịch vụ xác thực và cung cấp chứng thư số, chữ ký số Điện thoại di động 4
T Tìm hiểu Docker là gì và liên quan gì tới thực phẩm chế biến Tin tức CNTT 0
phannguyentienduc Trải nghiệm kỳ thi thực tế Nâng cao sự tự tin và kĩ năng làm bài thi IELTS Góc thành viên học tập 0
T Blockchain giúp truy xuất nguồn gốc thực phẩm ? Tin tức CNTT 0
T Tại sao Blockchain khó thực hiện đến vậy ? Tin tức CNTT 0
I Suface laptop mới nhất sở hữu lớp áo vảo Alcantara có thực sự tốt? Máy tính 0
N Thỏa sức nhận ưu đãi ẩm thực và vui chơi từ mConnect của MobiFone Thông tin các mạng di động 2
N Học lập trình Android trên dự án thực tế cùng Chuyên gia giàu Kinh Nghiệm! Kiến thức lập trình 0
tunglamed Hô biến cơ hội hiếm có khó tìm trở nên siêu thực chỉ có ở mConnect! Thông tin các mạng di động 8
T Tham gia khuyến mại “Ẩm thực bốn mùa” cùng Mobifone nhận ngay giải thưởng 100 triệu đồng. Thông tin các mạng di động 4
tunglamed Ẩm thực bốn mùa nhận giải thưởng trăm triệu Thông tin các mạng di động 11
T Hỏi Xin cách hướng dẫn xác thực đơn hàng khi đăng ký host miễn phí tại hostinger.vn Hỏi đáp về domain & hosting 1
M Hướng dẫn (MBF KV2) Thực hiện chương trình cám ơn KH cá nhân sử dụng cước cao - lâu năm 2015 Thông tin các mạng di động 6
X Thảo luận Xin 1 ccv cùi thực tập Hacking 1
Whisky GTA V và những địa điểm dựa trên đời thực Trò chơi 0
C Xin Cơm chay giao tận nơi , thực đơn được thay đỗi mỗi ngày, vệ sinh, an toàn thực phẫm JavaScript / Ajax 0
Q Thực phẩm chức nãng MECOOK . HẠ MỠ MÁU - HẠ MỠ GAN Trò chuyện linh tinh 0
K Dạy kế toán thực tế - bao giỏi nghề - trọn gói 1.000.000 vnd Trò chuyện linh tinh 0
C Xin Cơm chay giao tận nơi , thực đơn được thay đỗi mỗi ngày, vệ sinh, an toàn thực phẫm JSP 1
B Thủ thuật Khóa nghiệp vụ Đấu thầu qua mạng (thực hành trên máy) Máy tính 0
Admin Thực hiện dự án ống phóng bùi nhùi bắt “quái xế” Tin khoa học, sản phẩm mới 0
I Rô bốt mini Kiboro sẽ thực hiện chuyến du hành lên trạm ISS vào ngày 4/8 Tin tức CNTT 0
Admin Chưa thể thực hiện tử hình bằng thuốc độc từ ngày 27/6 Tin tức, sự kiện thường ngày 0
Admin Share video tut reg domain quốc tế free bằng ccv thực vật Tut, tool, mmo 0
KhangSkull Loạt ảnh thực tế Vaio Pro 13, đối thủ đáng gờm của Macbook Air Máy tính 0
Admin Exciter 2013 RC - Hình ảnh thực tế, vẫn là một chiếc xe đẹp Tin tức, sự kiện thường ngày 0
V [Trò chuyện cuộc sống] Tết Hàn thực trong tôi! Sách, truyện, tài liệu 0
Admin Đỗ đại học vẫn phải thực hiện nghĩa vụ quân sự Tin tức, sự kiện thường ngày 1
G Android đang thực sự đè bẹp iPhone? Tin tức, giới thiệu về ĐTDĐ 1
B Xin mọi người 1 con ccv để thực hành Hacking 4
S Romney: Nước Mỹ thực sự cần thay đổi Tin tức, sự kiện thường ngày 0
S Thực hư người phụ nữ đẻ ra ngựa Thơ, báo, tạp chí 0
S Rau “bội thực” thuốc bảo vệ thực vật Tin tức, sự kiện thường ngày 0
Admin Thực hư thông tin người phụ nữ đẻ ra ngựa Tin sock, độc, lạ 0
S Amip ăn não người: Thực sự đáng sợ? Tin tức, sự kiện thường ngày 0
S Tàu Curiosity chụp nhật thực trên sao Hỏa Tin tức, sự kiện thường ngày 0
S Thực hư chuyện chữa vô sinh bằng lá cây Tin tức, sự kiện thường ngày 0
S Triều Tiên đối mặt khủng hoảng lương thực Tin tức, sự kiện thường ngày 0
Admin Thực hiện Port Forwarding cho máy ảo Sử dụng, chia sẻ, hỏi đáp 0
S Thực hư tin đồn cấy trứng đỉa vào thức ăn Tin tức, sự kiện thường ngày 0
S Tam giác Bermuda có thực sự huyền bí? Tin tức, sự kiện thường ngày 0

Similar threads

New posts New threads New resources

Back
Top