So implementieren Sie die E-Mail-Überprüfung für neue Mitglieder

Haben Sie schon einmal ein Konto für eine Website erstellt und mussten Ihre E-Mails überprüfen und auf einen Bestätigungslink klicken, der vom Unternehmen gesendet wurde, um sie zu aktivieren? Dadurch wird die Anzahl der Spam-Konten stark reduziert. In dieser Lektion lernen wir genau, wie das geht!

Suche nach einer Verknüpfung?

In diesem Lernprogramm erfahren Sie, wie Sie ein E-Mail-Überprüfungsskript von Grund auf erstellen. Wenn Sie jedoch etwas benötigen, das Sie sofort auf Ihrer Website verwenden können, lesen Sie E-Mail-Überprüfung auf Envato Market. 

Email Verify ist ein PHP-Skript, mit dem Sie E-Mail-Adressen überprüfen können, ohne etwas in Datenbanken zu speichern. Benutzer erhalten eine E-Mail, in der sie aufgefordert werden, auf einen Link zu klicken, um ihre E-Mail zu bestätigen, bevor sie zu dem hinzugefügt wird, zu dem Sie sie hinzufügen möchten.

E-Mail-Überprüfung auf dem Envato-Markt

Was werden wir bauen??

Wir werden ein nettes PHP-Anmeldeskript erstellen, mit dem ein Benutzer ein Konto erstellen kann, um Zugriff auf einen "Mitgliederbereich" einer Website zu erhalten.
Nachdem der Benutzer sein Konto erstellt hat, wird das Konto gesperrt, bis der Benutzer auf einen Bestätigungslink klickt, den er in seinem E-Mail-Posteingang erhält.


Schritt 1 - Anmeldeseite

Wir benötigen zunächst eine einfache Seite, auf der unsere Besucher ihre Konten registrieren können. Das ist das Erste, was wir bauen werden.
Ich möchte Sie daran erinnern, dass dies ein PHP-Tutorial ist. Meiner Meinung nach müssen Sie die Grundlagen von HTML kennen, bevor Sie mit PHP fortfahren. Ich füge dem HTML & CSS Kommentare hinzu, um jede Codezeile zu beschreiben.

index.php - Dies ist unsere Anmeldeseite mit einem Basisformular.

   NETTUTS> Anmeldung     

NETTUTS> Anmeldung

Anmeldeformular

Bitte geben Sie Ihren Namen und Ihre E-Mail-Adresse ein, um Ihr Konto zu erstellen

css / style.css - Dies ist ein Stylesheet für index.php und weitere Seiten.

/ * Global Styles * / * padding: 0; / * Alle Auffüllen auf 0 zurücksetzen * / margin: 0; / * Setzt den gesamten Rand auf 0 zurück * / body background: # F9F9F9; / * HTML-Hintergrundfarbe einstellen * / font: 14px "Lucida Grande"; / * Globale Schriftgröße und -familie festlegen * / Farbe: # 464646; / * Setze globale Textfarbe * / p Marge: 10px 0px 10px 0px; / * Füge oben und unten ein Polster hinzu 

Tags * / / * Kopfzeile * / #header height: 45px; / * Kopfhöhe einstellen * / Hintergrund: # 464646; / * Hintergrundfarbe des Headers festlegen * / #header h3 color: # FFFFF3; / * Kopfzeile (oberer linker Titel) einstellen Farbe * / Füllung: 10px; / * Padding einstellen, um es innerhalb der Kopfzeile zu zentrieren * / font-weight: normal; / * Setzt die Schriftgewicht auf "Normal", standardmäßig war es auf Fett gesetzt * / / * Wrap * / #wrap background: #FFFFFF; / * Setze den Hintergrund auf Weiß * / width: 615px; / * Legen Sie die Breite unseres Inhaltsbereichs fest * / margin: 0 auto; / * Zentriere unsere Inhalte in unserem Browser * / margin-top: 50px; / * Margin top, um etwas Abstand zwischen dem Header und dem Inhalt zu schaffen * / padding: 10px; / * Auffüllen, um mehr Platz für unseren Text zu schaffen * / border: 1px solid #DFDFDF; / * Kleiner Rand für den letzten Schliff * / text-align: center; / * Zentriere unseren Inhaltstext * / #wrap h3 font: italic 22px Georgia; / * Legt die Schriftart für unsere Überschrift 2 fest, die in unserem Wrap angezeigt wird. * / / * Formatvorlagen für Form & Eingabe * / form margin-top: 10px; / * Entferne den Abstand zum Beschreibungstext * / form .submit_button background: # F9F9F9; / * Hintergrundfarbe einstellen * / border: 1px solid #DFDFDF; / * Kleiner Rand um unseren Submit-Button * / padding: 8px; / * Fügen Sie etwas mehr Platz um unseren Schaltflächentext hinzu. * / Input font: normal 16px Georgia; / * Setze Schriftart für unsere Eingabefelder * / border: 1px solid #DFDFDF; / * Kleiner Rand um unser Eingabefeld * / padding: 8px; / * Fügen Sie etwas mehr Platz um unseren Text hinzu * /

