HeyTuts

Wenn es darum geht, Websites für die reale Welt zu erstellen, ist ein einfaches Registrierungsformular für Websites von entscheidender Bedeutung. Das Internet ist praktisch in Mitgliedschaft Websites bauen. Als Teil meiner PHP Member System Tutorial-Serie werden wir ein einfaches Registrierungsformular in PHP erstellen.

Dieses einfache Registrierungsformular ist ziemlich schnell und einfach von Grund auf neu zu schreiben und ermöglicht es jedem Benutzer, sich mit nur einem Benutzernamen, einer E-Mail-Adresse und einem Passwort zu registrieren.

Für einen sehr einfachen Überblick über den Quellcode für unsere PHP-Registrierungsseite ist dies:

<?php // connect to the database // check for a user being logged in // process the registration form data ?> <html> display a header display the error message (if there is one) display the registration form </html>

So erstellen Sie ein einfaches Registrierungsformular in PHP

  1. Erstellen Sie die Datenbank für das Registrierungsformular
  2. Erstellen Sie das einfache Registrierungsformular in HTML / CSS
  3. Stellen Sie mit PHP eine Verbindung zur MySQL-Datenbank her
  4. Verarbeiten Sie die Eingabe des Registrierungsformulars
  5. Fügen Sie der Datenbank neue Benutzerkonten hinzu

Schritt 1: Erstellen Sie die Datenbank für das Registrierungsformular

Oft besteht der erste Schritt beim Erstellen einer Website darin, die Datenbank zu erstellen. Und sicher, Sie werden wahrscheinlich später Änderungen an Ihrer Datenbank vornehmen müssen. Wenn Sie jedoch zuerst Ihre Datenbank einrichten, erhalten Sie einen guten Ausgangspunkt

Wir erstellen eine einfache Datenbank, in der alle Kontoinformationen des Benutzers einschließlich Benutzername und Kennwort gespeichert werden. Gehen Sie voran und melden Sie sich bei Ihrem phpMyAdmin Control Panel auf Ihrem Server an. (wenn Sie neu in phpMyAdmin sind, lesen Sie meinen Artikel Einführung in phpMyAdmin)

Datenbankfelder für unser PHP-Mitgliedschaftssystem

Jede Datenbank benötigt einen Namen, und da ich das Leben einfach halten möchte, nennen wir unsere Datenbank „Benutzer“.

HINWEIS: Ich gehe davon aus, dass Sie bereits über ein grundlegendes Verständnis der Verwendung von phpMyAdmin und der Funktionsweise von MySQL-Datenbanken verfügen. Wenn nicht, können Sie sich hier über phpMyAdmin-Grundlagen oder MySQL-Datenbankoperationen informieren HeyTuts.com . (diese Links werden in neuen Registerkarten geöffnet)

Da wir ein einfaches Registrierungsformular erstellen, benötigen wir nur 7 Felder in unserer Datenbank. Auf diese Weise erhalten wir sofort genug Grundfunktionalität. Aber immer noch können zusätzliche Funktionen wie ein Passwort-Reset-Formular hinzufügen.

  1. id – Dies wird eine eindeutige Kennung für jeden Benutzer sein. Wir müssen sicherstellen, dass das ID-Feld eine Ganzzahl ist und mit einem Primärschlüssel automatisch inkrementiert wird. Dies ist ein Muss!!! Wenn Sie zu komplexeren Mitgliedssystemen wechseln, ist es mit der Konto-ID des Benutzers sehr einfach, Datenbankdatensätze miteinander zu verknüpfen.
  2. Benutzername – dies sollte selbsterklärend sein. Ich habe mein auf ein 50-stelliges Varchar gesetzt. Sehr selten möchte der Benutzer einen Benutzernamen, der länger als 10-15 Zeichen ist, daher sollten sich 50 darum kümmern. Dies gibt Ihnen aber auch die Möglichkeit, Ihre gewünschte Benutzernamenlänge in Ihrem PHP-Code festzulegen.
  3. E–Mail – die E-Mail-Adresse des Benutzers. Setzen Sie es auf ein 100-stelliges Varchar.
  4. Passwort – Wir verwenden eine grundlegende Verschlüsselung für die Passwörter unserer Benutzer. Ein Varchar von 50 Zeichen wird also gut funktionieren. Später werden Sie sehen, wie wir die Funktion md5 () verwenden, um einen grundlegenden Passwort-Hash für eine einfache Sicherheit zu erstellen.
  5. date_created – Dies speichert einen time() -Wert, wann der Benutzer sein Konto erstellt hat.
  6. last_login – Wir können das letzte Mal verfolgen, wenn sich der Benutzer angemeldet hat, indem wir diesen Datensatz hier aktualisieren. Wieder wird von der time () -Funktion sein.
  7. Status – Verfolgen Sie den Aktivierungsstatus des Kontos. Wir können diesen Wert überprüfen, um festzustellen, ob der Benutzer sein Konto aktiviert hat oder nicht, und ihn auf dieser Grundlage anmelden oder benachrichtigen, um sein Konto zu aktivieren.

Schritt 2: Erstellen Sie das einfache Registrierungsformular in HTML / CSS

Mit dem Datenbank-Setup können wir das eigentliche Registrierungsformular erstellen, mit dem der Benutzer sein Konto erstellt. Wie so ziemlich alle Website-Formulare werden wir es mit HTML und CSS erstellen.

Erstellen Sie ein Register.PHP-Datei auf Ihrem Webserver

Ich werde meine Registrierungsformularseite register aufrufen.php, so gehen Sie vor und erstellen Sie diese Datei auf Ihrem Webserver. Ich empfehle, dieses gesamte Mitgliedssystem auf Ihrem Localhost-Webserver mit XAMPP zu erstellen (externer Link).

Erstellen Sie eine grundlegende Navigationsüberschrift

Die Überschrift für dieses PHP-Mitgliedssystem-Tutorial wird ebenfalls einfach sein. Mit ein paar Links nur für eine super einfache Navigation. Nachfolgend finden Sie die grundlegende Einrichtung der Seite für unser Register.PHP-Datei.

<html> <head> <title>php member system | registration form</title> </head> <body> <h1>member system tutorial - register</h1> <a href="./index.php">Home</a> | <a href="./register.php">Register</a> | <a href="./login.php">Login</a> <hr /> <!-- error message code here --> <!-- registration form html code here --> </body></html>

Erstellen Sie das eigentliche Registrierungsformular

Jetzt können wir das Formular erstellen, das der Benutzer sehen und mit dem er interagieren wird. Wenn Sie an unser Datenbank-Setup zurückdenken, haben wir nur 3 Felder, die der Benutzer eingeben kann: Benutzername, Passwort und E-Mail-Adresse. Vergessen Sie nicht, Text hinzuzufügen, um Beschriftungen anzuzeigen, für die Felder erforderlich sind.

Aus Gründen der guten Praxis möchte ich ein zusätzliches Kennwortfeld hinzufügen, in dem der Benutzer sein Kennwort bestätigen kann. Stellen Sie sicher, dass Sie den Benutzern die erforderliche Kennwortstärke mitteilen.

Ich hasse es, wenn Websites bestimmte Passwortanforderungen erfordern, aber sagen Sie Ihnen diese Anforderungen nicht! Idiotisch.

Um ein sicheres Passwort für das Benutzerkonto zu erhalten, benötigen wir mindestens 5 Zeichen. Mit mindestens einem Sonderzeichen eines dieser: !#$.,:;(). Dies gibt Ihnen nicht das sicherste Passwort, aber es gibt Ihnen eine Vorstellung davon, wie Sie stärkere Passwörter für Ihr Gerät erzwingen können.

<form action="./register.php" class="form" method="POST"><h1>create a new account</h1><div class=""><?php// check to see if the user successfully created an accountif (isset($success) && $success == true){echo '<p color="green">Yay!! Your account has been created. <a href="./login.php">Click here</a> to login!<p>';}// check to see if the error message is set, if so display itelse if (isset($error_msg))echo '<p color="red">'.$error_msg.'</p>';?></div><div class=""><input type="text" name="username" value="" placeholder="enter a username" autocomplete="off" required /></div><div class=""><input type="text" name="email" value="" placeholder="provide an email" autocomplete="off" required /></div><div class=""><input type="password" name="passwd" value="" placeholder="enter a password" autocomplete="off" required /></div><div class=""><p>password must be at least 5 characters and<br /> have a special character, e.g. !#$.,:;()</font></p></div><div class=""><input type="password" name="confirm_password" value="" placeholder="confirm your password" autocomplete="off" required /></div><div class=""><input class="" type="submit" name="registerBtn" value="create account" /></div><p class="center"><br />Already have an account? <a href="<?php echo SITE_ADDR ?>/login">Login here</a></p></form>

