Guest User

Untitled

a guest
Sep 24th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. class Validation
  2. {
  3. private static $emailValidationRegex = '/^[^s@]+@[^s@]+.[^s@]+/';
  4.  
  5. public static function fieldIsEmpty($field)
  6. {
  7. return empty($field);
  8. }
  9.  
  10. public static function validateEmail($email)
  11. {
  12. return preg_match(self::$emailValidationRegex, $email);
  13. }
  14.  
  15. public static function usernameExists($username)
  16. {
  17. if (UsersTable::getUserByUsername($username))
  18. {
  19. return true;
  20. }
  21.  
  22. return false;
  23. }
  24.  
  25. public static function emailExists($email)
  26. {
  27. if (UsersTable::getUserByEmail($email))
  28. {
  29. return true;
  30. }
  31.  
  32. return false;
  33. }
  34.  
  35. public static function redirectUser($validUser)
  36. {
  37. if ($validUser)
  38. {
  39. header('Location: ../index.php');
  40. }
  41. else
  42. {
  43. header('Location: ../login-page.php');
  44. }
  45. }
  46.  
  47. public static function loginValidation($usernameOrEmail, $password)
  48. {
  49. $validUser = false;
  50.  
  51. if (!self::fieldIsEmpty($usernameOrEmail) && !self::fieldIsEmpty($password))
  52. {
  53. $user = null;
  54.  
  55. if (self::validateEmail($usernameOrEmail))
  56. {
  57. if (self::emailExists($usernameOrEmail))
  58. {
  59. $user = UsersTable::getUserByEmail($usernameOrEmail);
  60. }
  61. }
  62. else
  63. {
  64. if (self::usernameExists($usernameOrEmail))
  65. {
  66. $user = UsersTable::getUserByUsername($usernameOrEmail);
  67. }
  68. }
  69.  
  70. if ($user !== null)
  71. {
  72. if (password_verify($password, $user['password']))
  73. {
  74. $validUser = true;
  75. }
  76. }
  77. }
  78.  
  79. self::redirectUser($validUser);
  80. }
  81.  
  82. public static function signupValidation($email, $username, $password,
  83. $passwordConfirmation, $name)
  84. {
  85. echo 'Working so far!';
  86. }
  87. }
  88.  
  89. class UsersTable
  90. {
  91. public static function getAllUsers()
  92. {
  93. $statement = "SELECT * FROM `users`";
  94. $query = Database::query($statement);
  95.  
  96. if ($query)
  97. {
  98. return $query->fetchAll(PDO::FETCH_ASSOC);
  99. }
  100. }
  101.  
  102. public static function getUserByID($id)
  103. {
  104. $statement = "SELECT * FROM `users` WHERE `id` = '$id' "
  105. . "LIMIT 1";
  106. $query = Database::query($statement);
  107.  
  108. if ($query)
  109. {
  110. return $query->fetch(PDO::FETCH_ASSOC);
  111. }
  112. }
  113.  
  114. public static function getUserByEmail($email)
  115. {
  116. $statement = "SELECT * FROM `users` WHERE `email` = '$email' "
  117. . "LIMIT 1";
  118. $query = Database::query($statement);
  119.  
  120. if ($query)
  121. {
  122. return $query->fetch(PDO::FETCH_ASSOC);
  123. }
  124. }
  125.  
  126. public static function getUserByUsername($username)
  127. {
  128. $statement = "SELECT * FROM `users` WHERE `username` = '$username' "
  129. . "LIMIT 1";
  130. $query = Database::query($statement);
  131.  
  132. if ($query)
  133. {
  134. return $query->fetch(PDO::FETCH_ASSOC);
  135. }
  136. }
  137.  
  138. public static function addUser($name, $email, $username, $password)
  139. {
  140. $hashedPassword = password_hash($password, PASSWORD_DEFAULT);
  141.  
  142. $statement = "INSERT INTO `users` (`name`, `email`, `username`, "
  143. . " `password`) VALUES ('$name', '$email', '$username', "
  144. . "'$hashedPassword')";
  145.  
  146. $query = Database::query($statement);
  147. }
  148. }
  149.  
  150. require_once('../config.php');
  151. require_once('database.php');
  152. require_once('users-table.php');
  153. require_once('validation.php');
  154.  
  155. Database::connect();
  156.  
  157. Validation::loginValidation($_POST['username-email'], $_POST['password']);
Add Comment
Please, Sign In to add comment