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!

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: