Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Validation
- {
- private static $emailValidationRegex = '/^[^s@]+@[^s@]+.[^s@]+/';
- public static function fieldIsEmpty($field)
- {
- return empty($field);
- }
- public static function validateEmail($email)
- {
- return preg_match(self::$emailValidationRegex, $email);
- }
- public static function usernameExists($username)
- {
- if (UsersTable::getUserByUsername($username))
- {
- return true;
- }
- return false;
- }
- public static function emailExists($email)
- {
- if (UsersTable::getUserByEmail($email))
- {
- return true;
- }
- return false;
- }
- public static function redirectUser($validUser)
- {
- if ($validUser)
- {
- header('Location: ../index.php');
- }
- else
- {
- header('Location: ../login-page.php');
- }
- }
- public static function loginValidation($usernameOrEmail, $password)
- {
- $validUser = false;
- if (!self::fieldIsEmpty($usernameOrEmail) && !self::fieldIsEmpty($password))
- {
- $user = null;
- if (self::validateEmail($usernameOrEmail))
- {
- if (self::emailExists($usernameOrEmail))
- {
- $user = UsersTable::getUserByEmail($usernameOrEmail);
- }
- }
- else
- {
- if (self::usernameExists($usernameOrEmail))
- {
- $user = UsersTable::getUserByUsername($usernameOrEmail);
- }
- }
- if ($user !== null)
- {
- if (password_verify($password, $user['password']))
- {
- $validUser = true;
- }
- }
- }
- self::redirectUser($validUser);
- }
- public static function signupValidation($email, $username, $password,
- $passwordConfirmation, $name)
- {
- echo 'Working so far!';
- }
- }
- class UsersTable
- {
- public static function getAllUsers()
- {
- $statement = "SELECT * FROM `users`";
- $query = Database::query($statement);
- if ($query)
- {
- return $query->fetchAll(PDO::FETCH_ASSOC);
- }
- }
- public static function getUserByID($id)
- {
- $statement = "SELECT * FROM `users` WHERE `id` = '$id' "
- . "LIMIT 1";
- $query = Database::query($statement);
- if ($query)
- {
- return $query->fetch(PDO::FETCH_ASSOC);
- }
- }
- public static function getUserByEmail($email)
- {
- $statement = "SELECT * FROM `users` WHERE `email` = '$email' "
- . "LIMIT 1";
- $query = Database::query($statement);
- if ($query)
- {
- return $query->fetch(PDO::FETCH_ASSOC);
- }
- }
- public static function getUserByUsername($username)
- {
- $statement = "SELECT * FROM `users` WHERE `username` = '$username' "
- . "LIMIT 1";
- $query = Database::query($statement);
- if ($query)
- {
- return $query->fetch(PDO::FETCH_ASSOC);
- }
- }
- public static function addUser($name, $email, $username, $password)
- {
- $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
- $statement = "INSERT INTO `users` (`name`, `email`, `username`, "
- . " `password`) VALUES ('$name', '$email', '$username', "
- . "'$hashedPassword')";
- $query = Database::query($statement);
- }
- }
- require_once('../config.php');
- require_once('database.php');
- require_once('users-table.php');
- require_once('validation.php');
- Database::connect();
- Validation::loginValidation($_POST['username-email'], $_POST['password']);
Add Comment
Please, Sign In to add comment