2

Hi I am not able to run my php scripts properly on my server as when i tried using the same script on my local server it has gone through successfully.

Below are the files for the same .

and attached are the error which I am getting on my device and android studio.

DB_Functions.php

 <?php
  class DB_Functions {

   private $conn;

// constructor
  function __construct() {
    require_once 'DB_Connect.php';
    // connecting to database
    $db = new Db_Connect();
    $this->conn = $db->connect();
 }

 // destructor
 function __destruct() {

 }

/**
 * Storing new user
 * returns user details
 */
   public function storeUser($name, $email, $password) {
    $uuid = uniqid('', true);
    $hash = $this->hashSSHA($password);
    $encrypted_password = $hash["encrypted"]; // encrypted password
    $salt = $hash["salt"]; // salt
    $stmt = $this->conn->prepare("INSERT INTO userthird(unique_id, name, email, encrypted_password, salt, created_at) VALUES(?, ?, ?, ?, ?, NOW())");
    $stmt->bind_param("sssss", $uuid, $name, $email, $encrypted_password, $salt);
    $result = $stmt->execute();
    $stmt->close();

    // check for successful store
    if ($result) {
        $stmt = $this->conn->prepare("SELECT * FROM userthird WHERE email = ?");
        $stmt->bind_param("s", $email);
        $stmt->execute();
        $user = $stmt->get_result()->fetch_assoc();
        $stmt->close();

        return $user;
       } else {
        return false;
     }
   }

   /**
   * Get user by email and password
    */
    public function getUserByEmailAndPassword($email, $password) {

      $stmt = $this->conn->prepare("SELECT * FROM userthird WHERE email = ?");

     $stmt->bind_param("s", $email);

    if ($stmt->execute()) {
        $user = $stmt->get_result()->fetch_assoc();
        $stmt->close();

        // verifying user password
        $salt = $user['salt'];
        $encrypted_password = $user['encrypted_password'];
        $hash = $this->checkhashSSHA($salt, $password);
        // check for password equality
        if ($encrypted_password == $hash) {
            // user authentication details are correct
            return $user;
        }
      } else {
        return NULL;
    }
    }

    /**
    * Check user is existed or not
   */
   public function isUserExisted($email) {
    $stmt = $this->conn->prepare("SELECT email from userthird WHERE email = ?");

     $stmt->bind_param("s", $email);

     $stmt->execute();

     $stmt->store_result();

     if ($stmt->num_rows > 0) {
        // user existed 
        $stmt->close();
        return true;
     } else {
        // user not existed
         $stmt->close();
         return false;
       }
     }

   /**
    * Encrypting password
    * @param password
    * returns salt and encrypted password
     */
     public function hashSSHA($password) {

       $salt = sha1(rand());
      $salt = substr($salt, 0, 10);
      $encrypted = base64_encode(sha1($password . $salt, true) . $salt);
      $hash = array("salt" => $salt, "encrypted" => $encrypted);
      return $hash;
     }

     /**
      * Decrypting password
       * @param salt, password
      * returns hash string
      */
      public function checkhashSSHA($salt, $password) {

       $hash = base64_encode(sha1($password . $salt, true) . $salt);

       return $hash;
       }

       }

     ?>

Error getting displayed on my android studio:

Fatal error: Call to undefined method mysqli_stmt::get_result() in /home/ackentgroup/public_html/drugvilla.com/android_login_api/include/DB_Functions.php on line 45

I am quite sure I need to make some changes here but what i am unable to catch . $user = $stmt->get_result()->fetch_assoc();

Draken
  • 3,134
  • 13
  • 34
  • 54

0 Answers0