Login android studio mysql php

Hei Technoz. Dalam tutorial ini, kita akan melihat bagaimana membangun aplikasi registrasi login android menggunakan PHP dan MySQL sebagai sistem back end. Anda dapat menggunakan bahasa dan database lain sebagai back end. Tapi, karena PHP dan MySQL adalah yang paling umum dan populer, kita akan menggunakannya dalam tutorial ini. Tutorial Registrasi Login Android menggunakan PHP dan MySQL ini meliputi pembuatan registrasi user baru, Login siswa yang sudah terdaftar, dan juga logout. Jadi ayo mulai

Membuat sisi Server

Dalam proyek kami, aplikasi akan menjadi klien yang mengirim permintaan ke server dan file serta database PHP akan bertindak sebagai server back end. Jadi kami membuat dua bagian dalam tutorial pendaftaran login android kami

Membuat Basis Data

Jelas, pertama-tama kita membutuhkan database untuk menyimpan dan mengambil data. Jadi buat database dan tabel pengguna di dalamnya. Tabel berisi bidang sebagai id, nama pengguna, email, dan kata sandi. Anda dapat menggunakan kueri SQL berikut

DROP TABLE IF EXISTS `users`;
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
)

Membuat File PHP

Tentu saja, kita memerlukan file php terpisah untuk membuat koneksi dengan database. Jadi buat file config. php dan rekatkan kode di bawah ini di dalamnya

<?php
$conn = new mysqli("localhost", "root", "", "newdb");

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
//echo "Connected successfully";
?>
_

Ingatlah untuk mengubah nilai koneksi dengan milik Anda

Sekarang, kita akan membuat file terpisah yang berfungsi untuk masuk ke pengguna. Jadi buat file login. php dengan kode berikut

<?php
include "config.php";

$response = array();
if($_POST['email'] && $_POST['password']){
	$email = $_POST['email'];
	$post_password = $_POST['password'];
	$stmt = $conn->prepare("SELECT username, password FROM users WHERE email = ?");
	$stmt->bind_param("s",$email);
	$stmt->execute();
	$stmt->bind_result($username, $db_password);
	$stmt->fetch();
	if(password_verify($post_password, $db_password)){
		$response['error'] = false;
		$response['message'] = "Login Successful!";
		$response['email'] = $email;
		$response['username'] = $username;
	} else{
		$response['error'] = false;
		$response['message'] = "Invalid Email or Password";
	}
} else {
	$response['error'] = true;
	$response['message'] = "Insufficient Parameters";
}
echo json_encode($response);	
?>

Karena aplikasi registrasi login android membutuhkan data dalam format JSON, kami menggunakan array di sini. Pertama, kami akan menerima variabel POST dan memeriksa apakah pengguna ada di database dan melakukan verifikasi kata sandi. Jika kredensial benar, kami akan memasukkan pesan sukses ke dalam variabel array. Terakhir, kami akan menggemakan array sebagai respons JSON

Sekarang saatnya untuk tugas pendaftaran. Demikian pula, kita akan membuat register file php. php dengan kode berikut di dalamnya

<?php
include "config.php";

$response = array();
if($_POST['email'] && $_POST['password'] && $_POST['username']){
	$email = $_POST['email'];
	$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
	$username = $_POST['username'];
	$sql = $conn->prepare("SELECT * FROM users WHERE email = ?");
	$sql->bind_param("s",$email);
	$sql->execute();
	$sql->store_result();

	if($sql->num_rows > 0){
		$response['error'] = false;
		$response['message'] = "User already registered";
	} else{
		$stmt = $conn->prepare("INSERT INTO `users` (`username`, `email`, `password`) VALUES(?,?,?)");
		$stmt->bind_param("sss", $username, $email, $password);
		$result = $stmt->execute();
		if($result){
			$response['error'] = false;
			$response['message'] = "User Registered Successfully";
		} else {
			$response['error'] = false;
			$response['message'] = "Cannot complete user registration";
		}
	}
} else{
	$response['error'] = true;
	$response['message'] = "Insufficient Parameters";
}
echo json_encode($response);	
?>

Mirip dengan file login, kami telah membuat file di atas untuk tugas pendaftaran. Di sini kami menerima nama pengguna, email, dan kata sandi sebagai parameter POST. Seperti biasa, kami memasukkan data yang diterima ke database dengan kata sandi terenkripsi. Pesan sukses/gagal dikirim menggunakan variabel array sebagai respons JSON

Dengan demikian, kami telah menyelesaikan bagian sisi server. Sekarang kita akan bergerak menuju aplikasi android sisi klien dalam pendaftaran login android

Membuat sisi Klien

Sekarang kita harus membuat aplikasi android yang akan mengambil nilai yang dimasukkan oleh pengguna, mengirimkannya ke url tertentu, mendapatkan kembali hasilnya dan menampilkannya kepada pengguna. Jadi ayo mulai

Kami akan menggunakan permintaan http untuk mengirim/menerima data. Untuk itu, kita perlu menambahkan baris di bawah ini di build level aplikasi. file gradle

useLibrary 'org.apache.http.legacy'
_

Selanjutnya, kita perlu menambahkan izin internet di AndroidManifest. xml file sebagai berikut

<uses-permission android:name="android.permission.INTERNET" />

Catatan. Dalam posting ini, kami menggunakan kelas khusus untuk membuat panggilan api dan mengambil data, yang merupakan proses yang memakan waktu dan sedikit kesalahan. Ada cara yang lebih baik untuk melakukan ini dengan pustaka Retrofit, di mana panggilan aman, memerlukan lebih sedikit kode, dan merupakan cara yang disarankan. Harus memeriksa tutorial Perpustakaan Retrofit yang diperbarui dengan RecyclerView di postingan Kotlin untuk mempelajari cara yang disarankan

 

Pada awalnya, kami akan membangun kelas khusus yang akan menerima URL dan parameter data POST, mengirimkannya ke tempat masing-masing, dan mengembalikan hasil yang diterima. Jadi buat RequestHandler kelas java baru. java dengan kode berikut di dalamnya

package net.softglobe.tutorials;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import javax.net.ssl.HttpsURLConnection;

/**
 * Created by Belal on 9/5/2017.
 */

public class RequestHandler {