Wenn Sie bemerken, lege ich unser Registrierungsformular in eine einfache Tabelle, um alles für den Benutzer gut auszurichten. Das Wichtigste, was Sie hier beachten sollten, ist die Formularaktion (auch bekannt als POST), die Namen der Textfelder und der Name der Senden-Schaltfläche.

 php member system - 2 PHP-Registrierungsformular Benutzerregistrierungsformular

Alle diese Feldnamen sind im Back-End-Skript von entscheidender Bedeutung, um die Daten abzurufen, nachdem der Benutzer das Formular gesendet hat. Beachten Sie auch die Formularmethode POST , mit der die Formulardaten vor dem Benutzer ausgeblendet werden, anstatt sie wie GET an die URL zu senden.

Bei Bedarf eine Fehlermeldung anzeigen

Auf der Registrierungsseite finden Sie und Ihre Benutzer es hilfreich, eine Fehlermeldung anzuzeigen. Bei Bedarf. Ich werde es unter die Navigation und über das Anmeldeformular stellen. Diese Nachricht gibt dem Benutzer eine Vorstellung davon, was er falsch gemacht hat und korrigieren muss, bevor er sein Konto erstellen kann.

Grundsätzlich werde ich zwei Variablen erstellen, eine mit dem Namen $success und $error_msg . Wir werden eine einfache Überprüfung für diese beiden Variablen durchführen. Basierend darauf, ob sie festgelegt sind (auch bekannt als erstellt und einem Wert zugewiesen), wird die entsprechende Fehlermeldung angezeigt.

<?php // check to see if the user successfully created an account if (isset($success) && $success == true){ echo '<font color="green">Yay!! Your account has been created. <a href="./login.php">Click here</a> to login!<font>'; } // check to see if the error message is set, if so display it else if (isset($error_msg)) echo '<font color="red">'.$error_msg.'</font>'; else echo ''; // do nothing?>

Die Idee ist, dass wir, wenn bei der Verarbeitung der Daten ein Fehler auftritt, die Fehlermeldung in der Variablen $error_msg setzen können und sie dann dem Benutzer angezeigt wird und wir die Verarbeitung der Informationen fortsetzen. Wenn der Benutzer sein Konto erfolgreich erstellt, setzen wir $ success auf true und zeigen eine Erfolgsmeldung in Grün an (weil Grün immer gut ist, habe ich Recht??).

Schritt 3: Verbinden Sie sich mit der MySQL-Datenbank mit php

Wir können jetzt zu einem Teil des Back-End-PHP-Codes gelangen. Bevor Sie MySQL-Datenbankoperationen ausführen können, müssen Sie eine Verbindung zur Datenbank herstellen. Die meisten Websites stellen in einer separaten Konfiguration oder einem Verbindungsskript eine Verbindung zur Datenbank her. Also werden wir dasselbe tun.

Erstellen Sie ein neues PHP-Skript mit dem Namen connect.php und speichern Sie es im selben Verzeichnis wie das Register.PHP-Datei.

<?php $conn = mysqli_connect("localhost", "root", "password", "code_projects");?>

Schritt 4: Verarbeiten Sie die Eingabe des Registrierungsformulars

Nun zum Fleisch und den Kartoffeln dieses einfachen Registrierungsformulars. Der PHP-Code, um das Formular nach dem Absenden zu verarbeiten.

Da wir unser Datenbankverbindungsskript bereits erstellt haben, können wir das Verbindungsskript mit der Funktion require_once() laden.

<?php // include our connect script require_once("connect.php"); // check to see if there is a user already logged in, if so redirect them session_start(); if (isset($_SESSION) && isset($_SESSION)) header("Location: ./index.php"); // redirect the user to the home page?>

Dann verfolgen wir mithilfe von PHP-Sitzungen, ob Benutzer angemeldet sind oder nicht. Im Moment werden wir nur überprüfen, ob die Sitzungsvariablen festgelegt sind. Im Anmeldeformular-Tutorial erfahren Sie, wie Sie die Sitzungsvariablen festlegen. Wenn der Benutzer angemeldet ist, leiten wir ihn zur Startseite weiter.

Holen Sie sich alle Registrierungsformulardaten

Sobald wir bereit sind, alle Formulardaten abzurufen, prüfen wir zuerst, ob die Schaltfläche Senden angeklickt wurde (auch bekannt als das Formular wurde gesendet). Wenn ja, speichern wir alle Formulardaten in Variablen. Wenn das Formular nicht gesendet wurde, tun wir nichts anderes, als dem Benutzer das Formular anzuzeigen.

