Advertisement
Guest User

LoginClass

a guest
Apr 7th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.67 KB | None | 0 0
  1. <?php
  2.  
  3.     class LoginManager {
  4.        
  5.         var $PDOObject;
  6.         var $AccountTable;
  7.         var $UserField;
  8.         var $PasswordField;
  9.         var $User;
  10.         var $Credentials;
  11.         var $DBLoginReturn;
  12.         var $ExistingUser;
  13.        
  14.         // Create PDO Object, Assign AccountTable, User Field, Password Field
  15.         function SetDB($sHost, $sDatabase, $sUsername, $sPassword, $sAccountTable, $sUserField, $sPasswordField) {
  16.             $this->PDOObject = new PDO("mysql:host=$sHost;dbname=$sDatabase", $sUsername, $sPassword);
  17.             $this->AccountTable = $sAccountTable;
  18.             $this->UserField = $sUserField;
  19.             $this->PasswordField = $sPasswordField;
  20.         }
  21.        
  22.         // Set Username/Email
  23.         function SetUser($sUser) {
  24.             $this->User = $sUser;
  25.         }
  26.        
  27.         //
  28.         function SetCredentials($sCredentials) {
  29.             $this->Credentials = $sCredentials;
  30.         }
  31.        
  32.         // Verify Encrypted Credentials
  33.         function VerifyCredentials($sPlainTextPass) {
  34.             $this->PlainCredentials = $sPlainTextPass;
  35.            
  36.             if(password_verify($this->PlainCredentials, $this->DBLoginReturn[0][$this->PasswordField])) {
  37.                 return true;
  38.             } else {
  39.                 return false;
  40.             }
  41.         }
  42.        
  43.         // Try Login
  44.         function GetLoginDB() {
  45.             try {
  46.                 $sDBConn = $this->PDOObject->prepare("SELECT $this->UserField, $this->PasswordField FROM $this->AccountTable WHERE $this->UserField = :loginuser");
  47.                 $sDBConn->execute(array(
  48.                     "loginuser" => $this->User
  49.                     ));
  50.                 $this->DBLoginReturn = $sDBConn->fetchAll(PDO::FETCH_ASSOC);
  51.            
  52.             } catch(Exception $loginerror) {
  53.                 return var_dump($loginerror);
  54.             }
  55.         }
  56.        
  57.         // Set Session Variables
  58.         function SetSessionVariables() {
  59.             $_SESSION['loggedin'] = true;
  60.             $_SESSION['user'] = $this->User;
  61.         }
  62.        
  63.         function CheckUserExists($sUser) {
  64.             $this->ExistingUser = $sUser;
  65.             $sDBConn = $this->PDOObject->prepare("SELECT $this->UserField FROM $this->AccountTable WHERE $this->UserField = :username");
  66.             $sDBConn->execute(array(
  67.                 "username" => $this->User
  68.             ));
  69.            
  70.             if($sDBConn->rowCount() >= 1) {
  71.                 return true;
  72.             } else {
  73.                 return false;
  74.             }
  75.         }
  76.        
  77.         // Register User
  78.         function RegisterUser($sFirstname, $sLastname, $sTime) {
  79.  
  80.             try {
  81.             $sDBConn = $this->PDOObject->prepare("INSERT INTO $this->AccountTable (username, password, firstname, lastname, epoch) VALUES (:username, :password, :firstname, :lastname, :epoch)");
  82.             $sDBConn->execute(array(
  83.                 "username" => $this->User,
  84.                 "password" => $this->Credentials,
  85.                 "firstname" => $sFirstname,
  86.                 "lastname" => $sLastname,
  87.                 "epoch" => $sTime
  88.             ));
  89.             } catch(Exception $registererror) {
  90.                 return var_dump($registererror);
  91.             }
  92.         }
  93.        
  94.         function EncryptPass($sPassword) {
  95.            
  96.             $sOptions = [
  97.                 'cost' => 12,
  98.             ];
  99.            
  100.             $sHash = password_hash($sPassword, PASSWORD_BCRYPT, $sOptions);
  101.            
  102.             return $sHash;
  103.         }
  104.     }
  105.  
  106. ?>
  107.  
  108. Example Register Form
  109.  
  110. <?php
  111.  
  112. require_once('loginmanager.php');
  113.  
  114. if(isset($_POST['email']) && isset($_POST['password']) && isset($_POST['firstname']) && isset($_POST['lastname'])) {
  115.  
  116. // Declare Login Manager Class
  117. $vManager = new LoginManager;
  118.  
  119. // New Database PDO Object
  120. $sPDO = $vManager->SetDB('localhost', 'users', 'sanquin', 'alloy', 'accounts', 'Username', 'Password');
  121.  
  122. // ##### Register Time #####
  123.  
  124. // Set User
  125. $vManager->SetUser($_POST['email']);
  126.  
  127. // Encrypt Pass and Get a return
  128. $vEncryptedPass = $vManager->EncryptPass($_POST['password']);
  129.  
  130. // Set Credentials
  131. $vManager->SetCredentials($vEncryptedPass);
  132.  
  133. // Register User Firstname, Lastname, Time.
  134. $vManager->RegisterUser($_POST['firstname'], $_POST['lastname'], time());
  135.  
  136. echo "user registered";
  137. } else {
  138.     echo "Not All Forms Filled In";
  139. }
  140. ?>
  141.  
  142. <form action="register.php" method="POST">
  143.     <input type="text" name="email" placeholder="Email..."/><br>
  144.     <input type="text" name="password" placeholder="Password..."/><br>
  145.     <input type="text" name="firstname" placeholder="Firstname..."/><br>
  146.     <input type="text" name="lastname" placeholder="Lastname..."/><br>
  147.     <input type="submit" value="Submit"/>
  148. </form>
  149.  
  150. Example Login Form
  151.  
  152. <?php
  153. session_start();
  154.  
  155. require_once('loginmanager.php');
  156.  
  157. if(isset($_POST['email']) && isset($_POST['password'])) {
  158.  
  159. // Declare Login Manager Class
  160. $vManager = new LoginManager;
  161.  
  162. // New Database PDO Object
  163. $sPDO = $vManager->SetDB('localhost', 'userdb', 'sanquin', 'test', 'accounts', 'username', 'password');
  164.  
  165. // ##### Login Time #####
  166. $vManager->SetUser($_POST['email']);
  167.  
  168. $vManager->GetLoginDB();
  169.  
  170. // Password will be the post of their pass
  171. if($vManager->VerifyCredentials($_POST['password'])) {
  172.     $vManager->SetSessionVariables();
  173.     die("<script>location.href = './loggedin.php'</script>");
  174. }
  175.  
  176. } else {
  177.     echo "Login Failed";
  178. }
  179. ?>
  180.  
  181. <form action="login.php" method="POST">
  182.     <input type="text" name="email" placeholder="Email..."/><br>
  183.     <input type="text" name="password" placeholder="Password..."/><br>
  184.     <input type="submit" value="Submit"/>
  185. </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement