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

In diesem Lernprogramm erstellen wir ein Formular für die Benutzeranmeldung, das einen Benutzer zu einer Datenbank hinzufügt, und sendet dann eine Bestätigungs-E-Mail, auf die der Benutzer klicken muss, bevor sein Konto aktiviert wird.

Hilfe benötigen?

Dieses Tutorial führt Sie von Grund auf durch den gesamten Prozess. Wenn Sie möchten, können Sie eines der vielen vorgefertigten E-Mail-Anmeldeformulare von Envato Market verwenden. Hier sind einige der beliebtesten Optionen. 

1. Einfaches Abonnement-Popup

Das jQuery Plugin für einfaches Anmeldeformular erfasst die E-Mail-Adresse des Besuchers auf Ihrer Website auf effektive und aufmerksamkeitsstarke Weise. Es gibt viele optionale Anpassungsoptionen, die Sie in wenigen Minuten einrichten können.


2. Hype: SmartR-Anmeldeformular

Hype ist ein SmartR-Anmeldeformular, das mit nur einem Klick vorkonfiguriert und jeder Seite hinzugefügt wird. Sie nutzt die Möglichkeiten Ihrer Benutzer und ihrer Netzwerke, um die Anmeldungen aktiv zu erhöhen und Ihre Benutzerbasis exponentiell zu vergrößern. 

3. E-Mail-Anmeldeformular für die Beta-Splash-Seite

Dies ist ein sehr einfaches und dennoch stilvolles Formular für Ihre Website, in das Besucher ihre E-Mail-Adresse (und, falls gewünscht, Namen) eingeben können, um sie zu einer Kontaktliste hinzuzufügen. Es verwendet AJAX zum Senden und Überprüfen von E-Mails und funktioniert auch, wenn der Benutzer JavaScript deaktiviert hat.

Die Installation ist schnell und schmerzlos. Für dieses Formular ist keine Datenbank erforderlich, da Eingaben in einer CSV-Datei erstellt und gespeichert werden.

Envato Market bietet viele weitere Optionen für das E-Mail-Anmeldeformular. Wenn Sie es lieber selbst erstellen möchten, lesen Sie die Anweisungen.

Schritt 1: Die Vorlage

Ich habe das grundlegende Site-Layout hinzugefügt, sodass wir keine Zeit damit verschwenden, das Formular zu erstellen und die Site hübsch aussehen zu lassen. Wir werden gleich in die Programmierung einsteigen, wofür Sie hierher gekommen sind.

Öffnen Sie den Site-Vorlagenordner und kopieren Sie ihn entweder auf Ihren localhost oder Ihren Webserver.

Aufmachen index.php und werfen Sie einen Blick darauf. Sie sehen ein einfaches Formular mit 3 Eingängen. Dies sind die Felder, die wir erfassen werden. Wir möchten den Benutzernamen, das Passwort sowie die E-Mail-Adresse. Sie können andere Elemente erfassen, wenn sich Benutzer anmelden. Dies sind jedoch die drei Barebone-Elemente, die wir benötigen.


Schritt 2: Einrichten der MySQL-Datenbank

Öffnen Sie PHPMyAdmin oder ein anderes Programm, mit dem Sie Ihre MySQL-Datenbank verwalten und eine neue Datenbank erstellen. Sie können das nennen, was Sie möchten. Jetzt möchten wir die Zeilen erstellen, die unsere Benutzerinformationen und Bestätigungsinformationen enthalten. Dafür erstellen wir zwei Tabellen. Benutzer und bestätigen.