Da wir einen Formulartyp von POST verwenden, müssen wir die POST-Daten mit unserem PHP-Code abrufen. Alle „geposteten“ Daten aus dem Formular befinden sich in der Array-Variablen $_POST . Sie können dann den Namen des Formularelements als Array-Schlüssel verwenden. Ermöglicht es uns, die spezifischen Daten zu erhalten, nach denen Sie suchen, wie folgt:

if (isset($_POST)){ // get all of the form data $username = $_POST; $email = $_POST; $passwd = $_POST; $passwd_again = $_POST; // next code block }

Führen Sie grundlegende Überprüfungen der Formulardaten durch

Als nächstes prüfen wir, ob der Benutzer das Registrierungsformular ausgefüllt hat. Überprüfung der E-Mail-Adresse, Benutzername, und Passwörter. Wenn wir sicherstellen, dass jede Variable keine leere Zeichenfolge ist, bedeutet das, dass dort Text enthalten ist, oder?

Dann überprüfen wir, ob das Passwort und das Bestätigungskennwort genau der gleiche Text sind. Caps und so. Durch die Verwendung von drei Gleichheitszeichen in einer Zeile (das ist ===) in unserer if-Anweisung werden die Zeichenfolgen mit der Groß- / Kleinschreibung abgeglichen.

Wenn wir „Hallo“ mit „HaLLo“ mit zwei Gleichheitszeichen vergleichen, erhalten Sie ein echtes Ergebnis. Dies liegt daran, dass unser Code sagt „Ja hallo und Hallo sind das gleiche Wort“. Wenn wir sie jedoch mit drei Gleichheitszeichen vergleichen, lautet unser Code wie „NEIN! Halt da an. Diese Worte stimmen nicht überein. Big ol’falsch!“ Sinn machen?

// verify all the required form data was enteredif ($username != "" && $passwd != "" && $passwd_again != ""){ // make sure the two passwords match if ($passwd === $passwd_again){ // make sure the password meets the min strength requirements if ( strlen($passwd) >= 5 && strpbrk($passwd, "!#$.,:;()") != false ){ // next code block } else $error_msg = 'Your password is not strong enough. Please use another.'; } else $error_msg = 'Your passwords did not match.';}else $error_msg = 'Please fill out all required fields.';

Als nächstes können wir sicherstellen, dass die Passwörter unseren Festigkeitsanforderungen entsprechen. Unsere ohhh so beeindruckend Kriterien für ein sicheres Passwort. Mindestens 5 Zeichen lang und mit mindestens einem Sonderzeichen.

Mit strlen() stellen wir sicher, dass es lang genug ist, um unser Minimum von 5 Zeichen zu erfüllen. Einfach. Dann können wir mit der Funktion strpbrk() überprüfen, ob eines der Sonderzeichen in der Liste vorhanden ist. Diese Funktion gibt false zurück, wenn keines der Sonderzeichen vorhanden ist. Es wird eine Zeichenfolge zurückgegeben, falls vorhanden.

Sie können mehr über die Funktion auf der php.net referenz. Grundsätzlich ist es nur eine super schnelle und einfache Möglichkeit, nach einer Liste von Sonderzeichen in einer Zeichenfolge zu suchen. Denn anders als existierend kümmern wir uns nicht wirklich um sie.

Schritt 5: Fügen Sie der Datenbank neue Benutzerkonten hinzu

Nachdem wir nun wissen, dass alle unsere Formulardaten gut und einsatzbereit sind, können wir mit einigen Datenbankprüfungen beginnen. Zuerst prüfen wir, ob der Benutzername bereits in der Datenbank vorhanden ist. Wenn null Datensätze zurückgegeben werden, befindet sich der Benutzername nicht in der Datenbank. Wenn etwas anderes zurückgegeben wird, wird der Benutzername verwendet.

Als nächstes müssen wir einige zusätzliche Variablen erstellen, um einige der anderen Zufallsdaten zu speichern, die wir im Datenbankdatensatz für das Benutzerkonto speichern müssen, das wir erstellen möchten. Unterhalb dieses Codeblocks finden Sie eine Erläuterung der einzelnen Variablen.

HAFTUNGSAUSSCHLUSS: Ich möchte darauf hinweisen, dass wir für die Zwecke dieses Tutorials keine sehr komplexe Passwortverschlüsselung verwenden. Ich mache es einfach, um das Passwort nicht im Klartext zu speichern (tun Sie das niemals, es ist nur schlecht). Wenn Sie lernen möchten, wie Sie etwas Wesentlicheres und Sichereres tun können, schauen Sie sich unser Tutorial zur Passwortsicherheit an. Ich gehe ins Detail auf verschiedene Methoden zum Erstellen und Speichern sicherer Passwörter mit PHP.

// query the database to see if the username is taken$query = mysqli_query($conn, "SELECT * FROM users WHERE username='{$username}'");if (mysqli_num_rows($query) == 0){ // create and format some variables for the database $id = ''; $passwd = md5($passwd); $date_created = time(); $last_login = 0; $status = 1; // next code block}else $error_msg = 'The username <i>'.$username.'</i> is already taken. Please use another.';
  • $ id – Wir benötigen einen Platzhalter für die automatisch inkrementierende ID, die die Datenbank zuweist.
  • $passwd – Wir fügen dem Passwort des Benutzers eine grundlegende Verschlüsselung mit dem md5() -Hash hinzu
  • $date_created – Mit der time() -Funktion können wir einen Zeitstempel genau in dem Moment erhalten, in dem der Benutzer sein Konto erstellt. Wir können dies später verwenden, um mit date()
  • $last_login – später werden wir dies verwenden, um zu verfolgen, wann sich der Benutzer anmeldet. Wir werden es auf Null setzen, weil sie sich noch nicht angemeldet haben.
  • $status – Mit diesem Feld können wir den Kontostatus verfolgen, z. B. die Aktivierung per E-Mail oder die Deaktivierung für Verwaltungszwecke oder wirklich das, was Ihr Boot schwimmt. Ich werde standardmäßig auf 1 (eins) setzen, was ein aktives Konto bedeutet und mich sofort anmelden kann.

Sobald wir die E-Mail-Aktivierungsfunktion zu unserem Mitgliedssystem hinzugefügt haben, kommt der Kontostatus wirklich ins Spiel.

Jetzt können wir endlich den Datenbankeintrag für das Benutzerkonto erstellen. Mit einer INSERT-Abfrage können wir alle unsere Datenbankdatensatzinformationen sehr sorgfältig auflisten.

Wenn Sie Hilfe benötigen, um die Grundlagen der Funktionsweise von Abfragen zu verstehen. Oder sogar allgemeine Datenbankoperationen, überprüfen Sie mein anderes Tutorial zu MySQLi-Datenbankoperationen.

Nachdem wir den Datensatz eingefügt haben, werde ich als gute Übung sicherstellen, dass der Datensatz tatsächlich hinzugefügt wurde (weil Sie nie wissen, dass es einen Fehler gegeben haben könnte.) Da wir zuvor sichergestellt haben, dass der Benutzername NICHT vorhanden ist, wissen wir, dass unser neues Konto in der Datenbank erstellt wurde, wenn wir jetzt überprüfen, ob es vorhanden ist, und einen Datensatz damit finden. Zuletzt haben wir unsere Variable $ success auf true gesetzt, da der Benutzer seine Registrierung abgeschlossen und sein Konto erstellt hat.

// insert the user into the databasemysqli_query($conn, "INSERT INTO users VALUES ( '{$id}', '{$username}', '{$email}', '{$passwd}', '{$date_created}', '{$last_login}', '{$status}')");// verify the user's account was created$query = mysqli_query($conn, "SELECT * FROM users WHERE username='{$username}'");if (mysqli_num_rows($query) == 1){ /* IF WE ARE HERE THEN THE ACCOUNT WAS CREATED! YAY! */ /* WE WILL SEND EMAIL ACTIVATION CODE HERE LATER */ $success = true;}else $error_msg = 'An error occurred and your account was not created.';

Letzter Schliff für unser Anmeldeformular

Jetzt mit unserem gesamten Register.PHP-Code geschrieben, können wir es aus dem Web-Browser anzuzeigen. Sie können es sogar testen und Ihr eigenes Konto auf Ihrer neuen Registrierungsseite erstellen!

Nachdem unser einfaches Registrierungsformular erstellt wurde, besteht der nächste Teil eines PHP-Mitgliedssystems darin, das Anmeldeformular zu erstellen. denn was bringt es, ein Registrierungsformular zum Erstellen eines Kontos zu haben, wenn sich Benutzer nicht bei ihrem Konto anmelden können?

Wie Laden…

Leave a Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.