    //this method will send a post request to the specified url
    //in this app we are using only post request
    //in the hashmap we have the data to be sent to the server in keyvalue pairs
    public String sendPostRequest(String requestURL, HashMap<String, String> postDataParams) {
        URL url;

        StringBuilder sb = new StringBuilder();
        try {
            url = new URL(requestURL);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(15000);
            conn.setConnectTimeout(15000);
            conn.setRequestMethod("POST");
            conn.setDoInput(true);
            conn.setDoOutput(true);

            OutputStream os = conn.getOutputStream();

            BufferedWriter writer = new BufferedWriter(
                    new OutputStreamWriter(os, "UTF-8"));
            writer.write(getPostDataString(postDataParams));

            writer.flush();
            writer.close();
            os.close();
            int responseCode = conn.getResponseCode();

            if (responseCode == HttpsURLConnection.HTTP_OK) {

                BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                sb = new StringBuilder();
                String response;

                while ((response = br.readLine()) != null) {
                    sb.append(response);
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return sb.toString();
    }


    //this method is converting keyvalue pairs data into a query string as needed to send to the server
    private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {
        StringBuilder result = new StringBuilder();
        boolean first = true;
        for (Map.Entry<String, String> entry : params.entrySet()) {
            if (first)
                first = false;
            else
                result.append("&");

            result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
            result.append("=");
            result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
        }

        return result.toString();
    }
}
_

Metode sendPostRequest() menerima parameter url dan post. Kami menggunakan struktur data HashMap di sini untuk mendapatkan dan mengatur pasangan kunci dan nilai. Kami di sini membangun string menggunakan kelas StringBuilder dan menambahkan respons yang diterima, ke string. Metode getPostDataString() menerima parameter HashMap dan menambahkannya dengan url

Membuat Kegiatan

Kegiatan Pendaftaran

Sekarang, kita akan membuat aktivitas registrasi. Buat aktivitas kosong baru dan tulis kode di bawah ini di activity_register. file xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_margin="10sp">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Registration Screen"
            android:gravity="center_horizontal"
            android:textSize="20sp"/>
        <EditText
            android:id="@+id/ed_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Username"/>
        <EditText
            android:id="@+id/ed_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Email"/>
        <EditText
            android:id="@+id/ed_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="password"
            android:inputType="textPassword"/>
        <Button
            android:onClick="register"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Register"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Login Here"
            android:onClick="login"
            android:gravity="center_horizontal"/>
    </LinearLayout>
</ScrollView>

Kami telah membuat tiga EditText untuk nama pengguna, email, kata sandi, dan tombol kirim untuk pendaftaran login android. Lihat gambar di bawah ini

Login android studio mysql php

Sekarang mari kita buat file RegisterActivity. jawa sebagai berikut

package net.softglobe.tutorials;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;

public class RegisterActivity extends AppCompatActivity {

    EditText ed_username, ed_email, ed_password;
    public static final String URL_REGISTER = "http://192.168.43.17/login-register/register.php";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        ed_username = findViewById(R.id.ed_username);
        ed_email = findViewById(R.id.ed_email);
        ed_password = findViewById(R.id.ed_password);
    }

    public void register(View view){
        final String username = ed_username.getText().toString();
        final String email = ed_email.getText().toString();
        final String password = ed_password.getText().toString();

        if(username.isEmpty() || email.isEmpty() || password.isEmpty()){
            Toast.makeText(this, "Please fill all the fields", Toast.LENGTH_SHORT).show();
        }

        else {
            class Login extends AsyncTask<Void, Void, String> {
                ProgressDialog pdLoading = new ProgressDialog(RegisterActivity.this);

                @Override
                protected void onPreExecute() {
                    super.onPreExecute();

                    //this method will be running on UI thread
                    pdLoading.setMessage("\tLoading...");
                    pdLoading.setCancelable(false);
                    pdLoading.show();
                }

                @Override
                protected String doInBackground(Void.. voids) {
                    //creating request handler object
                    RequestHandler requestHandler = new RequestHandler();

                    //creating request parameters
                    HashMap<String, String> params = new HashMap<>();
                    params.put("email", email);
                    params.put("password", password);
                    params.put("username", username);

                    //returing the response
                    return requestHandler.sendPostRequest(URL_REGISTER, params);
                }

                @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);
                    pdLoading.dismiss();

                    try {
                        //converting response to json object
                        JSONObject obj = new JSONObject(s);
                        //if no error in response
                        if (!obj.getBoolean("error")) {
                            Toast.makeText(getApplicationContext(), obj.getString("message"), Toast.LENGTH_LONG).show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                        Toast.makeText(RegisterActivity.this, "Exception: " + e, Toast.LENGTH_LONG).show();
                    }
                }
            }

            Login login = new Login();
            login.execute();
        }
    }

    public void login(View view){
        finish();
        Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
        startActivity(intent);
    }
}
_

Kelas di atas mengambil nilai yang dimasukkan dari pengguna dan nilai dikirim ke metode sendPostRequest di kelas RequestHandler. Kelas RequestHandler kemudian melakukan pekerjaan mengirim dan menerima data dan kami mencetak pesan tanggapan dengan teks bersulang. Kami melakukan proses ini menggunakan AsyncTask yang membantu melakukan berbagai hal di latar belakang. Anda dapat mempelajari lebih lanjut tentang AsyncTask Di Sini. Nilai yang dimasukkan oleh pengguna akan disimpan menggunakan PHP dan database MySQL

Aktivitas Masuk

Selanjutnya, kita bergerak menuju LoginActivity. Pertama, buat tata letak menggunakan activity_login. xml dengan kode berikut di dalamnya

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_margin="10sp">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Login Screen"
            android:gravity="center_horizontal"
            android:textSize="20sp"/>
        <EditText
            android:id="@+id/ed_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Email"/>
        <EditText
            android:id="@+id/ed_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="password"
            android:inputType="textPassword"/>
        <Button
            android:onClick="login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Login"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Register Here"
            android:gravity="center_horizontal"
            android:onClick="register"/>
    </LinearLayout>
</ScrollView>
_

File di atas akan membuat dua kolom input EditText untuk email dan kata sandi dan tombol kirim seperti yang ditunjukkan di bawah ini

Login android studio mysql php

Mari kita lihat file java LoginActivity. java di bawah untuk tutorial pendaftaran login android

<?php
$conn = new mysqli("localhost", "root", "", "newdb");

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
//echo "Connected successfully";
?>
_0

Mirip dengan file Login, kami mengambil nilai input dari pengguna dan mengirimkannya menggunakan kelas RequestHandler. Skrip php sisi server akan memeriksa kredensial yang valid dan mengembalikan hasilnya. Jika hasilnya benar, kami akan membuka kegiatan penyambutan baru. Di sini, kami berhati-hati bahwa setelah pengguna masuk, dia tidak perlu masuk lagi. Untuk tujuan ini, kami di sini menggunakan struktur data SharedPreferences. Ini adalah struktur data berpasangan nilai kunci yang menyimpan sejumlah kecil data di dalamnya

Catatan. Pada kode di atas, Anda harus mengganti alamat ip di URL_LOGIN ke ip PC Anda sendiri. Untuk menemukan alamat ip, buka command prompt dan ketik "ipconfig" dan tekan enter. Anda akan melihat "Alamat IPv4", itu adalah ip Anda. Salin dan ganti di URL_LOGIN dengan alamat ip Anda. PC Anda harus terhubung ke internet agar alamat ip berfungsi. Ini adalah hal wajib dan aplikasi tidak akan berfungsi kecuali ini diatur dengan hati-hati

Kegiatan Selamat Datang

Setelah mengambil data, kami akan menyimpannya di SharedPreferences. Kunci 'status' berisi nilai Boolean yang akan disetel ke 1 setelah berhasil login. Lain kali pengguna akan membuka LoginActivity, dia akan langsung diarahkan ke layar Selamat Datang. Kami juga menyimpan email, username dan password setelah login. Sekarang mari kita buat aktivitas baru WelcomeActivity yang hanya akan terbuka setelah login berhasil. Di bawah kode activity_welcome. xml

<?php
$conn = new mysqli("localhost", "root", "", "newdb");

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
//echo "Connected successfully";
?>
_1

Kode java dari WelcomeActivity. java di Android Login Registrasi menggunakan PHP dan MySQL tutorialnya adalah sebagai berikut

<?php
$conn = new mysqli("localhost", "root", "", "newdb");

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
//echo "Connected successfully";
?>
_2

Kami menunjukkan di sini nama pengguna kandidat dan tombol keluar. Jelas, tombol logout akan menghapus semua nilai di SharedPreferences dan mengarahkan pengguna ke layar login. Lihat tangkapan layar di bawah ini

Login android studio mysql php

Dengan demikian, kami telah menyelesaikan Registrasi Masuk Android menggunakan tutorial PHP dan MySQL. Harap Anda memahaminya. Selanjutnya, jika Anda ragu, jangan ragu untuk bertanya di komentar di bawah. Anda selalu dapat mengunduh kode sumber dari tautan di bawah ini

Unduh Kode Sumber

Unduh Tautan

Jika Anda ingin menerbitkan aplikasi ini dan menghosting konten secara langsung, Anda dapat melihat Panduan hosting web. Saya merekomendasikan menggunakan Layanan Hosting Hostinger karena murah dan terbaik di kelasnya. Klik banner di bawah ini untuk mempelajari lebih lanjut

Bagaimana cara menghubungkan PHP MySQL dengan Android Studio?

Ini adalah saat pengguna telah mendaftar. .
Langkah 1. Buat database mySQL di phpMyAdmin. .
Langkah 2. Buat 3 file php. .
Langkah 3. Komponen harus ada di Android Studio. .
Langkah 4. Desain activity_main. xml. .
Langkah 5. Buat kelas bernama Design the. .
Langkah 6. Tulis kode di MainActivity. Jawa. .
Langkah 7. Anda dapat menguji aplikasi Anda

Bagaimana cara login dengan MySQL di PHP?

Untuk menjalankan form login, buka panel kontrol xampp dan jalankan server apache dan PHP. Sekarang, ketik localhost/xampp/nama folder/nama file di browser dan tekan tombol Enter . Semua pengaturan selesai sekarang. Masukkan nama pengguna dan kata sandi di formulir login dan klik tombol login.

Bisakah kita menghubungkan MySQL ke Android studio?

Android Studio akan kesulitan menghubungkan ke database mySQL . Seringkali lebih mudah menyimpan sqlite db di mesin itu sendiri untuk kasus penggunaan ini.

Bagaimana cara membuat halaman login dengan database di Android Studio?

Momen penting .
Buat Proyek Baru. 0. 14. Buat Proyek Baru. .
Desain Halaman Pendaftaran. 0. 53. Desain Halaman Pendaftaran. .
Halaman Pendaftaran Desain. 0. 56. Halaman Pendaftaran Desain. .
Buat Tabel. 9. 39. Buat Tabel. .
Periksa Nama Pengguna dan Kata Sandi. 17. 49. .
Desain Halaman Login ini. 34. 38. .
Sunting Teks. 36. 06. .
Tombol Masuk. 37. 37