CREATE TABLE 'Benutzer' ('id' int (11) NICHT NULL auto_increment, 'Benutzername' varchar (50) NICHT 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 = MyISAM AUTO_INCREMENT = 27 DEFAULT CHARSET = utf8;

Unsere erste Tabelle hat 5 Zeilen. Die erste ist die ID, die der Benutzer bei der Anmeldung erhält. Dies ist auf automatische Erhöhung gesetzt, so dass jeder Benutzer eine eindeutige ID erhält. Weiter ist der Benutzername, das Passwort und die ID. In der letzten Zeile können wir den aktiven Status der Benutzer festlegen. Wenn wir die Benutzerzeile zum ersten Mal erstellen, wird der aktive Status standardmäßig auf 0 gesetzt. Dies bedeutet, dass das Benutzerkonto derzeit inaktiv ist. Sobald der Benutzer sein Konto bestätigt hat, wird dies auf 1 gesetzt. Dadurch wird angezeigt, dass das Konto aktiv ist.

CREATE TABLE 'confirm' ('id' int (11) NOT NULL auto_increment, 'userid' varchar (128) NOT NULL default "," Schlüssel "varchar (128) NOT NULL default", "email" varchar (250) default NULL , PRIMARY KEY ('id')) ENGINE = MyISAM AUTO_INCREMENT = 27 DEFAULT CHARSET = utf8;

Unsere zweite Tabelle ist die Bestätigungstabelle. Diese enthält die ID und E-Mail-Adresse des Benutzers sowie einen zufällig generierten Schlüssel, den wir zur Bestätigung des Benutzerkontos verwenden werden.


Schritt 3: Verbindung zur MySQL-Datenbank herstellen

Öffnen Sie die Datei inc / php / config.php.

Zuerst müssen wir die Verbindung zur Datenbank herstellen.

mysql_connect ('localhost', 'username', 'password') oder die ("Ich konnte keine Verbindung zu Ihrer Datenbank herstellen, vergewissern Sie sich, dass Ihre Informationen korrekt sind!");

Abhängig von Ihrem Setup müssen wir einige Variablen ändern. Also, machen Sie weiter und füllen Sie alles aus.

Als Nächstes müssen wir MySQL mitteilen, welche Datenbank wir verwenden möchten.

mysql_select_db ('your_database_name') oder die ("Ich konnte die Datenbanktabelle nicht finden, stellen Sie sicher, dass sie richtig geschrieben ist!");

Sobald alles so bearbeitet wurde, dass es in Ihre Datenbank passt, zeigen Sie auf die Datei index.php auf Ihrem Server.

Wenn Sie oben keine Fehler sehen, sind wir alle miteinander verbunden.


Schritt 4: Formular absenden

Ok, jetzt, da wir alle mit der Datenbank verbunden sind, müssen wir die Formulardaten erfassen, damit der Benutzer sich anmelden kann.

Ich werde dir den Code geben und dann erklären, was los ist. Danach werden wir Änderungen vornehmen und Funktionalität hinzufügen.

Hier ist die Basis; Platziere dies direkt nach dem ersten include an der Spitze von index.php

// Prüfen Sie, ob das Formular gesendet wurde if (isset ($ _ POST ['signup'])) 

Diese if-Anweisung überprüft, ob das Formular übermittelt wurde.

Andernfalls würde unser Skript jedes Mal ausgeführt, wenn die Seite aktualisiert wird, und wir möchten das nicht.

Hinweis: Je nach Anwendung oder allgemeinem Codierstil kann dieser Code in einer separaten Datei abgelegt werden, auf die beim Senden des Formulars zugegriffen wird. Ich habe den Code in einer Datei gespeichert, damit die Dinge einfach und leicht zu verfolgen sind.


Schritt 5: Aufräumen und Überprüfen der Variablen

Wir möchten sicherstellen, dass der Benutzer tatsächlichen Inhalt anstelle eines leeren Formulars übermittelt hat. Daher werden wir einige schnelle Überprüfungen durchführen.

Der erste Teil ist das Platzieren der $ _POST Variablen in einfachere Variablen und bereinigen Sie diese für die Datenbank. Fügen Sie dies in unsere if-Anweisung ein.

$ username = mysql_real_escape_string ($ _ POST ['username']); $ password = mysql_real_escape_string ($ _ POST ['password']); $ email = mysql_real_escape_string ($ _ POST ['email']);

mysql_real_escapse_string () stellt sicher, dass der Benutzer nicht versucht, mit MySQL-Injektion Apostrophe für den Zugriff auf unsere Datenbank zu verwenden. Wenn Sie Informationen in eine Datenbank eingeben möchten, die der Benutzer eingegeben hat, führen Sie diese bitte durch mysql_real_escape_string (). Weitere Informationen zur MySQL-Injektion finden Sie in diesem Artikel auf Wikipedia

Wir haben also unsere Variablen bereinigt. Nun wollen wir überprüfen, ob der Benutzer Felder vergessen hat.

if (empty ($ username)) // Bitte Code in mich einfügen if (empty ($ Kennwort)) // Bitte Code in mich einfügen if (empty ($ email)) // Bitte Code in mich einfügen 

Jetzt haben wir drei if-Anweisungen, die prüfen, ob jedes Feld leer ist. Wenn das Feld leer ist, werden wir einige Variablen zuweisen.

Um die Dinge sauber zu gestalten, erstellen wir ein Array, das den Status des Anmeldeprozesses sowie den Text enthält, den wir dem Benutzer anzeigen müssen.

Direkt über diesem Stück Code erstellen wir ein Array und einige Variablen.

$ action = array (); $ action ['result'] = null; $ text = array ();

Zuerst erstellen wir ein leeres Array mit dem Namen action und setzen dann einen Arraywert von result. Das Ergebnis wird entweder Erfolg oder Fehler enthalten. Als Nächstes erstellen wir ein weiteres leeres Array mit dem Namen Text. Dies wird jeden Text enthalten, den wir dem Benutzer während der Anmeldung zeigen möchten.

Im Moment führen unsere if-Anweisungen, die unsere Variablen prüfen, keinen Code aus. Setzen wir also etwas Code in die erste if-Anweisung.

Fügen Sie diesen Code in die Anweisung if Benutzername ein.

$ action ['result'] = 'error'; array_push ($ text, 'Sie haben Ihren Benutzernamen vergessen');

Angenommen, der Benutzer übermittelt das Formular ohne Benutzernamen. Unsere Anweisung führt den obigen Code aus. Zuerst wird das Ergebnisfeld unseres Aktionsarrays auf Fehler gesetzt.

Dann werden wir verwenden array_push () um etwas Text in unser Textfeld zu setzen. Wir werden den gleichen Code für die letzten beiden "if" -Anweisungen verwenden. Kopieren Sie diesen Code und fügen Sie ihn in die letzten beiden if-Anweisungen ein. Möglicherweise möchten Sie den Text so ändern, dass er der aktuellen if-Anweisung entspricht.

Hinweis: Wir verwenden array_push () falls wir mehrere Fehler in der Formularübermittlung haben. Wenn alle if-Anweisungen ausgeführt werden, sieht das Textfeld folgendermaßen aus:

Array ([0] => "Sie haben Ihren Benutzernamen vergessen", [1] => "Sie haben Ihr Passwort vergessen", [2] => "Sie haben Ihre E-Mail-Adresse vergessen")

Wir müssen nun prüfen, ob Fehler vorliegen, damit der Anmeldevorgang fortgesetzt werden kann.


Schritt 6: Keine Fehler, lassen Sie uns den Benutzer registrieren

Wir werden prüfen, ob der Ergebniswert unseres Aktionsarrays auf Fehler gesetzt ist.

if ($ action ['result']! = 'error') // keine Fehler, Registrierung fortsetzen $ password = md5 ($ password);  $ action ['text'] = $ text;

Wir führen unser Passwort auch über die Funktion md5 () aus. Das nimmt das Kennwort und gibt eine 32-stellige Zeichenfolge zurück, die ungefähr wie folgt aussieht: a3470ce826283eca7ce3360d0f26b230. Es ist empfehlenswert, das Kennwort durch eine Art Hashfunktion zu führen, bevor es in die Datenbank geschrieben wird. Dadurch wird verhindert, dass Benutzer die Passwörter der Benutzer anzeigen, wenn Ihre Datenbank gehackt wird.

Eine schnelle Überprüfung unseres Aktionsergebniswerts und wir können mit der Anmeldung fortfahren. Wenn unser Ergebnis ein Fehler ist, überspringen wir den gesamten Code und geben die Fehler an unseren Benutzer aus, damit er die erforderlichen Änderungen vornehmen kann.

Als letzten Teil dieses Codes legen wir die Werte Ihres Text-Arrays in unser Aktionsarray.


Schritt 7: Hinzufügen des Benutzers zur Datenbank

Fügen Sie diesen Code in unsere letzte if-Anweisung ein.

… Wenn Anweisung nach Fehlern sucht… // zur Datenbank hinzufügen $ add = mysql_query ("VALUE" von INSERT INTO-Benutzern (NULL, '$ username', '$ password', '$ email', 0) "); if ($ add) // Der Benutzer wurde zur Datenbank hinzugefügt else $ action ['result'] = 'error'; array_push ($ text, 'Benutzer konnte nicht zur Datenbank hinzugefügt werden. Grund:'. mysql_error ()); =

Wir gebrauchen mysql_query () und EINFÜGEN um die Benutzerinformationen in die Datenbank einzufügen. Als Nächstes erstellen wir eine weitere if-Anweisung, um zu prüfen, ob der Benutzer der Datenbank hinzugefügt wurde. Dazu prüfen wir, ob die Variable $ add wahr oder falsch ist.

Wenn der Benutzer hinzugefügt wird, können wir mit der Anmeldung fortfahren. Wenn nicht, werden wir einige bekannte Variablen zuweisen und die Anmeldung beenden.

Bei der Arbeit mit MySQL-Abfragen verwenden wir die MySQL-Fehler() Funktion, wenn es Fehler gibt, weil es beim Debuggen hilft, was mit Ihren Abfragen nicht stimmt. Es werden Textfehler ausgegeben, wenn etwas nicht stimmt. Das ist gut!


Schritt 8: Bestätigung wird benötigt

Der Benutzer hat das Formular übermittelt, alles wird überprüft und die Datenbank befindet sich jetzt in der Datenbank. Wir möchten, dass der Benutzer sein Konto verwenden kann. Legen Sie also die Bestätigung fest.

… Wenn hinzugefügter Check… // die neue Benutzer-ID erhalten $ userid = mysql_insert_id (); // einen zufälligen Schlüssel erstellen $ key = $ username. $ email. Datum ('mY'); $ key = md5 ($ key); // Füge die Bestätigungszeile hinzu. $ confirm = mysql_query ("INSERT INTO 'bestätigen' VALUES (NULL, '$ userid', '$ key', '$ email')"); if ($ confirm) // Lass uns die E-Mail senden else $ action ['result'] = 'error'; array_push ($ text, 'Bestätige Zeile wurde nicht zur Datenbank hinzugefügt. Grund:'. mysql_error ()); 

Zur Vereinfachung weisen wir die neue Benutzer-ID einer Variablen zu, damit wir sie später verwenden können. Wir machen dies mit mysql_insert_id (). Dies wird gesetzt $ userid zu der ID des neuen Benutzers.

Als Nächstes erstellen wir den Zufallsschlüssel für diesen bestimmten Benutzer. Wir erstellen eine Variable namens key und füllen sie mit einem Wert aus Benutzername, E-Mail-Adresse und Datum. Die Zeichenfolge wird wie [email protected] aussehen. Danach benutzen wir die md5 () Funktion zum Konvertieren in eine zufällige Zeichenfolge, die für diesen Benutzer eindeutig ist.

Verwenden mysql_query () und INSERT erneut, fügen wir die neue Benutzer-ID, den Schlüssel und die E-Mail-Adresse des Benutzers in die Datenbank ein.


Schritt 9: Einrichten der E-Mail-Vorlagen

Wir werden eine Pause vom PHP-Code nehmen und zwei neue Dateien erstellen. Um schnell und einfach zu sein, werden wir zwei Vorlagen verwenden, die ich in diesem Tutorial enthalten habe. Die zwei Dateien, die wir uns ansehen werden, sind signup_template.html und signup_template.txt. Mit Swift können wir sowohl eine HTML- als auch eine TXT-Version der E-Mail zuweisen, wenn der E-Mail-Client des Benutzers keine HTML-E-Mails unterstützt.

Öffnen Sie signup_template.html Hinweis: Sie können HTML-Code in E-Mails bei carsonified nachlesen. Wir werden diese Datei nicht bearbeiten, ich werde nur erklären, was los ist, und dann können Sie damit rumspielen, sobald das Tutorial abgeschlossen ist. Der wichtigste Teil dieser Datei sind die Tags, die wie aussehen NUTZERNAME und confirm.php? email = EMAIL & key = KEY. Wir werden eine Funktion schreiben, die diese Vorlage verwendet und diese Tags durch die Variablen aus unserem Formular ersetzt.


Schritt 10: Die Vorlagenfunktion

Aufmachen inc / php / functions.php und geben Sie diesen Code ein.

function format_email ($ info, $ format) // setze das Wurzelverzeichnis $ root = $ _SERVER ['DOCUMENT_ROOT']. '/ dev / tutorials / email_signup'; // Nimm den Inhalt der Vorlage. $ template = file_get_contents ($ root. '/ signup_template.'. $ format); // alle Tags ersetzen $ template = ereg_replace ('USERNAME', $ info ['username'], $ template); $ template = ereg_replace ('EMAIL', $ info ['email'], $ template); $ template = ereg_replace ('KEY', $ info ['key'], $ template); $ template = ereg_replace ('SITEPATH', 'http: //site-path.com', $ template); // das HTML der Vorlage zurückgeben return $ template; 

format_email () nimmt zwei Variablen, die in index.php verwendet werden. Die erste ist unser Formularinformationsfeld und die zweite ist das Format. Wir haben eine Formatvariable, so dass wir dieses Array sowohl für die HTML- als auch für die TXT-Version der Vorlage verwenden können.

Zuerst setzen wir die Wurzel. Dies zeigt auf den Ordner, in dem die Vorlagen gehostet werden.

Als Nächstes öffnen wir den Inhalt unserer Vorlage und weisen sie einer Variablen zu.

Jetzt werden wir verwenden ereg_replace () um unsere zu ersetzen NUTZERNAME Tags in unserer Vorlage mit dem Inhalt aus unserem Formular. Es ist im Grunde nur ein sehr einfaches Vorlagensystem.

Zuletzt geben wir die Template-Variable zurück, die die gesamte HTML enthält.

Erklärung: Kurz gesagt, format_email () öffnet unsere Vorlagendateien, nimmt das HTML und weist es unserer Variablen zu. Dies ist nur ein sauberer Weg, um dann den gesamten HTML-Code in der Funktion selbst zuzuweisen.


Schritt 11: Senden der E-Mail

Wir werden eine weitere Funktion schreiben, die sich mit Swift befasst und die E-Mails versendet.

Funktion send_email ($ info) // Jede E-Mail formatieren $ body = format_email ($ info, 'html'); $ body_plain_txt = format_email ($ info, 'txt'); // den Mailer einrichten $ transport = Swift_MailTransport :: newInstance (); $ mailer = Swift_Mailer :: newInstance ($ transport); $ message = Swift_Message :: newInstance (); $ message -> setSubject ('Welcome to Site Name'); $ message -> setFrom (array ('[email protected]' => 'Site Name')); $ message -> setTo (Array ($ info ['email'] => $ info ['username'])); $ message -> setBody ($ body_plain_txt); $ message -> addPart ($ body, 'text / html'); $ result = $ mailer-> send ($ message); $ Ergebnis zurückgeben; 

So wie format_email (), E-Mail senden() nimmt unser Info-Array als Variable. Im ersten Teil der Funktion weisen wir zwei Variablen zu, $ body und $ body_plain_text. Wir benutzen format_email () um die HTML-Werte unserer Vorlage jeder Variablen zuzuweisen. Jetzt kommt der gute Teil. Wir haben die schnelle Instanz mit eingerichtet Swift_MailTransport: newInstance () und dann den Mailer mit einrichten Swift_Mailer :: newInstance ($ transport);

Wir erstellen eine neue Instanz der Swift-Nachricht und beginnen, dieser Instanz einige Variablen zuzuweisen. Wir setzen den Betreff, von E-Mail und an E-Mail-Adresse und verwenden dann setBody () um die Textversion der E-Mail der Mailer-Instanz zuzuweisen. Um die HTML-Version hinzuzufügen, verwenden wir addPart (). Das senden() Die Funktion kümmert sich um das Versenden der E-Mail und wir geben das Ergebnis zurück. Okay, wir haben unsere E-Mail-Funktionen zum Erstellen und Senden von Funktionen erstellt. Gehen wir zurück zu index.php und beginnen Sie damit, die Hauptanmeldung abzuschließen.


Schritt 12: Haben wir gesendet? Sollen wir bestätigen??

Unser letztes Bit hätte die if -Anweisung sein sollen, die prüft, ob die Bestätigungszeile erstellt wurde.

Lassen Sie uns die E-Mail senden und prüfen, ob alles in Ordnung war.

… Wenn bestätigen… // Include die Swift-Klasse include_once 'inc / php / swift / swift_required.php'; // füge info in ein Array ein, das an die Funktion gesendet werden soll $ info = array ('username' => $ username, 'email' => $ email, 'key' => $ key); // E-Mail senden, wenn (send_email ($ info)) E-Mail gesendet $ action ['result'] = 'success'; array_push ($ text, 'Danke für Ihre Anmeldung. Bitte überprüfen Sie Ihre E-Mail zur Bestätigung!');  else $ action ['result'] = 'error'; array_push ($ text, 'Bestätigungs-E-Mail konnte nicht gesendet werden'); 

Ohne die Swift-Klasse können wir keine E-Mails versenden. In unserer ersten Zeile schließen wir die Swift-Klasse ein. Wir müssen unsere Informationen an unsere beiden neuen Funktionen senden, sodass wir ein neues Array erstellen und ihm unsere Variablen zuweisen. Ich weiß, ich kenne mehr Anweisungen, aber wir müssen nach Fehlern suchen, um es den Benutzern zu erleichtern. Sie müssen immer davon ausgehen, dass die Benutzer jeden möglichen Fehler machen.

Wir wickeln unsere E-Mail senden() Funktion in einer anderen if-Anweisung sowie das $ info-Array übergeben. Wenn die E-Mail gesendet wird, weisen wir einen Erfolgswert zu und danken dem Benutzer für die Anmeldung. Bei Fehlern verwenden wir die bekannten Variablen. Jetzt sind wir fast fertig mit der Anmeldung, es muss nur eine letzte Funktion erstellt werden. Obwohl wir all diese Fehler- / Erfolgsvariablen und Texte zuweisen, haben wir diese Informationen dem Benutzer nicht angezeigt.

Gehen Sie zurück zu functions.php und fügen Sie diesen Code ein.

// Fehlerbereinigung function show_errors ($ action) $ error = false; if (! empty ($ action ['result'])) $ error = "
    "." \ n "; if (is_array ($ action ['text'])) // jeden Fehler ausforschen ($ action ['text'] als $ text) $ error. ="
  • $ text

  • "." \ n "; else // single error $ error. ="
  • $ action [Text]

  • "; $ error. ="
"." \ n "; $ Fehler zurückgeben;

Dies mag verwirrend erscheinen, aber es macht wirklich nur den Erfolg oder die Fehler schön.

Zuerst wird geprüft, ob das Array leer ist, sodass der Code nicht ausgeführt wird, wenn er nicht benötigt wird.

Als Nächstes wird ein ul-Tag erstellt und das Ergebnis als Klasse angewendet. Dies wird entweder Erfolg oder Fehler sein und ist nur ästhetisch.

Wir prüfen dann, ob die Textvariable ein Array oder nur eine Zeichenfolge ist. Wenn es sich um einen String handelt, wickeln wir ihn in ein Li ein. Wenn es sich um ein Array handelt, durchlaufen wir jedes Arrayelement und wickeln es in ein Li ein.

Zuletzt schließen wir die ul und geben die gesamte Zeichenfolge zurück.

Wenn wir zu index.php zurückkehren und diesen Code direkt nach dem Einfügen einfügen header.php Wir können diesen Abschnitt abschließen.

… Header enthalten… 

Eine kurze kleine Erklärung. Wir nehmen alle Werte unseres Aktionsfeldes und übergeben es an das show_errors () Funktion. Wenn Inhalte vorhanden sind, wird eine schöne ungeordnete Liste zurückgegeben.


Schritt 13: Bestätigen des Benutzers

Wir sollten einen guten Überblick darüber haben, wie das Skript funktioniert. Für das nächste Skript gebe ich Ihnen also den gesamten Code und gehe dann mit Ihnen durch.

Aufmachen confirm.php und fügen Sie diese zwischen dem Header-Include und Ihrem ein show_errors () Funktion.

// einige Variablen einrichten $ action = array (); $ action ['result'] = null; // schnelle / einfache Überprüfung if (leer ($ _ GET ['email']) || leer ($ _ GET ['key'])) $ action ['result'] = 'error'; $ action ['text'] = 'Es fehlen Variablen. Bitte überprüfen Sie Ihre E-Mail nochmals. ';  if ($ action ['result']! = 'error') // Bereinigung der Variablen $ email = mysql_real_escape_string ($ _ GET ['email']); $ key = mysql_real_escape_string ($ _ GET ['key']); // Prüfen Sie, ob der Schlüssel in der Datenbank $ check_key = mysql_query ("SELECT * FROM" bestätigt ist, "WHERE" email "=" $ email "AND" key "=" $ key "LIMIT 1") oder die (mysql_error () ); if (mysql_num_rows ($ check_key)! = 0) // Bestätigungsinfo abrufen $ confirm_info = mysql_fetch_assoc ($ check_key); // Bestätige die E-Mail und aktualisiere die Benutzerdatenbank $ update_users = mysql_query ("UPDATE 'SET' active '= 1 WHERE' id '=' $ confirm_info [userid] 'LIMIT 1") oder die (mysql_error ()); // lösche die Bestätigungszeile $ delete = mysql_query ("DELETE FROM 'bestätige' WHERE 'id' = '$ confirm_info [id]' LIMIT 1") oder die (mysql_error ()); if ($ update_users) $ action ['result'] = 'success'; $ action ['text'] = 'Benutzer wurde bestätigt. Danke dir!';  else $ action ['result'] = 'error'; $ action ['text'] = 'Der Benutzer konnte nicht aktualisiert werden. Grund:' .mysql_error () ;;  else $ action ['result'] = 'error'; $ action ['text'] = 'Der Schlüssel und die E-Mail-Adresse befindet sich nicht in unserer Datenbank.'; 

Das meiste davon sollte sehr vertraut aussehen; Ich werde also weitergehen und nachsehen, ob sich der Schlüssel in der Datenbank befindet.

Wieder verwenden wir mysql_query () um Zeilen in der Datenbank abzurufen, in denen die E-Mail und der Schlüssel den von der E-Mail des Benutzers angegebenen Schlüsseln entsprechen.

Wir gebrauchen mysql_num_rows () um zu überprüfen, ob die Anzahl der zurückgegebenen Zeilen größer als 0 ist.

Wenn sich E-Mail und Schlüssel in der Datenbank befinden, greifen wir alle Informationen aus der Datenbank auf mysql_fetch_assoc ().

Nachdem der Benutzer sein Konto bestätigt hat, müssen wir die Datenbank aktualisieren und die aktive Zeile auf 1 setzen.

Wir gebrauchen mysql_query () wieder, aber statt EINFÜGEN wir gebrauchen AKTUALISIEREN um die aktive Zeile auf 1 zu aktualisieren, wobei die Benutzer-ID der aktuellen Benutzer-ID entspricht.

Um alles aufzuräumen, benutzen wir mysql_query () und LÖSCHEN um die Bestätigungszeile aus der Datenbank zu entfernen. Dadurch wird sichergestellt, dass der Benutzer nicht zu dieser Seite zurückkehren und erneut bestätigen kann. Es hält auch die Datenbank schön und sauber.


Fazit

In diesem Tutorial haben wir viele verschiedene Bereiche behandelt. Wir haben ein Skript von Drittanbietern heruntergeladen und mitgeliefert, das sich mit dem Versand der E-Mails befasst, eine einfache Formularvalidierung implementiert und ein sehr einfaches Vorlagensystem zum Gestalten unserer E-Mails erstellt. Wenn Sie mit MySQL noch nicht vertraut sind, haben wir uns mit den drei am häufigsten verwendeten Funktionen von MySQL beschäftigt. Sie sollten also kein Problem damit haben, einige fortgeschrittenere Tutorials zu absolvieren.


Abschließende Anmerkungen

  • Ich habe Swift Mailer als E-Mail-Bereitstellungsskript verwendet, das hier heruntergeladen werden kann: http://swiftmailer.org/
  • Ich habe auch Button-Stile von Zurb verwendet. Schaut sie euch an und schenkt ihnen etwas Liebe. http://www.zurb.com/blog_uploads/0000/0485/buttons-02.html

Vielen Dank für das Lesen und besuchen Sie mich auf Twitter, wenn Sie Fragen haben!