Sunday, April 17, 2016

Session Class for any PHP Project

Session.php
<?php
/**
*Session Class
**/
class Session{
 public static function init(){
  if (version_compare(phpversion(), '5.4.0', '<')) {
        if (session_id() == '') {
            session_start();
        }
    } else {
        if (session_status() == PHP_SESSION_NONE) {
            session_start();
        }
    }
 }

 public static function set($key, $val){
  $_SESSION[$key] = $val;
 }

 public static function get($key){
  if (isset($_SESSION[$key])) {
   return $_SESSION[$key];
  } else {
   return false;
  }
 }

 public static function checkSession(){
  self::init();
  if (self::get("login")== false) {
   self::destroy();
   header("Location:login.php");
  }
 }

 public static function checkLogin(){
  self::init();
  if (self::get("login")== true) {
   header("Location:index.php");
  }
 }

 public static function destroy(){
  session_destroy();
  header("Location:login.php");
 }
}
?>
Use for Login Controller:
<?php
/**
* Login Controller
*/
class Login extends DController{
 
 public function __construct(){
  parent::__construct();
 }

 public function Index(){
  $this->login();
 }

 public function login(){
  Session::init();
  if (Session::get("login") == true) {
   header("Location:".BASE_URL."/Admin");
  }
  $this->load->view("login/login");
 }

 public function loginAuth(){
  $table = "tbl_user";
  $username = $_POST['username'];
  $password = md5($_POST['password']);
  $loginModel = $this->load->model("LoginModel");
  $count = $loginModel->userControl($table, $username, $password);
  if ($count > 0) {
    $result = $loginModel->getUserData($table, $username, $password);
    Session::init();
    Session::set("login", true);
    Session::set("username", $result[0]['username']);
    Session::set("userId", $result[0]['id']);
    Session::set("level", $result[0]['level']);
          header("Location:".BASE_URL."/Admin");
  } else {
   header("Location:".BASE_URL."/Login");
  } 
 }

 public function logout(){
  Session::init();
  Session::destroy();
  header("Location:".BASE_URL."/Login");
 }
}
?>
Use for Sample Login Page:
<?php 
 include '../lib/Session.php';
 Session::init();
?>

<?php include '../config/config.php'; ?>
<?php include '../lib/Database.php'; ?>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>Login</title>
<link rel="stylesheet" type="text/css" href="css/stylelogin.css"/>
</head>
<body>
<div class="container">
<section id="content">
<?php
 $db = new Database();

 if($_SERVER["REQUEST_METHOD"] == "POST"){
 $username = mysqli_real_escape_string($db->link, $username);
 $password = mysqli_real_escape_string($db->link, $password);

    $query = "SELECT * FROM user WHERE username='$username' 
     and password='$password'";
    $result = $db->select($query);
    if ($result != false) {
        $value = $result->fetch_assoc(); 
        Session::set("login", true);
        Session::set("username", $value['username']);
        Session::set("userId", $value['id']);
        header("Location: index.php");
       //echo "<script>window.location = 'index.php';</script>";
    } else { echo "<span style='color:red;font-size:18px;'>Username 
   or Password Not Matched !!</span>";}
 }
?>

 <form action="login.php" method="post">
  <h1>Admin Login</h1>
  <div>
   <input type="text" placeholder="Username" required="1" 
     name="username" />
  </div>
  <div>
   <input type="password" placeholder="Password" required="1" 
    name="password" />
  </div>
  <div>
   <input type="submit" value="Log in" />
  </div>
 </form><!-- form -->


 <div class="button">
  <a href="http://www.trainingwithliveproject.com" 
  target="_blank">Training with live project</a>
 </div><!-- button -->
 </section><!-- content -->
</div><!-- container -->
</body>
</html>

How to practice tutorials…

  • Make a team with your friends (Member should be 4/5).
  • Start to practice one tutorial series along with them.
  • Don’t try to collect source code. Type the code while watching the tutorial.
  • If you face any problem, post the question in the Forum with the error codes.
  • Share that question Link with your friends or team members to solve quickly.
  • Discuss the problem in the Forum along with others - Video Guidelines.