Heim >Backend-Entwicklung >PHP-Tutorial >So codieren Sie ein Anmeldeformular mit E -Mail -Bestätigung

So codieren Sie ein Anmeldeformular mit E -Mail -Bestätigung

Jennifer Aniston
Jennifer AnistonOriginal
2025-02-27 09:36:15278Durchsuche

How to Code a Signup Form With Email Confirmation

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.

Registrierungsformular von Grund auf

erstellen

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
  • : Dies ist die Hauptdatei, mit der das Registrierungsformular erstellt und angezeigt wird. Es verarbeitet auch die Einreichung von Formularen.
  • confirm.php
  • : Wird verwendet, um den Bestätigungsteil zu verarbeiten.
  • signup_template.html
  • : Dies ist eine HTML -Dateivorlage, mit der das HTML -E -Mail -Körper erstellt wird.
  • signup_template.txt
  • : Dies ist eine einfache Textdateivorlage, mit der ein einfaches Text -E -Mail -Körper erstellt wird.
  • inc/php/config.php
  • : Enthält Datenbankverbindungsinformationen.

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
  • definiert, was bedeutet, dass es bis zu 11 Bitgassen halten kann.
  • username varchar(50): Eine String -Spalte, in der der Benutzername jedes Benutzers gespeichert ist. Es wird als
  • definiert, was bedeutet, dass es bis zu 50 Zeichen speichern kann.
  • password varchar(128): Eine Stringspalte, in der das Hash -Kennwort für jeden Benutzer gespeichert ist. Es wird als
  • definiert, was bedeutet, dass es bis zu 128 Zeichen enthalten kann.
  • email varchar(250): Eine Stringspalte, in der die E -Mail -Adresse jedes Benutzers gespeichert ist. Es wird als
  • definiert, was bedeutet, dass es bis zu 250 Zeichen speichern kann.
  • active binary(1): Eine binäre Spalte, in der gespeichert wird, ob das Konto des Benutzers aktiviert wurde. Es wird als
  • definiert, was bedeutet, dass es einen Bytewert speichert, 0 bedeutet inaktiv und 1, das aktiviert ist.

confirm

Tabelle:
<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.

Verbindung zur MySQL -Datenbank mit MySQLI

herstellen

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.

Formulare Verarbeitung

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.

Formularbestätigung

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.

Schlussfolgerung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn