Xin chào Technoz. Trong hướng dẫn này, chúng ta sẽ xem cách xây dựng ứng dụng đăng ký đăng nhập Android bằng cách sử dụng PHP và MySQL làm hệ thống phụ trợ. Bạn có thể sử dụng bất kỳ ngôn ngữ và cơ sở dữ liệu nào khác làm phần phụ trợ. Tuy nhiên, vì PHP và MySQL là phổ biến và thông dụng nhất nên chúng tôi sẽ sử dụng nó trong hướng dẫn này. Hướng dẫn đăng ký đăng nhập Android bằng PHP và MySQL này bao gồm tạo đăng ký người dùng mới, đăng nhập học sinh đã đăng ký và đăng xuất. Vì vậy, hãy bắt đầu
Tạo phía máy chủ
Trong dự án của chúng tôi, ứng dụng sẽ là một máy khách gửi yêu cầu đến máy chủ và các tệp và cơ sở dữ liệu PHP sẽ hoạt động như một máy chủ phụ trợ. Vì vậy, chúng tôi đang tạo hai phần trong hướng dẫn đăng ký đăng nhập Android của chúng tôi
Tạo cơ sở dữ liệu
Rõ ràng, trước tiên chúng ta cần một cơ sở dữ liệu để lưu trữ và truy xuất dữ liệu. Vì vậy, hãy tạo cơ sở dữ liệu và bảng người dùng trong đó. Bảng chứa các trường như id, tên người dùng, email và mật khẩu. Bạn có thể sử dụng truy vấn SQL sau
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`] ]
Tạo tập tin PHP
Tất nhiên, chúng ta cần một tệp php riêng để thiết lập kết nối với cơ sở dữ liệu. Vì vậy, tạo tập tin cấu hình. php và dán mã bên dưới vào đó
Hãy nhớ thay đổi các giá trị kết nối với giá trị của bạn
Bây giờ, chúng ta sẽ tạo một tệp riêng thực hiện công việc đăng nhập người dùng. Vì vậy, tạo một tập tin đăng nhập. php với đoạn mã sau
Vì ứng dụng đăng ký đăng nhập android yêu cầu dữ liệu ở định dạng JSON, chúng tôi đang sử dụng một mảng ở đây. Đầu tiên chúng ta sẽ nhận các biến POST và kiểm tra xem user có tồn tại trong database hay không và thực hiện xác minh mật khẩu. Nếu thông tin đăng nhập đúng, chúng tôi sẽ đặt thông báo thành công vào biến mảng. Cuối cùng, chúng tôi sẽ lặp lại mảng dưới dạng phản hồi JSON
Bây giờ là lúc cho một nhiệm vụ đăng ký. Tương tự, chúng ta sẽ tạo một thanh ghi tệp php. php với đoạn mã sau trong đó
Tương tự với file đăng nhập chúng ta đã tạo file trên cho nhiệm vụ đăng ký. Ở đây chúng tôi đang chấp nhận tên người dùng, email và mật khẩu dưới dạng tham số POST. Như thường lệ, chúng tôi đang chèn dữ liệu nhận được vào cơ sở dữ liệu bằng mật khẩu được mã hóa. Thông báo thành công/thất bại được gửi bằng các biến mảng dưới dạng phản hồi JSON
Như vậy là chúng ta đã hoàn thành phần server side. Bây giờ chúng tôi sẽ chuyển sang ứng dụng Android phía máy khách trong đăng ký đăng nhập Android
Tạo phía máy khách
Bây giờ chúng ta phải xây dựng một ứng dụng Android sẽ lấy các giá trị do người dùng nhập vào, gửi nó đến các url cụ thể, lấy lại kết quả và hiển thị cho người dùng. Vì vậy, hãy bắt đầu
Chúng tôi sẽ sử dụng yêu cầu http để gửi/nhận dữ liệu. Với mục đích đó, chúng ta cần thêm dòng dưới đây vào bản dựng cấp ứng dụng. tệp gradle
useLibrary 'org.apache.http.legacy'
Hơn nữa, chúng ta cần thêm quyền internet trong AndroidManifest. tệp xml như sau
Ghi chú. Trong bài đăng này, chúng tôi đang sử dụng một lớp tùy chỉnh để thực hiện cuộc gọi api và truy xuất dữ liệu, quá trình này tốn thời gian và có một chút trục trặc. Có một cách tốt hơn để làm điều này với thư viện Retrofit, trong đó cuộc gọi được bảo mật, yêu cầu ít mã hơn và là một cách được đề xuất. Phải xem hướng dẫn Thư viện trang bị thêm đã cập nhật với RecyclerView trong bài đăng Kotlin để tìm hiểu cách được đề xuất
Lúc đầu, chúng tôi sẽ xây dựng một lớp đặc biệt sẽ chấp nhận các tham số dữ liệu URL và POST, gửi chúng đến các vị trí tương ứng và trả về kết quả nhận được. Vì vậy, hãy tạo một lớp java mới RequestHandler. java với đoạn mã sau trong đó
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 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 params] throws UnsupportedEncodingException { StringBuilder result = new StringBuilder[]; boolean first = true; for [Map.Entry 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[]; } }
Phương thức sendPostRequest[] chấp nhận các tham số url và post. Chúng tôi đang sử dụng cấu trúc dữ liệu HashMap tại đây để nhận và đặt các cặp khóa và giá trị. Ở đây chúng tôi đang xây dựng một chuỗi bằng cách sử dụng lớp StringBuilder và nối thêm phản hồi nhận được vào chuỗi. Phương thức getPostDataString[] chấp nhận tham số HashMap và nối chúng với url
Tạo hoạt động
Hoạt động đăng ký
Bây giờ, chúng ta sẽ tạo hoạt động đăng ký. Tạo một hoạt động trống mới và viết mã bên dưới vào Activity_register. tập tin xml
Chúng tôi đã tạo ba EditText cho tên người dùng, email, mật khẩu và nút gửi để đăng ký đăng nhập Android. Xem hình ảnh bên dưới
Bây giờ hãy xây dựng tệp RegisterActivity. Java như sau
________số 8Lớp trên nhận các giá trị được nhập từ người dùng và các giá trị này được gửi đến phương thức sendPostRequest trong lớp RequestHandler. Lớp RequestHandler sau đó thực hiện công việc gửi và nhận dữ liệu và chúng tôi in thông báo phản hồi bằng văn bản bánh mì nướng. Chúng tôi thực hiện quy trình này bằng AsyncTask giúp thực hiện mọi việc trong nền. Bạn có thể tìm hiểu thêm về AsyncTask Tại đây. Các giá trị do người dùng nhập vào sẽ được lưu trữ bằng cơ sở dữ liệu PHP và MySQL
Hoạt động đăng nhập
Hơn nữa, chúng tôi tiến tới LoginActivity. Lúc đầu, hãy tạo bố cục bằng Activity_login. xml với đoạn mã sau trong đó
Tệp trên sẽ tạo hai trường nhập EditText cho email và mật khẩu và nút gửi như hình bên dưới
Hãy xem tệp java LoginActivity. java bên dưới để biết hướng dẫn đăng ký đăng nhập Android
0Tương tự như tệp Đăng nhập, chúng tôi đang lấy các giá trị đầu vào từ người dùng và gửi chúng bằng lớp RequestHandler. Các tập lệnh php phía máy chủ sẽ kiểm tra thông tin đăng nhập hợp lệ và trả về kết quả. Nếu kết quả đúng chúng tôi sẽ mở hoạt động chào mừng mới. Ở đây, chúng tôi lưu ý rằng một khi người dùng đã đăng nhập, họ sẽ không cần phải đăng nhập lại. Với mục đích này, chúng tôi ở đây sử dụng cấu trúc dữ liệu SharedPreferences. Đây là cấu trúc dữ liệu được ghép nối khóa-giá trị lưu trữ lượng dữ liệu nhỏ trong đó
Ghi chú. Trong đoạn mã trên, bạn phải thay thế địa chỉ ip trong URL_LOGIN thành ip của PC của chính bạn. Để tìm địa chỉ ip, hãy mở dấu nhắc lệnh và gõ “ipconfig” và nhấn enter. Bạn sẽ thấy “Địa chỉ IPv4”, đó là ip của bạn. Sao chép nó và thay thế URL_LOGIN bằng địa chỉ IP của bạn. PC của bạn phải được kết nối với internet để địa chỉ ip hoạt động. Đây là một điều bắt buộc và ứng dụng sẽ không hoạt động trừ khi điều này được thiết lập cẩn thận
Hoạt động chào mừng
Sau khi tìm nạp dữ liệu, chúng tôi sẽ lưu trữ dữ liệu đó trong SharedPreferences. Khóa "trạng thái" chứa giá trị Boolean sẽ đặt thành 1 sau khi đăng nhập thành công. Lần tới khi người dùng mở Hoạt động đăng nhập, họ sẽ được chuyển hướng trực tiếp đến màn hình Chào mừng. Chúng tôi cũng đang lưu trữ email, tên người dùng và mật khẩu sau khi đăng nhập. Bây giờ, hãy tạo một hoạt động mới WelcomeActivity sẽ chỉ mở sau khi đăng nhập thành công. Mã hoạt động bên dưới_welcome. xml
1Mã java của WelcomeActivity. java trong Android Login Đăng ký sử dụng PHP và MySQL hướng dẫn như sau
2Chúng tôi đang hiển thị ở đây tên người dùng của ứng viên và nút đăng xuất. Rõ ràng, nút đăng xuất sẽ xóa tất cả các giá trị trong SharedPreferences và chuyển hướng người dùng đến màn hình đăng nhập. Xem ảnh chụp màn hình bên dưới
Như vậy là chúng ta đã hoàn thành Hướng dẫn đăng ký đăng nhập Android bằng PHP và MySQL. Hy vọng bạn hiểu nó. Hơn nữa, nếu bạn có bất kỳ nghi ngờ nào, vui lòng hỏi trong bình luận bên dưới. Bạn luôn có thể tải xuống mã nguồn từ liên kết bên dưới
Tải xuống mã nguồn
Liên kết tải xuống
Nếu bạn muốn xuất bản ứng dụng này và lưu trữ nội dung trực tiếp, thì bạn có thể xem Hướng dẫn lưu trữ web. Tôi khuyên bạn nên sử dụng Dịch vụ lưu trữ của Hostinger vì chúng rẻ và tốt nhất trong lớp. Nhấp vào biểu ngữ bên dưới để tìm hiểu thêm