Advertisement
Guest User

Untitled

a guest
Jun 21st, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. <?php
  2.  
  3. class DB_Functions {
  4.  
  5. private $conn;
  6.  
  7. // constructor
  8. function __construct() {
  9. require_once 'DB_Connect.php';
  10. // connecting to database
  11. $db = new Db_Connect();
  12. $this->conn = $db->connect();
  13. }
  14.  
  15. // destructor
  16. function __destruct() {
  17.  
  18. }
  19.  
  20. /**
  21. * Storing new user
  22. * returns user details
  23. */
  24. public function storeUser($name, $email, $password) {
  25. $uuid = uniqid('', true);
  26. $hash = $this->hashSSHA($password);
  27. $encrypted_password = $hash["encrypted"]; // encrypted password
  28. $salt = $hash["salt"]; // salt
  29.  
  30. $stmt = $this->conn->
  31. prepare("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES(?, ?, ?, ?, ?, NOW())");
  32. $stmt->bind_param("sssss", $uuid, $name, $email, $encrypted_password, $salt);
  33. $result = $stmt->execute();
  34. $stmt->close();
  35.  
  36. // check for successful store
  37. if ($result) {
  38. $stmt = $this->conn->prepare("SELECT * FROM users WHERE email = ?");
  39. $stmt->bind_param("s", $email);
  40. $stmt->execute();
  41. $user = $stmt->get_result()->fetch_assoc();
  42. $stmt->close();
  43.  
  44. return $user;
  45. } else {
  46. return false;
  47. }
  48. }
  49.  
  50. /**
  51. * Get user by email and password
  52. */
  53. public function getUserByEmailAndPassword($email, $password) {
  54.  
  55. $stmt = $this->conn->prepare("SELECT * FROM users WHERE email = ?");
  56.  
  57. $stmt->bind_param("s", $email);
  58.  
  59. if ($stmt->execute()) {
  60. $user = $stmt->get_result()->fetch_assoc();
  61. $stmt->close();
  62.  
  63. // verifying user password
  64. $salt = $user['salt'];
  65. $encrypted_password = $user['encrypted_password'];
  66. $hash = $this->checkhashSSHA($salt, $password);
  67. // check for password equality
  68. if ($encrypted_password == $hash) {
  69. // user authentication details are correct
  70. return $user;
  71. }
  72. } else {
  73. return NULL;
  74. }
  75. }
  76.  
  77. /**
  78. * Check user is existed or not
  79. */
  80. public function isUserExisted($email) {
  81. $stmt = $this->conn->prepare("SELECT email from users WHERE email = ?");
  82.  
  83. $stmt->bind_param("s", $email);
  84.  
  85. $stmt->execute();
  86.  
  87. $stmt->store_result();
  88.  
  89. if ($stmt->num_rows > 0) {
  90. // user existed
  91. $stmt->close();
  92. return true;
  93. } else {
  94. // user not existed
  95. $stmt->close();
  96. return false;
  97. }
  98. }
  99.  
  100. /**
  101. * Encrypting password
  102. * @param password
  103. * returns salt and encrypted password
  104. */
  105. public function hashSSHA($password) {
  106.  
  107. $salt = sha1(rand());
  108. $salt = substr($salt, 0, 10);
  109. $encrypted = base64_encode(sha1($password . $salt, true) . $salt);
  110. $hash = array("salt" => $salt, "encrypted" => $encrypted);
  111. return $hash;
  112. }
  113.  
  114. /**
  115. * Decrypting password
  116. * @param salt, password
  117. * returns hash string
  118. */
  119. public function checkhashSSHA($salt, $password) {
  120.  
  121. $hash = base64_encode(sha1($password . $salt, true) . $salt);
  122.  
  123. return $hash;
  124. }
  125.  
  126. /*
  127. * new messagem
  128. * @param destinatario, descricao
  129. * return list mesage
  130. */
  131. public function storeMensage($destinatario, $descricao) {
  132.  
  133. $stmt = $this->conn->
  134. prepare("INSERT INTO mensagem(destinatario, descricao) VALUES(?, ?)");
  135. $stmt->bind_param($destinatario, $descricao);
  136. $result = $stmt->execute();
  137. $stmt->close();
  138.  
  139. // check for successful store
  140. if ($result) {
  141. $stmt = $this->conn->prepare("SELECT * FROM mensagem");
  142. $stmt->execute();
  143. $mesage = $stmt->get_result()->fetch_assoc();
  144. $stmt->close();
  145.  
  146. return $mesage;
  147. } else {
  148. return false;
  149. }
  150. }
  151. }
  152.  
  153. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement