Guest User

Untitled

a guest
Jun 3rd, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. <?php
  2. reqiure_once 'config.php';
  3. class User{
  4.  
  5. private $db = null;
  6. private $email;
  7. private $username;
  8. private $password;
  9. private $uid;
  10. private $sessioncode;
  11.  
  12. public function __construct(PDO $db){
  13.  
  14. $this->db = $db;
  15. }
  16.  
  17. public function createUser($email,$username,$password){
  18.  
  19. if($this->checkEmail($email)){
  20. echo 'Email address already exsist.';
  21. } elseif($this->checkUsername($username)){
  22. echo 'Username already exsist.';
  23. } else {
  24. $this->password = password_hash($password,PASSWORD_BCRYPT);
  25. $stmt = $this->db->prepare('INSERT INTO users (email,username,password) VALUES (?, ?, ? )');
  26. if($stmt->execute(array($email,$username,$this->password))){
  27. echo 'Account successful created';
  28. }
  29. }
  30. }
  31.  
  32. public function loginUser($username,$password){
  33.  
  34. $stmt = $this->db->prepare('SELECT id,username,password FROM users WHERE username = ?');
  35. $stmt->execute(array($username));
  36. if($stmt->rowCount() > 0){
  37. $result = $stmt->fetch(PDO::FETCH_OBJ);
  38. if(password_verify($password, $result->password)){
  39. $this->setSession($result->username,$result->id);
  40.  
  41. } else {
  42. echo 'wrong password';
  43. }
  44. } else {
  45. echo 'Username or email does not exist in the database.';
  46. }
  47. }
  48.  
  49. public function logoutUser($uid){
  50.  
  51. $this->unsetSession($uid);
  52. }
  53.  
  54. private function checkEmail($email){
  55.  
  56. $stmt = $this->db->prepare('SELECT email FROM users WHERE email = ?');
  57. $stmt->execute(array($email));
  58. if($stmt->rowCount() > 0){
  59. return true;
  60. } else {
  61. return false;
  62. }
  63. }
  64.  
  65. private function checkUsername($username){
  66.  
  67. $stmt = $this->db->prepare('SELECT username FROM users WHERE username = ?');
  68. $stmt->execute(array($username));
  69. if($stmt->rowCount() > 0){
  70. return true;
  71. } else {
  72. return false;
  73. }
  74. }
  75.  
  76. private function setSession($username,$uid){
  77.  
  78. $this->sessioncode = bin2hex(rand());
  79. $_SESSION['id'] = $uid;
  80. $_SESSION['username'] = $username;
  81. $_SESSION['session_code'] = $this->sessioncode;
  82. $stmt = $this->db->prepare('UPDATE users SET session_code = ? WHERE id = ?');
  83. if($stmt->execute(array($this->sessioncode,$uid))){
  84. header('Location: u/dashboard.php');
  85. }
  86. }
  87.  
  88. private function unsetSession($uid){
  89.  
  90. $this->uid = $uid;
  91. $this->sessioncode = '';
  92. $stmt = $this->db->prepare('UPDATE users SET session_code = ? WHERE id = ?');
  93. if($stmt->execute(array($this->sessioncode,$this->uid))){
  94. session_unset();
  95. session_destroy();
  96. header('Location: ../index.php');
  97. }
  98. }
  99.  
  100. }
  101. ?>
Add Comment
Please, Sign In to add comment