Guest User

Untitled

a guest
Nov 16th, 2017
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. class Functions {
  2.  
  3. private $conn;
  4.  
  5. function __construct() {
  6. require_once 'Connect.php';
  7.  
  8. $db = new Connect();
  9. $this->conn = $db->connect();
  10. }
  11.  
  12. // destructor
  13. function __destruct() {
  14.  
  15. }
  16.  
  17.  
  18.  
  19.  
  20.  
  21. public function registerUser($fname, $lname, $username, $city, $country, $phone, $password){
  22. $response['error'] = false;
  23. $response['message'] = 'User created successfully, login.';
  24.  
  25. if(!$this->isUserExisted($username)){
  26. $hash = $this->hashSSHA($password);
  27. $encrypted_password = $hash["encrypted"];
  28. $salt = $hash["salt"];
  29.  
  30. $stmt = $this->conn->prepare("INSERT INTO `user_tb`(`fname`, `lname`, `username`, `city`, `country`, `phone`, `salt`, `password`) VALUES (?,?,?,?,?,?,?,?)");
  31. $stmt->bind_param("ssssssss", $fname, $lname, $username, $city, $country, $phone, $salt, $encrypted_password);
  32.  
  33. if($stmt->execute()){
  34. $error = FALSE;
  35. }
  36. else{
  37.  
  38. $response['error'] = true;
  39. $response['message'] = 'Error occured, try again.';
  40. }
  41.  
  42. }else{
  43.  
  44. $response['error'] = true;
  45. $response['message'] = 'Username already in use.';
  46.  
  47. }
  48. $stmt->close();
  49. return $response;
  50.  
  51. }
  52.  
  53.  
  54.  
  55. public function login($username, $password){
  56. $response['error'] = true;
  57. $response['message'] = 'Incorrect credentials';
  58. $user = array();
  59. $stmt = $this->conn->prepare("SELECT * FROM user_tb WHERE username = ?");
  60.  
  61. $stmt->bind_param("s", $username);
  62. if ($stmt->execute()) {
  63. $user = $stmt->get_result()->fetch_assoc();
  64. $stmt->close();
  65.  
  66. $salt = $user['salt'];
  67. $encrypted_password = $user['password'];
  68. $hash = $this->checkhashSSHA($salt, $password);
  69.  
  70. if ($encrypted_password == $hash) {
  71.  
  72. $user['id'] = $user["id"];
  73. $user['fname'] = $user["fname"];
  74. $user['lname'] = $user["lname"];
  75. $user['phone'] = $user["phone"];
  76. $user['city'] = $user["city"];
  77. $user['country'] = $user["country"];
  78. $response['user'] = $user;
  79. $response['error'] = false;
  80. $response['message'] = 'Welcome back.';
  81. }
  82. }
  83.  
  84.  
  85. return $response;
  86. }
  87.  
  88.  
  89. public function isUserExisted($username) {
  90. $stmt = $this->conn->prepare("SELECT username from user_tb WHERE username = ?");
  91. $stmt->bind_param("s", $username);
  92. $stmt->execute();
  93. $stmt->store_result();
  94. if ($stmt->num_rows > 0) {
  95. $stmt->close();
  96. return true;
  97. } else {
  98. $stmt->close();
  99. return false;
  100. }
  101. }
  102.  
  103.  
  104. public function hashSSHA($password) {
  105.  
  106. $salt = sha1(rand());
  107. $salt = substr($salt, 0, 20);
  108. $encrypted = base64_encode(sha1($password . $salt, true) . $salt);
  109. $hash = array("salt" => $salt, "encrypted" => $encrypted);
  110. return $hash;
  111. }
  112.  
  113.  
  114. public function checkhashSSHA($salt, $password) {
  115.  
  116. $hash = base64_encode(sha1($password . $salt, true) . $salt);
  117.  
  118. return $hash;
  119. }
  120.  
  121. }
  122.  
  123. $app->post('/register', function (Request $request, Response $response) {
  124.  
  125. if(isTheseParametersAvailable(array('fname', 'lname', 'username', 'phone', 'city', 'country', 'password'))){
  126. $requestData = $request->getParsedBody();
  127. $db = new Functions();
  128. $fname = $requestData['fname'];
  129. $lname = $requestData['lname'];
  130. $username = $requestData['username'];
  131. $city = $requestData['city'];
  132. $country = $requestData['country'];
  133. $phone = $requestData['phone'];
  134. $password = $requestData['password'];
  135. $response = $db->registerUser($fname, $lname, $username, $city, $country, $phone, $password);
  136.  
  137. }else{
  138. $response['error'] = true;
  139. $response['message'] = 'Error occurred, some parameters are empty.';
  140. }
  141.  
  142. echo(json_encode($response));
  143. });
  144.  
  145.  
  146. $app->post('/login', function (Request $request, Response $response) {
  147. if(isTheseParametersAvailable(array('username','password'))){
  148. $requestData = $request->getParsedBody();
  149. $db = new Functions();
  150. $username = $requestData['username'];
  151. $password = $requestData['password'];
  152. $response = $db->login($username, $password);
  153.  
  154. }else{
  155. $response['error'] = true;
  156. $response['message'] = 'Error occurred, some parameters are empty.';
  157. }
  158.  
  159. echo(json_encode($response));
  160. });
Add Comment
Please, Sign In to add comment