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 Show
Membuat sisi ServerDalam 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 DataJelas, 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 PHPTentu 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 KlienSekarang 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 KegiatanKegiatan PendaftaranSekarang, 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 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 MasukSelanjutnya, 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 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 DatangSetelah 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 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 SumberUnduh TautanJika 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 |