Wie Sie sehen, habe ich jeder Zeile einen Kommentar hinzugefügt, der beschreibt, was sie tun. Möglicherweise haben Sie auch den folgenden Kommentar in der Datei index.php bemerkt:

 

Wir werden unser PHP zwischen diesen beiden Zeilen schreiben!


Schritt 2 - Eingabevalidierung

Das erste, was wir bauen werden, ist ein Code, der die Informationen validiert. Hier ist eine kurze Liste, die ausführlich beschreibt, was zu tun ist.

  • Wenn das Namensfeld nicht leer ist.
  • Wenn der Name nicht zu kurz ist.
  • Wenn das E-Mail-Feld nicht leer ist.
  • Wenn die E-Mail-Adresse gültig ist, [email protected]

Unser erster Schritt ist also zu prüfen, ob das Formular gesendet wird und die Felder nicht leer sind.

  

Zeit für eine Panne! Wir beginnen mit einer IF-Anweisung und validieren zunächst das Namensfeld:

 if () // Wenn die Anweisung true ist, führen Sie den Code in Klammern aus isset ($ _ POST ['name']) // Ist das Namensfeld, das gepostet wird; es ist egal, ob es leer oder gefüllt ist. && // Dies ist dasselbe wie das AND in unserer Anweisung; Damit können Sie mehrere Anweisungen überprüfen. ! empty ($ _ POST ['name']) // Prüfen Sie, ob der Feldname nicht leer ist. isset ($ _ POST ['email']) // Wird das E-Mail-Feld veröffentlicht? es ist egal, ob es leer oder gefüllt ist. && // Dies ist dasselbe wie das AND in unserer Anweisung; Damit können Sie mehrere Anweisungen überprüfen. ! empty ($ _ POST ['email']) // Überprüfen Sie, ob das Feld email nicht leer ist

Wenn Sie also das Formular jetzt mit leeren Feldern absenden, passiert nichts. Wenn Sie beide Felder ausfüllen, führt unser Skript den Code zwischen den Klammern aus.
Jetzt erstellen wir einen Code, der überprüft, ob eine E-Mail-Adresse gültig ist. Ist dies nicht der Fall, wird ein Fehler zurückgegeben. Lassen Sie uns auch unsere Post-Variablen in lokale Variablen umwandeln:

if (isset ($ _ POST ['name']) &&! empty ($ _ POST ['name']) UND isset ($ _ POST ['email']) &&! empty ($ _ POST ['email'])) $ name = mysql_escape_string ($ _ POST ['name']); // Verwandle unseren Beitrag in eine lokale Variable $ email = mysql_escape_string ($ _ POST ['email']); // Verwandle unseren Beitrag in eine lokale Variable

Wir können unsere Daten jetzt über unsere lokalen Variablen erreichen. Wie Sie sehen, habe ich auch eine MySQL-Escape-Zeichenfolge hinzugefügt, um das Einfügen von MySQL-Daten beim Einfügen der Daten in die MySQL-Datenbank zu verhindern.

"Mit der Funktion mysql_real_escape_string () werden Sonderzeichen in einer Zeichenfolge zur Verwendung in einer SQL-Anweisung umgangen."

Reguläre Ausdrücke

Das nächste ist ein kleiner Ausschnitt, der prüft, ob die E-Mail-Adresse gültig ist.

 $ name = mysql_escape_string ($ _ POST ['name']); $ email = mysql_escape_string ($ _ POST ['email']); if (! eregi ("^ [_a-z0-9 -] + (\. [_a-z0-9 -] +) * @ [a-z0-9 -] + (\. [a-z0-9- ] +) * (\. [az] 2,3) $ ", $ email)) // Rückgabefehler - Ungültige E-Mail else // Rückmeldung erfolgreich - Gültige E-Mail

Bitte beachten Sie, dass ich diesen regulären Ausdruck nicht persönlich geschrieben habe, es handelt sich um einen kleinen Ausschnitt aus php.net.
Grundsätzlich wird überprüft, ob die E-Mail im folgenden Format geschrieben ist:

 [email protected]

Jetzt im eregi können Sie sehen, dass es überprüft, ob die E-Mail Zeichen aus dem Alphabet enthält, ob es Zahlen oder einen Phantomstrich (_) enthält, und natürlich die Grundvoraussetzungen für eine E-Mail (E-Mail) '@' und ein Punkt)'.' Wenn keines dieser Zeichen gefunden wird, gibt der Ausdruck "false" zurück. Okay, jetzt müssen wir einige grundlegende Fehlermeldungen hinzufügen.

 if (! eregi ("^ [_a-z0-9 -] + (\. [_a-z0-9 -] +) * @ [a-z0-9 -] + (\. [a-z0-9- ] +) * (\. [az] 2,3) $ ", $ email)) // Rückgabefehler - Ungültige E-Mail $ msg = 'Die eingegebene E-Mail-Adresse ist ungültig. Bitte versuchen Sie es erneut.';  else // Erfolg melden - Gültige E-Mail $ msg = 'Ihr Konto wurde erstellt, 
Bitte überprüfen Sie es, indem Sie auf den Aktivierungslink klicken, der an Ihre E-Mail gesendet wurde. ';

Wie Sie sehen, haben wir eine lokale Variable "$ msg" erstellt. Dadurch können wir den Fehler oder die Erfolgsmeldung an einer beliebigen Stelle der Seite anzeigen.
Und wir werden es zwischen dem Anweisungstext und dem Formular anzeigen.

  

Anmeldeformular

Bitte geben Sie Ihren Namen und Ihre E-Mail-Adresse ein, um Ihr Konto zu erstellen

'. $ msg.'
'; // Zeigen Sie unsere Nachricht an und wickeln Sie sie in ein Div mit der Klasse "Statusmsg" ein. ?>

Fügen Sie dies zu style.css, um unsere Statusmeldung ein wenig zu gestalten.

#wrap .statusmsg font-size: 12px; / * Setze die Schriftgröße für Nachrichten * / padding: 3px; / * Einige Füllungen, um mehr Platz für unseren Text zu schaffen * / background: #EDEDED; / * Hintergrundfarbe zu unserer Statusmeldung hinzufügen * / border: 1px solid #DFDFDF; / * Füge einen Rand um unsere Statusnachricht hinzu * /

Schritt 3 - Erstellen der Datenbank und Herstellen einer Verbindung

Jetzt müssen wir eine Datenbankverbindung herstellen und eine Tabelle erstellen, um die Kontodaten einzufügen. Gehen wir also zu PHPMyAdmin und erstellen Sie eine neue Datenbank mit dem Namen Registrierungen und erstellen Sie ein Benutzerkonto, das Zugriff auf diese Datenbank hat, um Daten einzufügen und zu aktualisieren.

Lass uns unsere erstellen Benutzer Tabelle mit 5 Feldern:

Jetzt müssen wir Details für diese Felder eingeben:

Für diejenigen, die diese Daten nicht manuell eingeben möchten, können Sie stattdessen den folgenden SQL-Code ausführen.

