German (Deutsch) translation by Władysław Łucyszyn (you can also view the original English article)
Haben Sie jemals ein Konto bei einer Website erstellt und mussten Ihre E-Mails überprüfen und auf einen Bestätigungslink klicken, der von der Firma gesendet wurde, um sie zu aktivieren? Dadurch wird die Anzahl der Spam-Accounts stark reduziert. In dieser Lektion lernen wir, wie man genau das macht!
Was werden wir bauen?
Wir werden ein nettes PHP-Anmeldeskript erstellen, mit dem ein Benutzer ein Konto erstellen kann, um Zugang zu einem "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 brauchen zuerst 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 und meiner Meinung nach müssen Sie die Grundlagen von HTML kennen, bevor Sie mit PHP fortfahren. Ich werde dem HTML & CSS Kommentare hinzufügen, um jede Codezeile zu beschreiben.
index.php - Dies ist unsere Anmeldeseite mit einem Basisformular.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>NETTUTS > Sign up</title> <link href="css/style.css" type="text/css" rel="stylesheet" /> </head> <body> <!-- start header div --> <div id="header"> <h3>NETTUTS > Sign up</h3> </div> <!-- end header div --> <!-- start wrap div --> <div id="wrap"> <!-- start php code --> <!-- stop php code --> <!-- title and description --> <h3>Signup Form</h3> <p>Please enter your name and email addres to create your account</p> <!-- start sign up form --> <form action="" method="post"> <label for="name">Name:</label> <input type="text" name="name" value="" /> <label for="email">Email:</label> <input type="text" name="email" value="" /> <input type="submit" class="submit_button" value="Sign up" /> </form> <!-- end sign up form --> </div> <!-- end wrap div --> </body> </html>
css/style.css - Dies ist ein Stylesheet für index.php und weitere Seiten.
/* Global Styles */ *{ padding: 0; /* Reset all padding to 0 */ margin: 0; /* Reset all margin to 0 */ } body{ background: #F9F9F9; /* Set HTML background color */ font: 14px "Lucida Grande"; /* Set global font size & family */ color: #464646; /* Set global text color */ } p{ margin: 10px 0px 10px 0px; /* Add some padding to the top and bottom of the <p> tags */ } /* Header */ #header{ height: 45px; /* Set header height */ background: #464646; /* Set header background color */ } #header h3{ color: #FFFFF3; /* Set header heading(top left title ) color */ padding: 10px; /* Set padding, to center it within the header */ font-weight: normal; /* Set font weight to normal, default it was set to bold */ } /* Wrap */ #wrap{ background: #FFFFFF; /* Set content background to white */ width: 615px; /* Set the width of our content area */ margin: 0 auto; /* Center our content in our browser */ margin-top: 50px; /* Margin top to make some space between the header and the content */ padding: 10px; /* Padding to make some more space for our text */ border: 1px solid #DFDFDF; /* Small border for the finishing touch */ text-align: center; /* Center our content text */ } #wrap h3{ font: italic 22px Georgia; /* Set font for our heading 2 that will be displayed in our wrap */ } /* Form & Input field styles */ form{ margin-top: 10px; /* Make some more distance away from the description text */ } form .submit_button{ background: #F9F9F9; /* Set button background */ border: 1px solid #DFDFDF; /* Small border around our submit button */ padding: 8px; /* Add some more space around our button text */ } input{ font: normal 16px Georgia; /* Set font for our input fields */ border: 1px solid #DFDFDF; /* Small border around our input field */ padding: 8px; /* Add some more space around our text */ }

Wie Sie sehen können, habe ich jeder Zeile einen Kommentar hinzugefügt, der beschreibt, was sie tun. Möglicherweise haben Sie den folgenden Kommentar in der index.php-Datei bemerkt:
<!-- start php code --> <!-- stop php code -->
Wir werden unser PHP zwischen diesen 2 Zeilen schreiben!
Schritt 2 - Eingabevalidierung
Das erste, was wir bauen werden, ist ein Code, der die Informationen validieren wird. Hier ist eine kurze Liste, die genau 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, xxx@xxx.xxx
Daher prüfen wir zunächst, ob das Formular übermittelt wird und die Felder nicht leer sind.
<!-- start PHP code --> <?php if(isset($_POST['name']) && !empty($_POST['name']) AND isset($_POST['email']) && !empty($_POST['email'])){ // Form Submited } ?> <!-- stop PHP Code -->
Zeit für einen Zusammenbruch! Wir beginnen mit einer IF-Anweisung und validieren zuerst das Namensfeld:
if( ){ // If statement is true run code between brackets } isset($_POST['name']) // Is the name field being posted; it does not matter whether it's empty or filled. && // This is the same as the AND in our statement; it allows you to check multiple statements. !empty($_POST['name']) // Verify if the field name is not empty isset($_POST['email']) // Is the email field being posted; it does not matter if it's empty or filled. && // This is the same as the AND in our statement; it allows you to check multiple statements. !empty($_POST['email']) // Verify if the field email is not empty
Wenn Sie also das Formular jetzt mit leeren Feldern einreichen, passiert nichts. Wenn Sie beide Felder ausfüllen, führt unser Skript den Code zwischen den Klammern aus.
Jetzt erstellen wir einen Code, der prüft, ob eine E-Mail-Adresse gültig ist. Wenn nicht, geben wir einen Fehler zurück. Lassen Sie uns auch unsere Post-Variablen in lokale Variablen umwandeln:
if(isset($_POST['name']) && !empty($_POST['name']) AND isset($_POST['email']) && !empty($_POST['email'])){ $name = mysql_escape_string($_POST['name']); // Turn our post into a local variable $email = mysql_escape_string($_POST['email']); // Turn our post into a local variable }
Wir können jetzt unsere Daten über unsere lokalen Variablen erreichen. Wie Sie sehen können, habe ich auch eine MySQL-Escape-Zeichenfolge hinzugefügt, um MySQL-Injection beim Einfügen der Daten in die MySQL-Datenbank zu verhindern.
"Die Funktion mysql_real_escape_string() gibt Sonderzeichen in einer Zeichenfolge zur Verwendung in einer SQL-Anweisung frei."
Reguläre Ausdrücke
Als nächstes gibt es ein kleines Snippet, das 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-]+)*(\.[a-z]{2,3})$", $email)){ // Return Error - Invalid Email }else{ // Return Success - Valid Email }
Bitte beachten Sie, dass ich diesen regulären Ausdruck nicht persönlich geschrieben habe, es ist ein kleiner Ausschnitt von php.net.
Im Grunde überprüft es, ob die E-Mail in folgendem Format geschrieben ist:
xxx@xxx.xxx
Jetzt können Sie im Eregi sehen, dass es überprüft, ob die E-Mail Zeichen aus dem Alphabet enthält, ob sie Zahlen oder einen Phantomstrich (_) haben, und natürlich die grundlegenden Anforderungen 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-]+)*(\.[a-z]{2,3})$", $email)){ // Return Error - Invalid Email $msg = 'The email you have entered is invalid, please try again.'; }else{ // Return Success - Valid Email $msg = 'Your account has been made, <br /> please verify it by clicking the activation link that has been send to your email.'; }
Wie Sie sehen können, haben wir eine lokale Variable "$ msg" erstellt, mit der wir den Fehler oder die Erfolgsmeldung irgendwo auf der Seite anzeigen können.
Und wir werden es zwischen dem Anweisungstext und dem Formular anzeigen.
<!-- title and description --> <h3>Signup Form</h3> <p>Please enter your name and email address to create your account</p> <?php if(isset($msg)){ // Check if $msg is not empty echo '<div class="statusmsg">'.$msg.'</div>'; // Display our message and wrap it with a div with the class "statusmsg". } ?> <!-- start sign up form -->
Fügen Sie dies style.css hinzu, um unsere Statusmeldung etwas zu stylen.
#wrap .statusmsg{ font-size: 12px; /* Set message font size */ padding: 3px; /* Some padding to make some more space for our text */ background: #EDEDED; /* Add a background color to our status message */ border: 1px solid #DFDFDF; /* Add a border arround our status message */ }

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 den Namensregistrierungen und erstellen Sie ein Benutzerkonto, das Zugriff auf diese Datenbank hat, um Daten einzufügen und zu aktualisieren.
Lassen Sie uns unsere Benutzertabelle mit 5 Feldern erstellen:

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 `users` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 32 ) NOT NULL , `password` VARCHAR( 32 ) NOT NULL , `email` TEXT NOT NULL , `hash` VARCHAR( 32 ) NOT NULL , `active` INT( 1 ) NOT NULL DEFAULT '0' ) ENGINE = MYISAM ;
Unsere Datenbank ist erstellt, jetzt müssen wir eine Verbindung mit PHP herstellen. Wir schreiben den folgenden Code am Anfang unseres Skripts direkt unter der folgenden Zeile:
<!-- start PHP code --> <?php // Establish database connection
Wir verwenden den folgenden Code, um eine Verbindung zum Datenbankserver herzustellen und die Registrierungsdatenbank auszuwählen. (grundlegende MySQL Verbindung)
mysql_connect("localhost", "username", "password") or die(mysql_error()); // Connect to database server(localhost) with username and password. mysql_select_db("registrations") or die(mysql_error()); // Select registrations database.
Nachdem wir 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
Jetzt ist es an der Zeit, die eingereichten Kontoinformationen in unsere Datenbank einzugeben und einen Aktivierungshash zu generieren. Schreibe den folgenden Code unter diese Zeile:
// Return Success - Valid Email $msg = 'Your account has been made, <br /> please verify it by clicking the activation link that has been send to your email.';
Aktivierungshash
In unserer Datenbank haben wir ein Feld namens Hash erstellt, dieser Hash ist eine 32 Zeichen lange 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 überprüfen, ob er mit dem in der Datenbank übereinstimmt. Lassen Sie uns eine lokale Variable namens $hash erstellen und einen zufälligen md5-Hash generieren.
$hash = md5( rand(0,1000) ); // Generate random 32 character hash and assign it to a local variable. // Example output: f4552671f8909587cf485ea990207f3b
Was haben wir getan? Nun, wir benutzen die PHP-Funktion "rand", um eine Zufallszahl zwischen 0 und 1000 zu generieren. Als nächstes wird unsere MD5-Funktion diese Nummer in eine 32 Zeichen lange Zeichenfolge verwandeln, die wir in unserer Aktivierungs-E-Mail verwenden werden. Meine Wahl ist, MD5 zu verwenden, weil es einen Hash von 32 Zeichen erzeugt, der sicher ist und in diesem Fall unmöglich zu knacken ist.
Erstellen eines zufälligen Passworts
Als nächstes müssen wir ein zufälliges Passwort für unser Mitglied erstellen:
$password = rand(1000,5000); // Generate random number between 1000 and 5000 and assign it to a local variable. // Example output: 4568
Fügen Sie die folgenden Informationen mit einer MySQL-Abfrage in unsere Datenbank ein
mysql_query("INSERT INTO users (username, password, email, hash) VALUES( '". mysql_escape_string($name) ."', '". mysql_escape_string(md5($password)) ."', '". mysql_escape_string($email) ."', '". mysql_escape_string($hash) ."') ") or die(mysql_error());
Wie Sie sehen können, fügen wir alle Daten mit einer MySQL-Escape-Zeichenfolge ein, um jegliche MySQL-Injektion zu verhindern.
Möglicherweise stellen Sie auch fest, dass die MD5-Funktion das zufällige Kennwort in einen sicheren Hash für den Schutz ändert. Beispiel: Wenn eine "böse" Person Zugriff auf die Datenbank erhält, kann sie die Passwörter nicht lesen.
Zum Testen füllen Sie 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 eine E-Mail mit dem Bestätigungslink an den Benutzer senden. Lassen Sie uns dazu die PHP-Funktion "mail" verwenden.
$to = $email; // Send email to our user $subject = 'Signup | Verification'; // Give the email a subject $message = ' Thanks for signing up! Your account has been created, you can login with the following credentials after you have activated your account by pressing the url below. ------------------------ Username: '.$name.' Password: '.$password.' ------------------------ Please click this link to activate your account: http://www.yourwebsite.com/verify.php?email='.$email.'&hash='.$hash.' '; // Our message above including the link $headers = 'From:noreply@yourwebsite.com' . "\r\n"; // Set from headers mail($to, $subject, $message, $headers); // Send our email
Jetzt bremsen wir die Nachricht ab:
Thanks for signing up! Your account has been created, you can login with the following credentials after you have activated your account by pressing the url below. ------------------------ Username: '.$name.' Password: '.$password.' ------------------------
Im obigen Code senden wir eine kurze Beschreibung an unseren Benutzer, die den Benutzernamen und das Passwort enthält - unter Verwendung der lokalen Variablen, die wir bei der Veröffentlichung der Daten erstellt haben.
Please click this link to activate your account: http://www.yourwebsite.com/verify.php?email='.$email.'&hash='.$hash.'
In diesem Abschnitt des Codes haben wir eine dynamische Verknüpfung erstellt. Das Ergebnis wird wie folgt aussehen:

