Tutorials  /  Databases

Entwicklung einer Android-App für Login und Registrierung mit PHP und MySQL

Ccentron Redaktion · September 2024 ·3 Min. Lesezeit ·Databases, Tutorial

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
<?php
echo "Hello, World";
?>
DB

Passende Infrastruktur bei centron

Datenbanken im Betrieb wollen gepflegt werden: centron übernimmt auf Wunsch Updates, Backups und Monitoring – von der einzelnen Instanz bis zum Cluster. Managed Cluster ansehen →

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.

SQL
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
<?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.

Go
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!

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Databases
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren