Mobile Programming

Membuat Form Daftar dan Login dengan PHP MySQL #1

Halo Sahabat Coding, untuk melanjutkan materi sebelumnya tentang Membuat Form SignUp di Android Studio. Dimana kita hanya membuat tampilan formnya saja, kita belum menghubungkannya ke database, kali ini kita akan Membuat Form Daftar dan Login dengan PHP MySQL di Android Studio .

Disini kita akan menyimpan data hasil pendaftaran maupun login ke Database MySQL dengan menggunakan PHP dan API (Application Programming Interface). API ini akan digunakan untuk mendapatkan permintaan dari masukan Android dan juga merespons sesuai permintaan. Jadi hal yang pertama akan kita buat adalah API untuk Membuat Form Daftar dan Login dengan PHP MySQL di Android Studio.

Membuat API

Nah, saya asumsikan kalian sudah menginstal phpmyadmin di server kalian, baik server online maupun localhost. Pertama-tama kita buat database yang akan kita gunakan, kita beri nama android_login. Lalu jalankan syntax membuat tabel seperti berikut :

create database android_login /** Membuat Database **/
  
use android_login /** Memilih Database **/
  
create table android_php_post(
   id int(5) primary key auto_increment,
   name varchar(40) not null,
   email varchar(50) not null unique,
   encrypted_password varchar(80) not null,
   salt varchar(10) not null,
   gender varchar(6) not null,
   age int(6) not null
); /** Membuat Table **/

Jika sudah di execute, maka tampilan strukturnya akan seperti berikut :

Selanjutnya, kita buat folder android di /var/www/html (jika di Linux) atau C://xampp/htdocs/ (jika di Windows) dan kita buat sebuah file php dan beri nama android_login_config.php, isikan syntax php seperti berikut :

<?php
  
define("DB_HOST", "localhost"); 
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "android_login");
 
?>

Kegunaan dari file android_login_config.php yaitu untuk konfigurasi ke server database. Lalu kita buat file php lagi, dengan nama android_login_connect.php atau kalian biasa familiar dengan nama koneksi.php

<?php
class android_login_connect {
    private $conn;
 
    // Koneksi ke database
    public function connect() {
        require_once 'android_login_config.php';
 
        // Koneksi ke mysql database
        $this->conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
        // return database object
        return $this->conn;
    }
}
?>

Fungsi dari android_login_connect.php yaitu untuk menghubungkan ke server dan database atau kalian biasa familiar dengan nama koneksi.php. Selanjutnya buat file lagi dengan nama update_user_info.php

public function StoreUserInfo($name, $email, $password, $gender, $age) {
        $hash = $this->hashFunction($password);
        $encrypted_password = $hash["encrypted"]; // encrypted password
        $salt = $hash["salt"]; // salt
 
        $stmt = $this->conn->prepare("INSERT INTO android_php_post(name, email, encrypted_password, salt, gender, age) VALUES(?, ?, ?, ?, ?, ?)");
        $stmt->bind_param("ssssss", $name, $email, $encrypted_password, $salt, $gender, $age);
        $result = $stmt->execute();
        $stmt->close();
 
        // check for successful store
        if ($result) {
            $stmt = $this->conn->prepare("SELECT name, email, encrypted_password, salt, gender, age FROM android_php_post WHERE email = ?");
            $stmt->bind_param("s", $email);
            $stmt->execute();
            $stmt-> bind_result($token2,$token3,$token4,$token5,$token6,$token7);
 
            while ( $stmt-> fetch() ) {
               $user["name"] = $token2;
               $user["email"] = $token3;
               $user["gender"] = $token6;
               $user["age"] = $token7;
            }
            $stmt->close();
            return $user;
        } else {
          return false;
        }
    }
 
    public function hashFunction($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;
    }

Di file update_user_info.php kita membuat sebuah fungsi yaitu StoreUserInfo() yang akan digunakan untuk menyimpan informasi dalam database yang berasal dari pengguna.

[artikel number=5 tag=”android” ]

Selanjutnya buat 2 file lagi dengan nama login.php dan register.php seperti berikut

login.php

<?php
require_once 'update_user_info.php';
$db = new update_user_info();

// json response array
$response = array("error" => FALSE);

if (isset($_POST['email']) && isset($_POST['password'])) {

    // receiving the post params
    $email = $_POST['email'];
    $password = $_POST['password'];

    // get the user by email and password
    $user = $db->VerifyUserAuthentication($email, $password);

    if ($user != false) {
        // use is found
        $response["error"] = FALSE;
        $response["user"]["name"] = $user["name"];
        $response["user"]["email"] = $user["email"];
        $response["user"]["age"] = $user["age"];
        $response["user"]["gender"] = $user["gender"];
        echo json_encode($response);
    } else {
        // user is not found with the credentials
        $response["error"] = TRUE;
        $response["error_msg"] = "Login credentials are wrong. Please try again!";
        echo json_encode($response);
    }
} else {
    // required post params is missing
    $response["error"] = TRUE;
    $response["error_msg"] = "Required parameters email or password is missing!";
    echo json_encode($response);
}
?>

register.php

<?php

require_once 'update_user_info.php';
$db = new update_user_info();

// json response array
$response = array("error" => FALSE);

if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['password']) && isset($_POST['gender']) && isset($_POST['age'])) {

    // receiving the post params
    $name = $_POST['name'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $gender = $_POST['gender'];
    $age = $_POST['age'];

    // check if user is already existed with the same email
    if ($db->CheckExistingUser($email)) {
        // user already existed
        $response["error"] = TRUE;
        $response["error_msg"] = "User already existed with " . $email;
        echo json_encode($response);
    } else {
        // create a new user
        $user = $db->StoreUserInfo($name, $email, $password, $gender, $age);
        if ($user) {
            // user stored successfully
            $response["error"] = FALSE;
            $response["user"]["name"] = $user["name"];
            $response["user"]["email"] = $user["email"];
            $response["user"]["gender"] = $user["gender"];
            $response["user"]["age"] = $user["age"];
            echo json_encode($response);
        } else {
            // user failed to store
            $response["error"] = TRUE;
            $response["error_msg"] = "Unknown error occurred in registration!";
            echo json_encode($response);
        }
}
} else {
    $response["error"] = TRUE;
    $response["error_msg"] = "Required parameters (name, email, password, gender or age) is missing!";
    echo json_encode($response);
}
?>

Semua file yang dibutuhkan sudah selesai, dan selanjutnya kita tinggal membuat formnya di Andorid Studio, untuk membuatnya kita akan lanjutkan dibagian berikutnya ya. Terimakasih sudah mengikuti

Related Articles

3 Comments

    1. setau saya salt itu sejenis kriptografi link, klo hubungannya dengan database biasanya digunakan untuk meng-enkripsi data didalam dataase.

Leave a Reply

Back to top button
Close

Adblock Detected

Tolong Matikan AdBlock dulu Gan :)