Login And Logout Code In Codeigniter With Example


This tutorial login and logout code in Codeigniter. You have learned how to log in and logout code in Codeigniter with how to set session in Codeigniter destroy session/logout.

We would you how to create a login and logout system in Codeigniter. You will learn in this tutorial how to Codeigniter login code and logout into Codeigniter

Every website wants to login to our users for some activity. Without login, users can not do something on any website, because they want to login to our users on the website.

Login And Logout Code In Codeigniter With Example - PhpCodingstuff
Download Codeigniter Project

In this step, we will download the latest version of Codeigniter we learn codeigniter login code, Go to this link  https://codeigniter.com/download Download Codeigniter download the fresh setup of Codeigniter and unzip the setup in your local system xampp/htdocs/. And change the download folder name “signup_login”

Basic Configurations

This step set some basic configuration on the config.php file, so let’s go to application/config/config.php and open this file on the text editor.

Set Base URL like this

$config['base_url'] = 'http://localhost/signup_login';
Create Database With Table

In this step, we need to create the database name signup_login, so let’s open your PHPMyAdmin and create the database with the name signup_login. After successfully create a database, you can use the below SQL query for creating a table in your database.

CREATE TABLE IF NOT EXISTS users(
    id int(10) unsigned NOT NULL auto_increment,
    user_name varchar(150) collate latin1_general_ci NOT NULL,
    password varchar(100) collate latin1_general_ci NOT NULL,
    first_name varchar(45) collate latin1_general_ci NOT NULL,
    last_name varchar(45) collate latin1_general_ci NOT NULL,
    PRIMARY KEY  (id)
  );
Setup Database Credentials

In this step, We need to connect our project to the database. we need to go application/config/ and open database.php file in the text editor. After opening the file in the text editor, We need to set up a database credential in this file like below. we learn how to set session in Codeigniter.

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'signup_login',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);
Create Controller

Now we need to create a controller name Auth.php. In this controller, we will create some method/function. We will build some of the methods like :

  • Index() – This is used to showing a login form Codeigniter login code
  • post_login() – This function authenticates user credentials and starts moving forward
  • logout() – It is used to destroy the built-in session
  • dashboard() – After successfully logging in, the user can redirect this method
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
  
class Auth extends CI_Controller {
  
     public function __construct()
        {
         parent::__construct();
         $this->load->model('Form_model');
             $this->load->library(array('form_validation','session'));
                 $this->load->helper(array('url','html','form'));
                 $this->user_id = $this->session->userdata('user_id');
        }
  
  
    public function index()
    {
     $this->load->view('login');
    }
    public function post_login()
        {
 
        $this->form_validation->set_rules('email', 'Email', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');
 
        $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
        $this->form_validation->set_message('required', 'Enter %s');
 
        if ($this->form_validation->run() === FALSE)
        {  
            $this->load->view('login');
        }
        else
        {   
            $data = array(
               'email' => $this->input->post('email'),
               'password' => md5($this->input->post('password')),
 
             );
   
            $check = $this->Form_model->auth_check($data);
            
            if($check != false){
 
                 $user = array(
                 'user_id' => $check->id,
                 'email' => $check->email,
                 'first_name' => $check->first_name,
                 'last_name' => $check->last_name
                );
  
            $this->session->set_userdata($user);
 
             redirect( base_url('dashboard') ); 
            }
 
           $this->load->view('login');
        }
         
    }
    public function logout(){
    $this->session->sess_destroy();
    redirect(base_url('auth'));
   }    
   public function dashboard(){
       if(empty($this->user_id)){
        redirect(base_url('auth'));
      }
       $this->load->view('dashboard');
    }
}
Create Model

Go to models and create Form_model.php, We need to create a Form_model.php file for checking the credential from the database. This file contains business logic for login. So put the below code inside this file.

<?php
class Form_model extends CI_Model {
  
    public function __construct()
    {
        $this->load->database();
    }
     