CREATE TABLE 'Benutzer' ('id' INT (10) NOT NULL AUTO_INCREMENT PRIMARY KEY, 'Benutzername' VARCHAR (32) NOT NULL, 'Passwort' VARCHAR (32) NOT NULL, 'E-Mail' TEXT NOT NULL, 'Hash' VARCHAR (32) NOT NULL, 'aktiv' INT (1) NOT NULL STANDARD '0') ENGINE = MYISAM;

Unsere Datenbank wird erstellt, jetzt müssen wir eine Verbindung mit PHP herstellen. Wir schreiben den folgenden Code am Anfang unseres Skripts direkt unter der folgenden Zeile:

  

Wir verwenden den folgenden Code, um eine Verbindung zum Datenbankserver herzustellen und die Option auszuwählen Registrierungen Datenbank. (grundlegende MySQL-Verbindung)

mysql_connect ("localhost", "username", "password") oder die (mysql_error ()); // Verbindung zum Datenbankserver (localhost) mit Benutzername und Kennwort herstellen. mysql_select_db ("registrations") oder die (mysql_error ()); // Registrierdatenbank auswählen.

Nachdem wir nun eine Verbindung zu unserer Datenbank hergestellt haben, können wir mit dem nächsten Schritt fortfahren und die Kontodetails einfügen.


Schritt 4 - Konto einfügen

Nun ist es an der Zeit, die übermittelten Kontodaten in unsere Datenbank einzugeben und einen Aktivierungs-Hash zu generieren. Schreiben Sie den folgenden Code unter dieser Zeile:

// Erfolg zurückgeben - Gültige E-Mail $ msg = 'Ihr Konto wurde erstellt, 
Bitte überprüfen Sie es, indem Sie auf den Aktivierungslink klicken, der an Ihre E-Mail gesendet wurde. ';

Aktivierungs-Hash

In unserer Datenbank haben wir ein Feld mit dem Namen hash erstellt. Dieser Hash ist eine aus 32 Zeichen bestehende Zeichenfolge. Wir senden diesen Code auch an die E-Mail-Adresse des Benutzers. Sie können dann auf den Link klicken (der den Hash enthält) und wir werden prüfen, ob er mit dem in der Datenbank übereinstimmt. Erstellen wir eine lokale Variable namens $ hash und generieren Sie einen zufälligen md5-Hash.

$ hash = md5 (rand (0,1000)); // Generiere einen zufälligen Hash mit 32 Zeichen und weise ihn einer lokalen Variablen zu. // Beispielausgabe: f4552671f8909587cf485ea990207f3b

Was haben wir getan? Nun, wir verwenden die PHP-Funktion "rand", um eine Zufallszahl zwischen 0 und 1000 zu generieren. Als Nächstes wird unsere MD5-Funktion diese Zahl in eine aus 32 Zeichen bestehende Textzeichenfolge umwandeln, die wir in unserer Aktivierungs-E-Mail verwenden werden. Meine Wahl ist MD5, da es einen Hash von 32 Zeichen generiert, der sicher und in diesem Fall nicht zu knacken ist.

Ein zufälliges Passwort erstellen

Als nächstes müssen wir ein zufälliges Passwort für unser Mitglied erstellen:

$ password = rand (1000, 5000); // Generiere eine Zufallszahl zwischen 1000 und 5000 und ordne sie einer lokalen Variablen zu. // Beispielausgabe: 4568

Fügen Sie die folgenden Informationen mithilfe einer MySQL-Abfrage in unsere Datenbank ein

mysql_query ("INSERT INTO-Benutzer (Benutzername, Kennwort, E-Mail-Adresse, Hash)) VALUES ('". mysql_escape_string ($ name). "", "". mysql_escape_string (md5 ($ password)). "', '". mysql_escape_string ($ email). "','". mysql_escape_string ($ hash). "')") oder die (mysql_error ());

Wie Sie sehen, fügen wir alle Daten mit einem MySQL-Escape-String ein, um jegliche MySQL-Injektion zu verhindern.
Möglicherweise stellen Sie auch fest, dass die MD5-Funktion das zufällige Kennwort zum Schutz in einen sicheren Hash ändert. Beispiel: Wenn eine "böse" Person Zugriff auf die Datenbank erhält, kann sie die Passwörter nicht lesen.

