Heim >Backend-Entwicklung >PHP-Tutorial >So codieren Sie ein Anmeldeformular mit E -Mail -Bestätigung
In diesem Tutorial wird ein Benutzerregistrierungsformular erstellt, das den Benutzer zur Datenbank hinzufügt, und sendet dann eine Bestätigungs -E -Mail, auf die der Benutzer klicken muss, um sein Konto zu aktivieren.
In diesem Abschnitt wird Schritt für Schritt erläutert, um ein benutzerdefiniertes Registrierungsformular von Grund auf neu zu erstellen. Zuerst habe ich alle Codedateien angehängt, damit Sie das Tutorial befolgen können.
Schauen wir uns einen kurzen Blick auf wichtige Dateien an:
index.php
confirm.php
signup_template.html
signup_template.txt
inc/php/config.php
Der Rest der Dateien sind Hilfsdateien.
email_signup
Öffnen Sie PhpMyAdmin oder jedes Programm, mit dem Sie die MySQL -Datenbank verwalten und eine neue Datenbank erstellen. Sie können es so nennen, wie Sie möchten, aber ich werde es users
nennen. Jetzt müssen wir ein Schema erstellen, das unsere Benutzerinformationen und Bestätigungsinformationen speichert. Dazu erstellen wir zwei Tabellen: confirm
und
<code class="language-sql">CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(128) NOT NULL default '', `email` varchar(250) NOT NULL default '', `active` binary(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
users
Die obige MySQL -Anweisung erstellt eine Tabelle mit dem Namen
id
int(11)
: Eine Ganzzahlsequenz, die als eindeutige Kennung für den Benutzer verwendet wird. Es wird als username
varchar(50)
: Eine String -Spalte, in der der Benutzername jedes Benutzers gespeichert ist. Es wird als password
varchar(128)
: Eine Stringspalte, in der das Hash -Kennwort für jeden Benutzer gespeichert ist. Es wird als email
varchar(250)
: Eine Stringspalte, in der die E -Mail -Adresse jedes Benutzers gespeichert ist. Es wird als active
binary(1)
: Eine binäre Spalte, in der gespeichert wird, ob das Konto des Benutzers aktiviert wurde. Es wird als
confirm
<code class="language-sql">CREATE TABLE `confirm` ( `id` int(11) NOT NULL auto_increment, `userid` varchar(128) NOT NULL default '', `key` varchar(128) NOT NULL default '', `email` varchar(250) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
confirm
Die obige MySQL -Anweisung erstellt eine Tabelle mit dem Namen
id
: Eine Ganzzahlsequenz, die als eindeutige Kennung zur Bestätigung des Datensatzes verwendet wird. Es wird als int(11)
definiert, was bedeutet, dass es bis zu 11 Bitgassen halten kann. userid
: Eine Stringspalte, in der die Benutzer -ID gespeichert ist, die dem Bestätigungsdatensatz zugeordnet ist. Es wird als varchar(128)
definiert, was bedeutet, dass es bis zu 128 Zeichen enthalten kann. key
: Eine Stringspalte, in der der Bestätigungsschlüssel gespeichert ist, der an die E -Mail -Adresse des Benutzers gesendet wurde. Es wird als varchar(128)
definiert, was bedeutet, dass es bis zu 128 Zeichen enthalten kann. In diesem Abschnitt wird erläutert, wie die Erweiterung von MySQLI verwendet wird, um eine Verbindung zu einer MySQL -Datenbank herzustellen.
Lassen Sie uns den Code der inc/php/config.php
-Datei schnell extrahieren und verstehen.
<code class="language-sql">CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(128) NOT NULL default '', `email` varchar(250) NOT NULL default '', `active` binary(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
Erstens erstellen wir eine neue MySQLI -Verbindung. Dann prüfen wir, ob die Verbindung erfolgreich ist. Wenn die Verbindung fehlschlägt, wird eine Fehlermeldung angezeigt und beendet.
In diesem Abschnitt wird erklärt, wie die Einreichung von Formular funktioniert.
... (einige Codes werden hier weggelassen, da dieser Teil des Codes im Originaltext langwierig und nicht mit dem Pseudo-Original-Ziel nicht stimmt. Halten Sie also einfach die Kernlogik) ...
Die Hauptlogik lautet: Verarbeiten Sie die Benutzereingabe (verwenden Sie beispielsweise mysqli_real_escape_string
, um die SQL -Injektion zu verhindern). Stellen Sie sicher, dass die Benutzereingabe abgeschlossen ist, Benutzerdaten in die Datenbank einfügen, einen Bestätigungsschlüssel generieren und eine Bestätigungs -E -Mail senden. Kennwörter werden mithilfe der MD5 -Funktion gehasht, und es wird empfohlen, eine sicherere Verschlüsselungsmethode zu verwenden.
extrahieren wir wichtige Codeausschnitte aus der confirm.php
-Datei, um zu verstehen, wie sie funktioniert.
<code class="language-sql">CREATE TABLE `confirm` ( `id` int(11) NOT NULL auto_increment, `userid` varchar(128) NOT NULL default '', `key` varchar(128) NOT NULL default '', `email` varchar(250) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
Dieser Code überprüft hauptsächlich, ob in der Datenbank eine Mailbox- und Bestätigungsschlüssel vorhanden ist, die mit den URL -Parametern übereinstimmt. Wenn Sie vorhanden sind, aktualisieren Sie den Benutzerstatus auf aktiviertes und löschen Sie den Bestätigungsdatensatz.
Dieses Tutorial endet hier.
In diesem Tutorial behandeln wir viele verschiedene Aspekte. Wir haben Drittanbieter-Skripte heruntergeladen und aufgenommen, um E-Mails zu verarbeiten, eine einfache Formularvalidierung implementierten und ein einfaches Vorlagensystem zum Stil von E-Mails erstellt haben. Wenn Sie mit MySQL nicht vertraut sind, haben wir drei der häufigsten Funktionen behandelt, sodass Sie in der Lage sein sollten, weiter fortgeschrittenere Tutorials abzuschließen.
Das obige ist der detaillierte Inhalt vonSo codieren Sie ein Anmeldeformular mit E -Mail -Bestätigung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!