Advertisement
PaulLT

login.php

Jun 1st, 2013
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.28 KB | None | 0 0
  1. <?php
  2. class login{
  3.     function login($name,$pwd,$con,$sessid){
  4.         try{
  5.             $sql = $con->prepare('SELECT * FROM users WHERE name=:name OR email=:name');
  6.             $sql->bindValue(':name', $name);
  7.             $result = $sql->fetch();
  8.         }catch(PDOException $ex){
  9.             echo 'Error! '.$ex->getMessage();
  10.         }
  11.  
  12.         // check password
  13.         if(password_verify($pwd,$result['password'])){
  14.             //calculate when the session should expire
  15.             $expires = time() + (60 * SESSION_LENGTH);
  16.             //log in
  17.             $sql = $con->prepare("INSERT INTO `active_users` (`user`,`session_id`,`expires`) VALUES (`:user`,`:id`,`:expires`)");
  18.             $sql->bindValue(':user', $result['id']);
  19.             $sql->bindValue(':id', $sessid);
  20.             $sql->bindValue(':expires', $expires);
  21.             $sql->execute();
  22.             if($result['side']){
  23.                 $side = 'heaven';
  24.             }else{
  25.                 $side = 'hell';
  26.             }
  27.             // redirect to game
  28.             header('Location: /'.$side);
  29.         }else{
  30.             //password incorrect
  31.             die("INCORRECT PASSWORD YOU BASTARD!");
  32.         }
  33.     }
  34.     function check($sessid,$con){
  35.  
  36.         // delete old users
  37.         $query = $con->prepare('DELETE * FROM `active_users` WHERE `expires`<=`:time`');
  38.         $query->bindValue(':time', time());
  39.         $query->execute();
  40.  
  41.         // find current user in active users
  42.         $sql = $con->prepare('SELECT * FROM `active_users` WHERE `session_id` = `:sessid`');
  43.         $sql->bindValue(':sessid', $sessid);
  44.         $res = $sql->fetch();
  45.  
  46.         if($res->rowCount()){
  47.             // is logged in
  48.             return true;
  49.         }else{
  50.             //is not logged it (or timed out)
  51.             header('location: ' . HOST);
  52.             return false;
  53.         }
  54.     }
  55.     // extend user log in session, so he can use it longer (the default timeout from current time)
  56.     function extendSession(){
  57.         // connect to database
  58.         $con = new PDO('mysql:host='.DB_HOST.';dbname='.DB_DB.';charset=utf8_general_ci', DB_USERNAME, DB_PASSWORD, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
  59.         $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  60.  
  61.         // calculate new timeout
  62.         $newexp = time() + (60 * SESSION_LENGTH);
  63.  
  64.         // insert new timeout: prepare
  65.         $myquery = $con->prepare('UPDATE `active_users` SET `expires`=`:expires` WHERE `session_id`=`:id`');
  66.         // bind values
  67.         $myquery->bindValue(':expires',$newexp);
  68.         $myquery->bindValue(':id', session_id());
  69.         // execute
  70.         $myquery->execute();
  71.     }
  72. }
  73. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement