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!

Quelle: digitalocean.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

PostgreSQL-Cluster unter Ubuntu 24.04 mit Patroni

Databases, Tutorial
Drei-Node-PostgreSQL-Cluster mit Patroni und HAProxy unter Ubuntu 24.04 einrichten PostgreSQL ist ein leistungsstarkes, zuverlässiges und skalierbares Open-Source-Datenbankmanagementsystem. In geschäftskritischen Umgebungen ist hohe Verfügbarkeit entscheidend, die durch Replikation und Lastverteilung in…
Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

PostgreSQL auf Ubuntu 25.04 installieren und absichern

Databases, Tutorial
PostgreSQL auf Ubuntu 25.04 installieren und absichern PostgreSQL ist ein leistungsstarkes, quelloffenes relationales Datenbanksystem, das für seine Stabilität, Skalierbarkeit und erweiterten Funktionen wie JSON-Unterstützung, benutzerdefinierte Datentypen und komplexe Abfragen bekannt…