Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class LoginManager {
- var $PDOObject;
- var $AccountTable;
- var $UserField;
- var $PasswordField;
- var $User;
- var $Credentials;
- var $DBLoginReturn;
- var $ExistingUser;
- // Create PDO Object, Assign AccountTable, User Field, Password Field
- function SetDB($sHost, $sDatabase, $sUsername, $sPassword, $sAccountTable, $sUserField, $sPasswordField) {
- $this->PDOObject = new PDO("mysql:host=$sHost;dbname=$sDatabase", $sUsername, $sPassword);
- $this->AccountTable = $sAccountTable;
- $this->UserField = $sUserField;
- $this->PasswordField = $sPasswordField;
- }
- // Set Username/Email
- function SetUser($sUser) {
- $this->User = $sUser;
- }
- //
- function SetCredentials($sCredentials) {
- $this->Credentials = $sCredentials;
- }
- // Verify Encrypted Credentials
- function VerifyCredentials($sPlainTextPass) {
- $this->PlainCredentials = $sPlainTextPass;
- if(password_verify($this->PlainCredentials, $this->DBLoginReturn[0][$this->PasswordField])) {
- return true;
- } else {
- return false;
- }
- }
- // Try Login
- function GetLoginDB() {
- try {
- $sDBConn = $this->PDOObject->prepare("SELECT $this->UserField, $this->PasswordField FROM $this->AccountTable WHERE $this->UserField = :loginuser");
- $sDBConn->execute(array(
- "loginuser" => $this->User
- ));
- $this->DBLoginReturn = $sDBConn->fetchAll(PDO::FETCH_ASSOC);
- } catch(Exception $loginerror) {
- return var_dump($loginerror);
- }
- }
- // Set Session Variables
- function SetSessionVariables() {
- $_SESSION['loggedin'] = true;
- $_SESSION['user'] = $this->User;
- }
- function CheckUserExists($sUser) {
- $this->ExistingUser = $sUser;
- $sDBConn = $this->PDOObject->prepare("SELECT $this->UserField FROM $this->AccountTable WHERE $this->UserField = :username");
- $sDBConn->execute(array(
- "username" => $this->User
- ));
- if($sDBConn->rowCount() >= 1) {
- return true;
- } else {
- return false;
- }
- }
- // Register User
- function RegisterUser($sFirstname, $sLastname, $sTime) {
- try {
- $sDBConn = $this->PDOObject->prepare("INSERT INTO $this->AccountTable (username, password, firstname, lastname, epoch) VALUES (:username, :password, :firstname, :lastname, :epoch)");
- $sDBConn->execute(array(
- "username" => $this->User,
- "password" => $this->Credentials,
- "firstname" => $sFirstname,
- "lastname" => $sLastname,
- "epoch" => $sTime
- ));
- } catch(Exception $registererror) {
- return var_dump($registererror);
- }
- }
- function EncryptPass($sPassword) {
- $sOptions = [
- 'cost' => 12,
- ];
- $sHash = password_hash($sPassword, PASSWORD_BCRYPT, $sOptions);
- return $sHash;
- }
- }
- ?>
- Example Register Form
- <?php
- require_once('loginmanager.php');
- if(isset($_POST['email']) && isset($_POST['password']) && isset($_POST['firstname']) && isset($_POST['lastname'])) {
- // Declare Login Manager Class
- $vManager = new LoginManager;
- // New Database PDO Object
- $sPDO = $vManager->SetDB('localhost', 'users', 'sanquin', 'alloy', 'accounts', 'Username', 'Password');
- // ##### Register Time #####
- // Set User
- $vManager->SetUser($_POST['email']);
- // Encrypt Pass and Get a return
- $vEncryptedPass = $vManager->EncryptPass($_POST['password']);
- // Set Credentials
- $vManager->SetCredentials($vEncryptedPass);
- // Register User Firstname, Lastname, Time.
- $vManager->RegisterUser($_POST['firstname'], $_POST['lastname'], time());
- echo "user registered";
- } else {
- echo "Not All Forms Filled In";
- }
- ?>
- <form action="register.php" method="POST">
- <input type="text" name="email" placeholder="Email..."/><br>
- <input type="text" name="password" placeholder="Password..."/><br>
- <input type="text" name="firstname" placeholder="Firstname..."/><br>
- <input type="text" name="lastname" placeholder="Lastname..."/><br>
- <input type="submit" value="Submit"/>
- </form>
- Example Login Form
- <?php
- session_start();
- require_once('loginmanager.php');
- if(isset($_POST['email']) && isset($_POST['password'])) {
- // Declare Login Manager Class
- $vManager = new LoginManager;
- // New Database PDO Object
- $sPDO = $vManager->SetDB('localhost', 'userdb', 'sanquin', 'test', 'accounts', 'username', 'password');
- // ##### Login Time #####
- $vManager->SetUser($_POST['email']);
- $vManager->GetLoginDB();
- // Password will be the post of their pass
- if($vManager->VerifyCredentials($_POST['password'])) {
- $vManager->SetSessionVariables();
- die("<script>location.href = './loggedin.php'</script>");
- }
- } else {
- echo "Login Failed";
- }
- ?>
- <form action="login.php" method="POST">
- <input type="text" name="email" placeholder="Email..."/><br>
- <input type="text" name="password" placeholder="Password..."/><br>
- <input type="submit" value="Submit"/>
- </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement