Entwicklung einer Android-App für Login und Registrierung mit PHP und MySQL
In der heutigen digitalen Welt sind Login- und Registrierungsfunktionen in Apps allgegenwärtig. Sie ermöglichen die Verwaltung von Benutzerinformationen und bieten personalisierte Erlebnisse. In diesem Tutorial richten wir einen lokalen Webserver und eine MySQL-Datenbank ein, um eine Android-App für Login und Registrierung zu entwickeln. Wir verwenden PHP-Skripte, um eine Verbindung zur MySQL-Datenbank herzustellen.
Einrichten des XAMPP-Servers
Zuerst müssen wir einen Backend-Webserver erstellen. Auf einem Mac-Betriebssystem können wir XAMPP verwenden, das schnell einen lokalen Apache-Webserver und eine MySQL-Datenbank einrichtet. Nach der Installation und dem Start von XAMPP können wir die Funktionalität des Servers über https://localhost überprüfen.
<?php
echo "Hello, World";
?>
Einrichten der MySQL-Datenbank
Mit phpMyAdmin, das unter https://localhost/phpmyadmin zugänglich ist, können wir eine MySQL-Datenbank erstellen. Nachdem wir eine leere Datenbank erstellt haben, können wir eine Tabelle namens „users“ erstellen, um Benutzerdaten zu speichern.
CREATE TABLE IF NOT EXISTS `firstDB`.`users` (
`id` int(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`username` varchar(70) NOT NULL,
`password` varchar(40) NOT NULL,
`email` varchar(50) NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime DEFAULT NULL
)
Verbinden von PHP mit der MySQL-Datenbank
Um eine Verbindung zwischen einem PHP-Skript und der MySQL-Datenbank herzustellen, benötigen wir drei Eingabewerte: Hostname, MySQL-Benutzername und MySQL-Passwort.
<?php
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_NAME", "firstDB");
?>
Android-Login- und Registrierungs-App
Nachdem wir die Grundlagen für PHP und MySQL eingerichtet haben, können wir uns auf die Entwicklung der Android-Login-Anwendung konzentrieren. Wir werden eine Anwendung für Benutzer-Login und -Registrierung erstellen. Während der Registrierung überprüfen wir die Einzigartigkeit des Benutzernamens und der E-Mail-Adresse. Wir verwenden dafür PHP-Skripte und die MySQL-Datenbank.
Projektstruktur und Code für die Android-Login- und Registrierungs-App
Die Projektstruktur umfasst verschiedene Klassen und Ressourcen für die Benutzeroberfläche. In der MainActivity.java-Klasse behandeln wir Benutzereingaben und führen asynchrone Aufgaben für die Netzwerkverbindung aus. Die JSONParser.java-Klasse behandelt die Kommunikation mit dem Server und das Parsen von JSON-Daten.
Fazit und Projektdownload
Mit diesem Tutorial haben wir ein grundlegendes Verständnis für die Implementierung von Login- und Registrierungsfunktionen in einer Android-App mit PHP und MySQL gewonnen. Das vollständige Projekt mit allen PHP-Skripten und der Android-App kann über den unten angegebenen Link heruntergeladen werden.
package com.journaldev.loginphpmysql;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
EditText editEmail, editPassword, editName;
Button btnSignIn, btnRegister;
String URL= "https://10.0.3.2/test_android/index.php";
JSONParser jsonParser=new JSONParser();
int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editEmail=(EditText)findViewById(R.id.editEmail);
editName=(EditText)findViewById(R.id.editName);
editPassword=(EditText)findViewById(R.id.editPassword);
btnSignIn=(Button)findViewById(R.id.btnSignIn);
btnRegister=(Button)findViewById(R.id.btnRegister);
btnSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AttemptLogin attemptLogin= new AttemptLogin();
attemptLogin.execute(editName.getText().toString(),editPassword.getText().toString(),"");
}
});
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(i==0)
{
i=1;
editEmail.setVisibility(View.VISIBLE);
btnSignIn.setVisibility(View.GONE);
btnRegister.setText("CREATE ACCOUNT");
}
else{
btnRegister.setText("REGISTER");
editEmail.setVisibility(View.GONE);
btnSignIn.setVisibility(View.VISIBLE);
i=0;
AttemptLogin attemptLogin= new AttemptLogin();
attemptLogin.execute(editName.getText().toString(),editPassword.getText().toString(),editEmail.getText().toString());
}
}
});
}
private class AttemptLogin extends AsyncTask<String, String, JSONObject> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected JSONObject doInBackground(String... args) {
String email = args[2];
String password = args[1];
String name= args[0];
ArrayList params = new ArrayList();
params.add(new BasicNameValuePair("username", name));
params.add(new BasicNameValuePair("password", password));
if(email.length()>0)
params.add(new BasicNameValuePair("email",email));
JSONObject json = jsonParser.makeHttpRequest(URL, "POST", params);
return json;
}
protected void onPostExecute(JSONObject result) {
// dismiss the dialog once product deleted
//Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();
try {
if (result != null) {
Toast.makeText(getApplicationContext(),result.getString("message"),Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Unable to retrieve any data from server", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
In diesem Tutorial haben wir ein grundlegendes Verständnis für die Implementierung von Login- und Registrierungsfunktionen in einer Android-App mit PHP und MySQL gewonnen. Mit diesem Tutorial und dem bereitgestellten Projekt sind Sie gut gerüstet, um Ihre eigenen Anwendungen mit Login- und Registrierungsfunktionen zu entwickeln. Viel Glück!