Füllen Sie zum Testen das Formular aus und prüfen Sie, ob die Daten in unsere Datenbank eingefügt werden.


Schritt 5 - Senden Sie die Bestätigungs-E-Mail

Nachdem wir die Informationen in unsere Datenbank eingefügt haben, müssen wir dem Benutzer eine E-Mail mit dem Bestätigungslink senden. Verwenden wir dazu die PHP-Mail-Funktion.

$ to = $ email; // E-Mail an unseren Benutzer senden $ subject = 'Signup | Nachprüfung'; // Gib der E-Mail einen Betreff $ message = 'Danke für deine Anmeldung! Ihr Konto wurde erstellt. Sie können sich mit den folgenden Anmeldedaten anmelden, nachdem Sie Ihr Konto aktiviert haben, indem Sie unten auf die URL klicken. ------------------------ Benutzername: '. $ Name.' Passwort: '. $ Passwort.' ------------------------ Bitte klicken Sie auf diesen Link, um Ihr Konto zu aktivieren: http://www.yourwebsite.com/verify.php?email= ' . $ email. '& hash ='. $ hash. "; // Unsere Nachricht mit dem Link $ headers = 'From: [email protected]'." \ r \ n "; // Von Kopfzeilen mail ($ zu $ Betreff, $ Nachricht, $ Kopfzeilen); // Senden Sie unsere E-Mail

Jetzt bremsen wir die Nachricht ab:

Danke für's Registrieren! Ihr Konto wurde erstellt. Sie können sich mit den folgenden Anmeldedaten anmelden, nachdem Sie Ihr Konto aktiviert haben, indem Sie unten auf die URL klicken. ------------------------ Benutzername: '. $ Name.' Passwort: '. $ Passwort.' ------------------------

Im obigen Code senden wir eine kurze Beschreibung an unseren Benutzer, die den Benutzernamen und das Kennwort enthält. Dabei werden die lokalen Variablen verwendet, die wir erstellt haben, als die Daten gepostet wurden.

Bitte klicken Sie auf diesen Link, um Ihr Konto zu aktivieren: http://www.Ihrwebsite.de/verify.php?email='.$email.'&hash='.$hash. '

In diesem Abschnitt des Codes haben wir einen dynamischen Link erstellt. Das Ergebnis wird so aussehen:

Wie Sie sehen, wird eine feste URL erstellt, die nicht zu erraten ist. Dies ist eine sehr sichere Methode, um die E-Mail-Adresse eines Benutzers zu überprüfen.


Schritt 6 - Kontoaktivierung

Wie Sie sehen, führt unsere URL zu verify.php Lassen Sie uns das erstellen, indem wir dieselbe grundlegende Vorlage verwenden, die wir für index.php verwendet haben.
Entfernen Sie jedoch das Formular aus der Vorlage.

   NETTUTS> Anmeldung     

NETTUTS> Anmeldung

Als erstes müssen wir prüfen, ob wir unsere $ _GET-Variablen (email & hash) haben.

if (isset ($ _ GET ['email']) &&! leer ($ _ GET ['email']) UND isset ($ _ GET ['hash']) &&! empty ($ _ GET ['hash'])) / / Daten überprüfen else // Ungültiger Ansatz

Um es etwas einfacher zu machen, weisen wir unsere lokalen Variablen zu und fügen etwas MySQL-Injection-Prävention hinzu, indem wir erneut den MySQL-Escape-String verwenden.

if (isset ($ _ GET ['email']) &&! leer ($ _ GET ['email']) UND isset ($ _ GET ['hash']) &&! empty ($ _ GET ['hash'])) / / Daten überprüfen $ email = mysql_escape_string ($ _ GET ['email']); // E-Mail-Variable setzen $ hash = mysql_escape_string ($ _ GET ['hash']); // Hash-Variable setzen

Als Nächstes prüfen Sie die Daten aus der URL mit den Daten in unserer Datenbank mithilfe einer MySQL-Abfrage.

$ search = mysql_query ("SELECT email, hash, active FROM Benutzer WHERE. $ email." "AND. $ hash." "AND active =" 0 "") oder die (mysql_error ()); $ match = mysql_num_rows ($ search);

