Chuyên thiet ke website ban hang da cap cực mạnh - . máy bơm định lượng hóa chất máy bơm nước
  1. RULE CỦA DIỄN ĐÀN: Bất cứ ai post bài sai chuyên mục đều banner, xóa tất cả các bài viết, xóa tất cả các account cùng ip .

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

Discussion in 'Rao vặt thiết kế website' started by tiendat3791, Dec 24, 2016.

  1. tiendat3791

    tiendat3791 New Member

    Joined:
    Nov 25, 2016
    Messages:
    26
    Likes Received:
    0
    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!

    Xây dựng chức năng đăng nhập
    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.

    Đăng xuất trong Codeigniter như thế nào?
    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
     

Share This Page