Wie Sie sehen können, erstellt es eine solide URL, die unmöglich zu erraten ist. Dies ist eine sehr sichere Möglichkeit, die E-Mail-Adresse eines Benutzers zu überprüfen.
Schritt 6 - Kontoaktivierung
Wie Sie sehen, verlinkt unsere URL auf verify.php, also erstellen wir das mit der gleichen Basisvorlage, die wir für index.php verwendet haben.
Entfernen Sie das Formular jedoch aus der Vorlage.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>NETTUTS > Sign up</title> <link href="css/style.css" type="text/css" rel="stylesheet" /> </head> <body> <!-- start header div --> <div id="header"> <h3>NETTUTS > Sign up</h3> </div> <!-- end header div --> <!-- start wrap div --> <div id="wrap"> <!-- start PHP code --> <?php mysql_connect("localhost", "tutorial", "password") or die(mysql_error()); // Connect to database server(localhost) with username and password. mysql_select_db("registrations") or die(mysql_error()); // Select registration database. ?> <!-- stop PHP Code --> </div> <!-- end wrap div --> </body> </html>
Das erste, was wir tun müssen, ist zu überprüfen, ob wir unsere $_GET-Variablen (E-Mail & Hash) haben
if(isset($_GET['email']) && !empty($_GET['email']) AND isset($_GET['hash']) && !empty($_GET['hash'])){ // Verify data }else{ // Invalid approach }
Um die Dinge ein wenig einfacher zu machen, lassen Sie uns unsere lokalen Variablen zuweisen und einige MySQL-Injection-Prevention hinzufügen, indem Sie erneut die MySQL-Escape-Zeichenfolge verwenden.
if(isset($_GET['email']) && !empty($_GET['email']) AND isset($_GET['hash']) && !empty($_GET['hash'])){ // Verify data $email = mysql_escape_string($_GET['email']); // Set email variable $hash = mysql_escape_string($_GET['hash']); // Set hash variable }
Als nächstes überprüfen Sie die Daten aus der URL anhand einer MySQL-Abfrage mit den Daten in unserer Datenbank.
$search = mysql_query("SELECT email, hash, active FROM users WHERE email='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error()); $match = mysql_num_rows($search);
Im obigen Code haben wir eine MySQL-Select-Anweisung verwendet und geprüft, ob die E-Mail und der Hash übereinstimmen. Darüber hinaus haben wir überprüft, ob der Status des Accounts "inaktiv" ist. Schließlich verwenden wir mysql_num_rows, um zu ermitteln, wie viele Übereinstimmungen gefunden wurden. Also lasst es uns ausprobieren. Verwenden Sie einfach ein einfaches Echo, um die Ergebnisse zurückzugeben.
$search = mysql_query("SELECT email, hash, active FROM users WHERE email='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error()); $match = mysql_num_rows($search); echo $match; // Display how many matches have been found -> remove this when done with testing ;)

Wir haben ein Match! Um das Ergebnis zu ändern, ändern Sie einfach die E-Mail und Sie werden sehen, dass die zurückgegebene Zahl 0 ist.
Wir können unsere Variable $match verwenden, um entweder das Konto zu aktivieren oder einen Fehler zurückzugeben, wenn keine Übereinstimmung gefunden wurde.
if($match > 0){ // We have a match, activate the account }else{ // No match -> invalid url or account has already been activated. }
Um das Konto zu aktivieren, müssen wir das aktive Feld mit einer MySQL-Abfrage auf 1 setzen.
// We have a match, activate the account mysql_query("UPDATE users SET active='1' WHERE email='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error()); echo '<div class="statusmsg">Your account has been activated, you can now login</div>';
Daher verwenden wir die gleichen Suchbegriffe für das Update wie in unserer MySQL-Select-Abfrage. Wir ändern aktiv zu 1, wo die E-Mail, der Hash und das aktive Feld = 0 übereinstimmen. Wir geben auch eine Nachricht zurück, die dem Benutzer mitteilt, dass sein Konto aktiviert wurde. Sie können eine Nachricht, wie wir sie hier gemacht haben, zum "no match" -Teil hinzufügen. Der endgültige Code sollte also ähnlich aussehen:
mysql_connect("localhost", "tutorial", "password") or die(mysql_error()); // Connect to database server(localhost) with username and password. mysql_select_db("registrations") or die(mysql_error()); // Select registration database. if(isset($_GET['email']) && !empty($_GET['email']) AND isset($_GET['hash']) && !empty($_GET['hash'])){ // Verify data $email = mysql_escape_string($_GET['email']); // Set email variable $hash = mysql_escape_string($_GET['hash']); // Set hash variable $search = mysql_query("SELECT email, hash, active FROM users WHERE email='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error()); $match = mysql_num_rows($search); if($match > 0){ // We have a match, activate the account mysql_query("UPDATE users SET active='1' WHERE email='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error()); echo '<div class="statusmsg">Your account has been activated, you can now login</div>'; }else{ // No match -> invalid url or account has already been activated. echo '<div class="statusmsg">The url is either invalid or you already have activated your account.</div>'; } }else{ // Invalid approach echo '<div class="statusmsg">Invalid approach, please use the link that has been send to your email.</div>'; }


Wenn Sie verify.php ohne Strings besuchen, wird der folgende Fehler angezeigt:

Schritt 7 - Einloggen
In diesem letzten Schritt zeige ich Ihnen, wie Sie ein einfaches Login-Formular erstellen und prüfen, ob das Konto aktiviert ist. Erstellen Sie zunächst eine neue Datei namens login.php mit der Basisvorlage, die wir vorher verwendet haben, aber dieses Mal habe ich das Formular in ein Login-Formular geändert.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>NETTUTS > Sign up</title> <link href="css/style.css" type="text/css" rel="stylesheet" /> </head> <body> <!-- start header div --> <div id="header"> <h3>NETTUTS > Sign up</h3> </div> <!-- end header div --> <!-- start wrap div --> <div id="wrap"> <!-- start PHP code --> <?php mysql_connect("localhost", "tutorial", "password") or die(mysql_error()); // Connect to database server(localhost) with username and password. mysql_select_db("registrations") or die(mysql_error()); // Select registration database. ?> <!-- stop PHP Code --> <!-- title and description --> <h3>Login Form</h3> <p>Please enter your name and password to login</p> <?php if(isset($msg)){ // Check if $msg is not empty echo '<div class="statusmsg">'.$msg.'</div>'; // Display our message and add a div around it with the class statusmsg } ?> <!-- start sign up form --> <form action="" method="post"> <label for="name">Name:</label> <input type="text" name="name" value="" /> <label for="password">Password:</label> <input type="password" name="password" value="" /> <input type="submit" class="submit_button" value="Sign up" /> </form> <!-- end sign up form --> </div> <!-- end wrap div --> </body> </html>
Das Formular ist grundlegend HTML, und fast das gleiche wie das Anmeldeformular, ist keine weitere Erklärung erforderlich. Jetzt ist es an der Zeit, den Code für das Login-Skript zu schreiben, den wir direkt unter dem MySQL-Verbindungscode schreiben werden. Wir beginnen mit etwas, das wir auch in der Anmeldeform gemacht haben.
if(isset($_POST['name']) && !empty($_POST['name']) AND isset($_POST['password']) && !empty($_POST['password'])){ // Both fields are being posted and there not empty }
Also überprüfen wir zuerst, ob die Daten gepostet werden, und wir stellen sicher, dass sie nicht leer sind.
Als Nächstes erstellen Sie einige lokale Variablen für die Post-Daten:
if(isset($_POST['name']) && !empty($_POST['name']) AND isset($_POST['password']) && !empty($_POST['password'])){ $username = mysql_escape_string($_POST['name']); // Set variable for the username $password = mysql_escape_string(md5($_POST['password'])); // Set variable for the password and convert it to an MD5 hash. }
Wir haben die lokalen Variablen erstellt und das Passwort in einen md5-Hash geändert, um es mit dem Passwort-Hash zu vergleichen, den wir in der Datenbank gespeichert haben.
Jetzt ist es an der Zeit, die Verbindung zu unserer Tabelle "users" herzustellen und zu überprüfen, ob die eingegebenen Daten korrekt sind.
if(isset($_POST['name']) && !empty($_POST['name']) AND isset($_POST['password']) && !empty($_POST['password'])){ $username = mysql_escape_string($_POST['name']); $password = mysql_escape_string(md5($_POST['password'])); $search = mysql_query("SELECT username, password, active FROM users WHERE username='".$username."' AND password='".$password."' AND active='1'") or die(mysql_error()); $match = mysql_num_rows($search); }
Wir haben eine MySQL-Abfrage geschrieben, die den Benutzernamen, das Passwort und aktive Informationen aus unserer Datenbank auswählt, wenn Benutzername und Passwort übereinstimmen.
AND active = '1' ist! WICHTIG!, dies stellt sicher, dass Sie sich nur anmelden können, wenn Ihr Konto aktiviert ist. Wir verwenden die MySQL-Nummernzeilen erneut, um zu sehen, wie viele Übereinstimmungen gefunden werden.
if($match > 0){ $msg = 'Login Complete! Thanks'; // Set cookie / Start Session / Start Download etc... }else{ $msg = 'Login Failed! Please make sure that you enter the correct details and that you have activated your account.'; }
Im obigen Code überprüfen wir, ob der Login erfolgreich war oder nicht.
Das Ende
Und das ist das Ende dieses Tutorials! Ich hoffe, es hat Ihnen gefallen, und wenn Sie dies getan haben, hinterlassen Sie bitte einen Kommentar!
- Folgen Sie uns auf Twitter, oder abonnieren Sie den NETTUTS RSS-Feed für mehr tägliche Web-Entwicklungstuts und -artikel.
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weeklyEnvato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post