Im obigen Code haben wir eine MySQL-Select-Anweisung verwendet und geprüft, ob E-Mail und Hash übereinstimmen. Abgesehen davon haben wir überprüft, ob der Status des Kontos "inaktiv" ist. Schließlich verwenden wir mysql_num_rows, um festzustellen, wie viele Übereinstimmungen gefunden wurden. Also lassen Sie uns das ausprobieren. Verwenden Sie einfach ein einfaches Echo, um die Ergebnisse zurückzugeben.

$ search = mysql_query ("SELECT email, hash, active FROM Benutzer WHERE. $ email." "AND. $ hash." "AND active =" 0 "") oder die (mysql_error ()); $ match = mysql_num_rows ($ search); echo $ match; // Anzeige, wie viele Übereinstimmungen gefunden wurden -> entfernen, wenn der Test abgeschlossen ist;)

Wir haben ein SPIEL! Um das Ergebnis zu ändern, ändern Sie einfach die E-Mail und Sie sehen, dass die zurückgegebene Nummer lautet 0.
Wir können unsere nutzen $ match Variable, um entweder das Konto zu aktivieren oder einen Fehler zurückzugeben, wenn keine Übereinstimmung gefunden wurde.

if ($ match> 0) // Wir haben eine Übereinstimmung, aktivieren Sie das Konto else // Keine Übereinstimmung -> ungültige URL oder Konto wurde bereits aktiviert. 

Um das Konto zu aktivieren, müssen wir das aktualisieren aktiv Feld auf 1 mit einer MySQL-Abfrage.

// Wir haben eine Übereinstimmung, aktivieren Sie das Konto mysql_query ("UPDATE-Benutzer SET active =" 1 "WHERE. $ Email." "AND. $ Hash." "AND active =" 0 "")) oder die (mysql_error ()) ; Echo '
Ihr Konto wurde aktiviert, Sie können sich jetzt anmelden
';

Daher verwenden wir für das Update dieselben Suchbegriffe wie in unserer MySQL-Auswahlabfrage. Wir ändern aktiv auf 1, wobei E-Mail, Hash und Feld aktiv = 0 übereinstimmen. Wir senden auch eine Nachricht zurück, die den Benutzer darüber informiert, dass sein Konto aktiviert wurde. Sie können dem Teil "Keine Übereinstimmung" eine Nachricht wie hier hinzufügen. Der endgültige Code sollte also ähnlich aussehen:

mysql_connect ("localhost", "tutorial", "password") oder die (mysql_error ()); // Verbindung zum Datenbankserver (localhost) mit Benutzername und Kennwort herstellen. mysql_select_db ("registrations") oder die (mysql_error ()); // Registrierungsdatenbank auswählen. if (isset ($ _ GET ['email']) &&! leer ($ _ GET ['email']) UND isset ($ _ GET ['hash']) &&! empty ($ _ GET ['hash'])) / / Daten überprüfen $ email = mysql_escape_string ($ _ GET ['email']); // E-Mail-Variable setzen $ hash = mysql_escape_string ($ _ GET ['hash']); // Setze die Hash-Variable $ search = mysql_query ("SELECT email, hash, aktive FROM Benutzer WHERE. $ Email." "AND. $ Hash." "AND active =" 0 "") oder die (mysql_error ()); $ match = mysql_num_rows ($ search); if ($ match> 0) // Wir haben eine Übereinstimmung, aktivieren Sie das Konto mysql_query ("UPDATE-Benutzer SET active =" 1 "WHERE. $ email." "AND. $ hash." "AND active =" 0 "" ) oder die (mysql_error ()); Echo '
Ihr Konto wurde aktiviert, Sie können sich jetzt anmelden
'; else // Keine Übereinstimmung -> ungültige URL oder Konto wurde bereits aktiviert. Echo '
Die URL ist entweder ungültig oder Sie haben Ihr Konto bereits aktiviert.
'; else // Ungültiges Anflugecho '
Ungültige Vorgehensweise, verwenden Sie bitte den Link, der an Ihre E-Mail gesendet wurde.
';

