Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Functions {
- private $conn;
- function __construct() {
- require_once 'Connect.php';
- $db = new Connect();
- $this->conn = $db->connect();
- }
- // destructor
- function __destruct() {
- }
- public function registerUser($fname, $lname, $username, $city, $country, $phone, $password){
- $response['error'] = false;
- $response['message'] = 'User created successfully, login.';
- if(!$this->isUserExisted($username)){
- $hash = $this->hashSSHA($password);
- $encrypted_password = $hash["encrypted"];
- $salt = $hash["salt"];
- $stmt = $this->conn->prepare("INSERT INTO `user_tb`(`fname`, `lname`, `username`, `city`, `country`, `phone`, `salt`, `password`) VALUES (?,?,?,?,?,?,?,?)");
- $stmt->bind_param("ssssssss", $fname, $lname, $username, $city, $country, $phone, $salt, $encrypted_password);
- if($stmt->execute()){
- $error = FALSE;
- }
- else{
- $response['error'] = true;
- $response['message'] = 'Error occured, try again.';
- }
- }else{
- $response['error'] = true;
- $response['message'] = 'Username already in use.';
- }
- $stmt->close();
- return $response;
- }
- public function login($username, $password){
- $response['error'] = true;
- $response['message'] = 'Incorrect credentials';
- $user = array();
- $stmt = $this->conn->prepare("SELECT * FROM user_tb WHERE username = ?");
- $stmt->bind_param("s", $username);
- if ($stmt->execute()) {
- $user = $stmt->get_result()->fetch_assoc();
- $stmt->close();
- $salt = $user['salt'];
- $encrypted_password = $user['password'];
- $hash = $this->checkhashSSHA($salt, $password);
- if ($encrypted_password == $hash) {
- $user['id'] = $user["id"];
- $user['fname'] = $user["fname"];
- $user['lname'] = $user["lname"];
- $user['phone'] = $user["phone"];
- $user['city'] = $user["city"];
- $user['country'] = $user["country"];
- $response['user'] = $user;
- $response['error'] = false;
- $response['message'] = 'Welcome back.';
- }
- }
- return $response;
- }
- public function isUserExisted($username) {
- $stmt = $this->conn->prepare("SELECT username from user_tb WHERE username = ?");
- $stmt->bind_param("s", $username);
- $stmt->execute();
- $stmt->store_result();
- if ($stmt->num_rows > 0) {
- $stmt->close();
- return true;
- } else {
- $stmt->close();
- return false;
- }
- }
- public function hashSSHA($password) {
- $salt = sha1(rand());
- $salt = substr($salt, 0, 20);
- $encrypted = base64_encode(sha1($password . $salt, true) . $salt);
- $hash = array("salt" => $salt, "encrypted" => $encrypted);
- return $hash;
- }
- public function checkhashSSHA($salt, $password) {
- $hash = base64_encode(sha1($password . $salt, true) . $salt);
- return $hash;
- }
- }
- $app->post('/register', function (Request $request, Response $response) {
- if(isTheseParametersAvailable(array('fname', 'lname', 'username', 'phone', 'city', 'country', 'password'))){
- $requestData = $request->getParsedBody();
- $db = new Functions();
- $fname = $requestData['fname'];
- $lname = $requestData['lname'];
- $username = $requestData['username'];
- $city = $requestData['city'];
- $country = $requestData['country'];
- $phone = $requestData['phone'];
- $password = $requestData['password'];
- $response = $db->registerUser($fname, $lname, $username, $city, $country, $phone, $password);
- }else{
- $response['error'] = true;
- $response['message'] = 'Error occurred, some parameters are empty.';
- }
- echo(json_encode($response));
- });
- $app->post('/login', function (Request $request, Response $response) {
- if(isTheseParametersAvailable(array('username','password'))){
- $requestData = $request->getParsedBody();
- $db = new Functions();
- $username = $requestData['username'];
- $password = $requestData['password'];
- $response = $db->login($username, $password);
- }else{
- $response['error'] = true;
- $response['message'] = 'Error occurred, some parameters are empty.';
- }
- echo(json_encode($response));
- });
Add Comment
Please, Sign In to add comment