    public function auth_check($data)
    {
        $query = $this->db->get_where('users', $data);
        if($query){   
         return $query->row();
        }
        return false;
    }
     
}
Create Views

Now we need to create views for showing login form also showing dashboard. So now create the first view name login.php and put the below HTML in this file we create login and logout code in codeigniter.

<html>
   <head>
      <link rel="stylesheet" href="css/style.css">
      <link href="https://fonts.googleapis.com/css?family=Ubuntu" rel="stylesheet">
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
      <title>login and logout code in codeigniter - phpcodingstuff.com</title>
   </head>
   <style type="text/css">
      body {
      background-color: #F3EBF6;
      font-family: 'Ubuntu', sans-serif;
      }
      div.error {
      margin-bottom: 15px;
      margin-top: -6px;
      margin-left: 58px;
      color: red;
      }
      .main {
      background-color: #FFFFFF;
      width: 400px;
      height: 400px;
      margin: 7em auto;
      border-radius: 1.5em;
      box-shadow: 0px 11px 35px 2px rgba(0, 0, 0, 0.14);
      }
      .sign {
      padding-top: 40px;
      color: #8C55AA;
      font-family: 'Ubuntu', sans-serif;
      font-weight: bold;
      font-size: 23px;
      }
      .uninput {
      width: 76%;
      color: rgb(38, 50, 56);
      font-weight: 700;
      font-size: 14px;
      letter-spacing: 1px;
      background: rgba(136, 126, 126, 0.04);
      padding: 10px 20px;
      border: none;
      border-radius: 20px;
      outline: none;
      box-sizing: border-box;
      border: 2px solid rgba(0, 0, 0, 0.02);
      margin-bottom: 50px;
      margin-left: 46px;
      text-align: center;
      margin-bottom: 27px;
      font-family: 'Ubuntu', sans-serif;
      }
      form.form1 {
      padding-top: 40px;
      }
      .pass {
      width: 76%;
      color: rgb(38, 50, 56);
      font-weight: 700;
      font-size: 14px;
      letter-spacing: 1px;
      background: rgba(136, 126, 126, 0.04);
      padding: 10px 20px;
      border: none;
      border-radius: 20px;
      outline: none;
      box-sizing: border-box;
      border: 2px solid rgba(0, 0, 0, 0.02);
      margin-bottom: 50px;
      margin-left: 46px;
      text-align: center;
      margin-bottom: 27px;
      font-family: 'Ubuntu', sans-serif;
      }
      .uninput:focus, .pass:focus {
      border: 2px solid rgba(0, 0, 0, 0.18) !important;
      }
      .submit {
      cursor: pointer;
      border-radius: 5em;
      color: #fff;
      background: linear-gradient(to right, #9C27B0, #E040FB);
      border: 0;
      padding-left: 40px;
      padding-right: 40px;
      padding-bottom: 10px;
      padding-top: 10px;
      font-family: 'Ubuntu', sans-serif;
      margin-left: 35%;
      font-size: 13px;
      box-shadow: 0 0 20px 1px rgba(0, 0, 0, 0.04);
      }
      .forgot {
      text-shadow: 0px 0px 3px rgba(117, 117, 117, 0.12);
      color: #E1BEE7;
      padding-top: 15px;
      }
      button {
      text-shadow: 0px 0px 3px rgba(167, 167, 167, 0.12);
      color: #E1BEE7;
      text-decoration: none
      }
      @media (max-width: 600px) {
      .main {
      border-radius: 0px;
      }
   </style>
   <body>
      <div class="main">
         <p class="sign" align="center">Sign in</p>
         <form action="<?php echo base_url('auth/post_login') ?>" method="post" accept-charset="utf-8">
            <input class="uninput " type="text" align="center" name="email" placeholder="email">
            <?php echo form_error('email'); ?> 
            <input class="pass" type="password" align="center" name="password" placeholder="Password">
            <?php echo form_error('password'); ?> 
            <button type="submit" align="center" class="submit">Sign in</button>
         </form>
      </div>
   </body>
</html>

Now we need to create dashboard.php, After login user can redirect this page. So create dashboard.php and put the below HTML here.

<!DOCTYPE html>
<html lang="en">
   <head>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
   </head>
   <body>
      <div class="container">
         <div class="row">
            <div class="col-md-6">
               <div class="row">
                  <div class="col-md-12">
                     <h3>Login Successful <?=$this->session->userdata('first_name')?>  <?=$this->session->userdata('last_name')?></h3>
                     <a href="<?= base_url();?>auth/logout">Logout</a>                                               
                  </div>
               </div>
            </div>
         </div>
      </div>
   </body>
</html>
Conclusion

In this login and logout code in the Codeigniter tutorial – we have created a login and logout form with its fully functionality. We have certified users using authentication. After successfully authenticating, the users redirect to the dashboard page. covered this tutorial on how to set session in codeigniter and session destroy in Codeigniter.


I hope it can help you...

Leave a Reply

Your privacy will not be published. Required fields are marked *

We'll share your Website Only Trusted.!!