Wenn du besuchst verify.php ohne Zeichenfolgen wird der Folgefehler angezeigt:


Schritt 7 - Einloggen

In diesem letzten Schritt zeige ich Ihnen, wie Sie ein einfaches Anmeldeformular erstellen und prüfen, ob das Konto aktiviert ist. Erstellen Sie zuerst eine neue Datei mit dem Namen login.php mit der Basisvorlage, die wir zuvor verwendet haben, aber dieses Mal habe ich das Formular in ein Anmeldeformular geändert.

   NETTUTS> Anmeldung     

NETTUTS> Anmeldung

Login Formular

Bitte geben Sie Ihren Namen und Ihr Passwort ein, um sich anzumelden

'. $ msg.'
'; // Zeigen Sie unsere Nachricht an und fügen Sie ein div mit der Klasse statusmsg?> Ein

Das Formular ist ein einfaches HTML und fast das gleiche wie das Anmeldeformular. Eine weitere Erklärung ist nicht erforderlich. Nun ist es Zeit, den Code für das Anmeldeskript zu schreiben, das wir direkt unter dem MySQL-Verbindungscode schreiben werden. Wir beginnen mit etwas, das wir auch im Anmeldeformular gemacht haben.

if (isset ($ _ POST ['name']) &&! empty ($ _ POST ['name']) UND isset ($ _ POST ['password']) &&! empty ($ _ POST ['password'])) / / Beide Felder werden gebucht und sind dort nicht leer

Wir prüfen also zuerst, ob die Daten gepostet werden, und stellen sicher, dass sie nicht leer sind.
Als nächstes erstellen Sie einige lokale Variablen für die Postdaten:

if (isset ($ _ POST ['name']) &&! empty ($ _ POST ['name']) UND isset ($ _ POST ['password']) &&! empty ($ _ POST ['password'])) $ username = mysql_escape_string ($ _ POST ['name']); // Setze Variable für den Benutzernamen $ password = mysql_escape_string (md5 ($ _ POST ['password'])); // Variable für das Passwort setzen und in einen MD5-Hash konvertieren. 

Wir haben die lokalen Variablen erstellt und das Kennwort in einen MD5-Hash geändert, der mit dem in der Datenbank gespeicherten Kennwort-Hash übereinstimmt.
Nun ist es Zeit, die Verbindung zu unserer "Benutzer" -Tabelle herzustellen und zu überprüfen, ob die eingegebenen Daten korrekt sind.

if (isset ($ _ POST ['name']) &&! empty ($ _ POST ['name']) UND isset ($ _ POST ['password']) &&! empty ($ _ POST ['password'])) $ username = mysql_escape_string ($ _ POST ['name']); $ password = mysql_escape_string (md5 ($ _ POST ['password'])); $ search = mysql_query ("SELECT Benutzername, Passwort, aktive FROM Benutzer WHERE. $ Benutzername." "UND. $ Passwort." "AND active =" 1 "") oder die (mysql_error ()); $ match = mysql_num_rows ($ search); 

Wir haben eine MySQL-Abfrage geschrieben, die den Benutzernamen, das Kennwort und die aktiven Informationen aus unserer Datenbank auswählt, wenn der Benutzername und das Kennwort übereinstimmen.
UND aktiv = "1" ist! WICHTIG! Dadurch wird sichergestellt, dass Sie sich nur anmelden können, wenn Ihr Konto aktiviert ist. Wir verwenden erneut die MySQL-Zeilen, um zu sehen, wie viele Übereinstimmungen gefunden werden.

if ($ match> 0) $ msg = 'Anmeldung abgeschlossen! Vielen Dank'; // Cookie setzen / Sitzung starten / Download starten usw.… else $ msg = 'Anmeldung fehlgeschlagen! Bitte vergewissern Sie sich, dass Sie die richtigen Daten eingeben und dass Sie Ihr Konto aktiviert haben. '; 

Im obigen Code prüfen wir, ob der Login erfolgreich war oder nicht.


Das Ende

Und das ist das Ende dieses Tutorials! Ich hoffe es hat euch gefallen, und wenn ja, dann bitte einen Kommentar hinterlassen!