German (Deutsch) translation by Władysław Łucyszyn (you can also view the original English article)



In diesem Lernprogramm erstellen wir ein Benutzeranmeldeformular, das einen Benutzer zu einer Datenbank hinzufügt und anschließend eine Bestätigungs-E-Mail sendet, auf die der Benutzer klicken muss, bevor sein Konto aktiviert wird.
Schritt 1: Die Vorlage
Ich habe das grundlegende Site-Layout mit aufgenommen, damit wir keine Zeit verschwenden, um das Formular zu erstellen und die Seite schön aussehen zu lassen. Wir werden uns mit der Programmierung beschäftigen, für die Sie hergekommen sind.
Öffnen Sie den Ordner "Site Template" und kopieren Sie ihn auf Ihren lokalen Host oder Webserver.
Öffnen Sie index.php und schauen Sie sich kurz um. Sie sehen ein einfaches Formular mit 3 Eingaben. Dies sind die Felder, die wir erfassen werden. Wir möchten den Benutzernamen, ihr Passwort sowie ihre E-Mail Adresse. Sie können andere Elemente erfassen, wenn sich Benutzer anmelden. Dies sind jedoch die 3 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 benennen, was auch immer Sie mögen. Jetzt möchten wir die Zeilen erstellen, die unsere Benutzerinformationen und Bestätigungsinformationen enthalten. Dazu erstellen wir zwei Tabellen. Benutzer und bestätigen.
1 |
|
2 |
CREATE TABLE `users` ( |
3 |
`id` int(11) NOT NULL auto_increment, |
4 |
`username` varchar(50) NOT NULL default '', |
5 |
`password` varchar(128) NOT NULL default '', |
6 |
`email` varchar(250) NOT NULL default '', |
7 |
`active` binary(1) NOT NULL default '0', |
8 |
PRIMARY KEY (`id`) |
9 |
) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; |
Unser erster Tisch hat 5 Reihen. Die erste ist die ID, die dem Benutzer bei der Anmeldung übergeben wird. Dies ist auf automatische Erhöhung eingestellt, 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 des Benutzers festlegen. Wenn wir zuerst die Benutzerzeile 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, setzen wir dies auf 1. Dadurch wird angegeben, dass das Konto aktiv ist.
1 |
|
2 |
CREATE TABLE `confirm` ( |
3 |
`id` int(11) NOT NULL auto_increment, |
4 |
`userid` varchar(128) NOT NULL default '', |
5 |
`key` varchar(128) NOT NULL default '', |
6 |
`email` varchar(250) default NULL, |
7 |
PRIMARY KEY (`id`) |
8 |
) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; |
Unsere zweite Tabelle ist die Bestätigungstabelle. Dies beinhaltet die ID und E-Mail des Benutzers sowie einen zufällig generierten Schlüssel, mit dem wir das Benutzerkonto bestätigen.
Schritt 3: Verbindung mit der MySQL Datenbank
Öffnen Sie inс/php/config.php.
Zuerst müssen wir die Verbindung zur Datenbank herstellen.
1 |
|
2 |
mysql_connect('localhost', 'username', 'password') or die("I couldn't connect to your database, please make sure your info is correct!"); |
Abhängig von Ihrer Konfiguration müssen wir einige Variablen ändern. Also mach weiter und fülle alles aus.
Als nächstes müssen wir MySQL mitteilen, welche Datenbank wir verwenden wollen.
1 |
|
2 |
mysql_select_db('your_database_name') or die("I couldn't find the database table make sure it's spelt right!"); |
Sobald alles an Ihre Datenbank angepasst wurde, gehen Sie weiter und zeigen Sie auf die Datei index.php auf Ihrem Server.
Wenn oben keine Fehler angezeigt werden, sind wir alle verbunden.
Schritt 4: Senden des Formulars
Ok, jetzt, da wir alle mit der Datenbank verbunden sind, müssen wir die Formulardaten erfassen, damit wir den Benutzer anmelden können.
Ich werde dir das Stück Code geben und dann erklären, was vor sich geht. Danach werden wir Änderungen vornehmen und Funktionalität hinzufügen.
Hier ist die Basis; Platzieren Sie dieses direkt nach dem ersten Einfügen an der Spitze von index.php
1 |
|
2 |
//check if the form has been submitted
|
3 |
if(isset($_POST['signup'])){ |
4 |
|
5 |
}
|
Diese if-Anweisung überprüft, ob das Formular gesendet wurde.
Ohne dies würde unser Skript jedes Mal ausgeführt werden, wenn die Seite aktualisiert wird, und das wollen wir nicht.
Hinweis: Abhängig von Ihrer Anwendung oder dem allgemeinen Codierungsstil kann dieser Code in einer separaten Datei gespeichert werden, auf die beim Senden des Formulars zugegriffen wird. Ich habe den Code in einer Datei gespeichert, um die Dinge einfach und leicht nachvollziehbar zu machen.
Schritt 5: Aufräumen und Überprüfen der Variablen
Wir möchten sicherstellen, dass der Benutzer tatsächlichen Inhalt anstatt nur ein leeres Formular eingereicht hat, also werden wir einige schnelle Überprüfungen durchführen.
Der erste Teil besteht darin, die Variablen $_POST in einfachere Variablen zu platzieren und sie für die Datenbank zu bereinigen. Platziere das in unserer if-Anweisung.
1 |
|
2 |
$username = mysql_real_escape_string($_POST['username']); |
3 |
$password = mysql_real_escape_string($_POST['password']); |
4 |
$email = mysql_real_escape_string($_POST['email']); |
mysql_real_escapse_string() stellt sicher, dass der Benutzer nicht versucht, Apostrophe für den Zugriff auf unsere Datenbank mit MySQL-Injection zu verwenden. mysql_real_escapse_string() stellt sicher, dass die Benutzer nicht auf unsere Datenbank mit MySQL-Injection zu verwenden. Weitere Informationen zur MySQL-Injektion finden Sie in diesem Artikel auf Wikipedia
Also haben wir unsere Variablen bereinigt, jetzt wollen wir überprüfen, ob der Benutzer irgendwelche Felder vergessen hat.
1 |
|
2 |
if(empty($username)){ //put code in me please } |
3 |
if(empty($password)){ //put code in me please } |
4 |
if(empty($email)){ //put code in me please } |
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 machen, werden wir ein Array erstellen, das den Status des Anmeldeprozesses sowie den Text enthält, den wir dem Benutzer zeigen müssen.
Genau über diesem Codeabschnitt erstellen wir ein Array und einige Variablen.
1 |
|
2 |
$action = array(); |
3 |
$action['result'] = null; |
4 |
|
5 |
$text = array(); |
Zuerst erstellen wir ein leeres Array namens action und setzen dann einen Array-Wert von result. Das Ergebnis enthält entweder einen Erfolg oder einen Fehler. Als nächstes erstellen wir ein weiteres leeres Array namens 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 überprüfen, keinen Code aus. Lassen Sie uns also etwas Code in die erste if-Anweisung einfügen.
Setzen Sie diesen Code in den Benutzernamen if-Anweisung.
1 |
|
2 |
$action['result'] = 'error'; |
3 |
array_push($text,'You forgot your username'); |
Nehmen wir an, der Benutzer sendet das Formular ohne einen Benutzernamen. Unsere Anweisung wird den obigen Code ausführen. Zuerst wird das Ergebnisfeld unseres Aktionsarrays auf Fehler gesetzt.
Dann verwenden wir array_push(), um etwas Text in unser Text-Array einzufügen. Wir werden denselben Code für die letzten beiden "if" - Anweisungen verwenden, also kopieren und fügen Sie diesen Code in die letzten beiden if-Anweisungen ein. Wahrscheinlich möchten Sie den Text so ändern, dass er der aktuellen if-Anweisung entspricht.
Hinweis: Wir verwenden array_push(), wenn wir mehrere Fehler bei der Formularübergabe haben. Wenn alle if-Anweisungen ausgeführt werden, sieht das Text-Array wie folgt aus:
1 |
|
2 |
Array( |
3 |
[0] => 'You forgot your username', |
4 |
[1] => 'You forgot your password', |
5 |
[2] => 'You forgot your email' |
6 |
)
|
Wir müssen jetzt überprüfen, ob wir Fehler haben, damit wir den Anmeldevorgang fortsetzen können.
Schritt 6: Keine Fehler, lassen Sie uns den Benutzer registrieren
Wir werden prüfen, ob der Ergebniswert unseres Aktionsfeldes auf Fehler gesetzt ist.
1 |
|
2 |
if($action['result'] != 'error'){ |
3 |
//no errors, continue signup
|
4 |
$password = md5($password); |
5 |
}
|
6 |
|
7 |
$action['text'] = $text; |
Wir führen unser Passwort auch über die Funktion md5() aus. Dies nimmt das Kennwort und gibt eine Zeichenfolge mit 32 Zeichen zurück, die ungefähr so aussieht: a3470ce826283eca7ce3360d0f26b230. Es empfiehlt sich, das Kennwort über eine Hashfunktion auszuführen, bevor es in die Datenbank eingefügt wird. Dies verhindert, dass Benutzer die Kennwörter der Benutzer anzeigen, wenn Ihre Datenbank gehackt wird.
Eine schnelle Überprüfung unseres Aktionsergebniswertes und wir können mit der Anmeldung fortfahren. Wenn unser Ergebnis ein Fehler ist, überspringen wir diesen ganzen Code und geben die Fehler an unseren Benutzer aus, damit sie die notwendigen Änderungen vornehmen können.
Der letzte Teil dieses Codes, wir setzen die Werte Ihres Text-Arrays in unser Aktions-Array.
Schritt 7: Hinzufügen des Benutzers zur Datenbank
Fügen Sie diesen Code in unsere letzte if-Anweisung ein.
1 |
|
2 |
...
|
3 |
If Statement checking for errors |
4 |
...
|
5 |
|
6 |
//add to the database
|
7 |
$add = mysql_query("INSERT INTO `users` VALUES(NULL,'$username','$password','$email',0)"); |
8 |
|
9 |
if($add){ |
10 |
|
11 |
//the user was added to the database
|
12 |
|
13 |
}else{ |
14 |
|
15 |
$action['result'] = 'error'; |
16 |
array_push($text,'User could not be added to the database. Reason: ' . mysql_error()); |
17 |
=
|
18 |
}
|
Wir verwenden mysql_query() und INSERT, um die Benutzerinformationen in die Datenbank einzufügen. Als Nächstes erstellen wir eine weitere if-Anweisung, um zu prüfen, ob der Benutzer zur 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 vertraute Variablen zuweisen und die Anmeldung stoppen.
When working with MySQL queries, we use the mysql_error() function if their are errors because it helps with debugging what is wrong with your queries. Es wird Textfehler ausgeben, wenn etwas nicht stimmt. Das ist gut!
Schritt 8: Bestätigung wird benötigt
Der Benutzer hat das Formular abgeschickt, alles wird ausgecheckt und sie leben jetzt in der Datenbank. Wir möchten, dass der Benutzer sein Konto verwenden kann. Lassen Sie uns die Bestätigung einrichten.
1 |
|
2 |
...
|
3 |
if added check |
4 |
...
|
5 |
|
6 |
//get the new user id
|
7 |
$userid = mysql_insert_id(); |
8 |
|
9 |
//create a random key
|
10 |
$key = $username . $email . date('mY'); |
11 |
$key = md5($key); |
12 |
|
13 |
//add confirm row
|
14 |
$confirm = mysql_query("INSERT INTO `confirm` VALUES(NULL,'$userid','$key','$email')"); |
15 |
|
16 |
if($confirm){ |
17 |
|
18 |
//let's send the email
|
19 |
|
20 |
}else{ |
21 |
|
22 |
$action['result'] = 'error'; |
23 |
array_push($text,'Confirm row was not added to the database. Reason: ' . mysql_error()); |
24 |
|
25 |
}
|
Um die Dinge einfach zu machen, weisen wir die neue Benutzer-ID einer Variablen zu, damit wir sie später verwenden können. Wir tun dies mit mysql_insert_id(). Dies setzt $userid auf die ID des neuen Benutzers.
Als nächstes erstellen wir den zufälligen Schlüssel für diesen bestimmten Benutzer. Wir erstellen eine Variable mit dem Namen Schlüssel und füllen sie mit einem Wert aus Benutzername, E-Mail und Datum. Die Zeichenfolge sieht wie folgt aus: mattmatt@email.com012009. Danach verwenden wir die Funktion md5(), um sie in eine zufällige Zeichenfolge umzuwandeln, die für diesen Benutzer eindeutig ist.
Mit mysql_query() und INSERT erneut setzen wir die neue Benutzer-ID, den Schlüssel und die Benutzer-E-Mail in die Datenbank.


Schritt 9: Einrichten der E-Mail-Vorlagen
Wir werden eine Pause vom PHP-Code machen und zwei neue Dateien erstellen. Um schnell und einfach zu sein, werden wir zwei Vorlagen verwenden, die ich in dieses Tutorial eingefügt habe. Die zwei Dateien, die wir betrachten werden, sind signup_template.html und signup_template.txt. Swift lässt uns 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 in E-Mails über bei classonified nachlesen. Wir werden diese Datei nicht bearbeiten, ich werde nur erklären, was los ist und dann können Sie damit herumspielen, sobald das Tutorial fertig ist. Der wichtigste Teil dieser Datei sind die Tags {USERNAME} 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 Template-Funktion
Öffnen Sie inc/php/functions.php und legen Sie diesen Code hinein.
1 |
|
2 |
function format_email($info, $format){ |
3 |
|
4 |
//set the root
|
5 |
$root = $_SERVER['DOCUMENT_ROOT'].'/dev/tutorials/email_signup'; |
6 |
|
7 |
//grab the template content
|
8 |
$template = file_get_contents($root.'/signup_template.'.$format); |
9 |
|
10 |
//replace all the tags
|
11 |
$template = ereg_replace('{USERNAME}', $info['username'], $template); |
12 |
$template = ereg_replace('{EMAIL}', $info['email'], $template); |
13 |
$template = ereg_replace('{KEY}', $info['key'], $template); |
14 |
$template = ereg_replace('{SITEPATH}','http://site-path.com', $template); |
15 |
|
16 |
//return the html of the template
|
17 |
return $template; |
18 |
|
19 |
}
|
format_email() nimmt zwei Variablen, die in index.php verwendet werden. Der erste ist unser Formular-Informations-Array und der 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 verweist 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 verwenden wir ereg_replace(), um Ihre {USERNAME} -Tags in unserer Vorlage durch die Inhalte aus unserem Formular zu ersetzen. Es ist im Grunde nur ein super einfaches Vorlagensystem.
Schließlich geben wir die Template-Variable zurück, die den gesamten HTML-Code enthält.
Erklärung: Kurz gesagt, format_email() öffnet unsere Vorlagendateien, nimmt den HTML-Code und weist ihn unserer Variablen zu. Dies ist nur ein sauberer Weg, dann die gesamte HTML in der Funktion selbst zuweisen.
Schritt 11: Senden der E-Mail
Wir werden eine weitere Funktion schreiben, um mit Swift umzugehen und die E-Mails zu versenden.
1 |
|
2 |
function send_email($info){ |
3 |
|
4 |
//format each email
|
5 |
$body = format_email($info,'html'); |
6 |
$body_plain_txt = format_email($info,'txt'); |
7 |
|
8 |
//setup the mailer
|
9 |
$transport = Swift_MailTransport::newInstance(); |
10 |
$mailer = Swift_Mailer::newInstance($transport); |
11 |
$message = Swift_Message::newInstance(); |
12 |
$message ->setSubject('Welcome to Site Name'); |
13 |
$message ->setFrom(array('noreply@sitename.com' => 'Site Name')); |
14 |
$message ->setTo(array($info['email'] => $info['username'])); |
15 |
|
16 |
$message ->setBody($body_plain_txt); |
17 |
$message ->addPart($body, 'text/html'); |
18 |
|
19 |
$result = $mailer->send($message); |
20 |
|
21 |
return $result; |
22 |
|
23 |
}
|
Genau wie format_email() nimmt send_email() unser Info-Array als Variable. Der erste Teil der Funktion weist zwei Variablen zu, $body und $body_plain_text. Wir verwenden format_email(), um jeder Variablen die HTML-Werte unserer Vorlage zuzuweisen. Jetzt kommt der gute Teil. Wir haben die schnelle Instanz mit Swift_MailTransport:newInstance()
eingerichtet und dann den Mailer mit Swift_Mailer::newInstance($transport) eingerichtet;
Wir erstellen eine neue Instanz der Swift-Nachricht und beginnen, dieser Instanz einige Variablen zuzuweisen. Wir setzen den Betreff von E-Mail und E-Mail-Adresse und verwenden dann setBody(), um der Mailer-Instanz eine Textversion der E-Mail zuzuweisen. Um die HTML-Version hinzuzufügen, verwenden wir addPart(). Die Funktion send() kümmert sich um den Versand der E-Mail und wir geben das Ergebnis zurück. Alles klar, wir haben unsere E-Mail-Funktionen zum Erstellen und Senden von Funktionen geschrieben, gehen wir zurück zu index.php und beginnen mit der Hauptregistrierung.
Schritt 12: Haben wir gesendet? Sollen wir bestätigen?
Unser letztes Bit sollte die if-Anweisung sein, die überprüft, ob die Bestätigungszeile erstellt wurde.
Lassen Sie uns die E-Mail senden und prüfen, ob alles in Ordnung ist.
1 |
|
2 |
...
|
3 |
if confirm |
4 |
...
|
5 |
|
6 |
//include the swift class
|
7 |
include_once 'inc/php/swift/swift_required.php'; |
8 |
|
9 |
//put info into an array to send to the function
|
10 |
$info = array( |
11 |
'username' => $username, |
12 |
'email' => $email, |
13 |
'key' => $key |
14 |
);
|
15 |
|
16 |
//send the email
|
17 |
if(send_email($info)){ |
18 |
|
19 |
//email sent
|
20 |
$action['result'] = 'success'; |
21 |
array_push($text,'Thanks for signing up. Please check your email for confirmation!'); |
22 |
|
23 |
}else{ |
24 |
|
25 |
$action['result'] = 'error'; |
26 |
array_push($text,'Could not send confirm email'); |
27 |
|
28 |
}
|
Ohne die Swift-Klasse können wir keine E-Mails versenden, also schließen wir in unserer ersten Zeile die Swift-Klasse ein. Wir müssen unsere Informationen an unsere beiden neuen Funktionen senden, also erstellen wir ein neues Array und weisen ihm unsere Variablen zu. Ich weiß, ich weiß mehr, wenn Aussagen, aber wir müssen auf Fehler überprüfen, um es für die Benutzer zu erleichtern. Sie müssen immer davon ausgehen, dass die Benutzer jeden denkbaren Fehler machen.
Wir verpacken unsere Funktion send_email() in eine andere if-Anweisung und übergeben das $ info-Array. Wenn die E-Mail gesendet wird, weisen wir einen Erfolg zu und danken dem Benutzer für die Anmeldung. Wenn es Fehler gibt, verwenden wir die bekannten Variablen. So, jetzt sind wir fast fertig mit der Anmeldung, nur eine letzte Funktion muss erstellt werden. Obwohl wir alle diese Fehler- / Erfolgsvariablen und den Text zuweisen, haben wir diese Information dem Benutzer nicht angezeigt.


Gehe zurück in die functions.php und füge diesen Code ein.
1 |
|
2 |
//cleanup the errors
|
3 |
function show_errors($action){ |
4 |
|
5 |
$error = false; |
6 |
|
7 |
if(!empty($action['result'])){ |
8 |
|
9 |
$error = "<ul class=\"alert $action[result]\">"."\n"; |
10 |
|
11 |
if(is_array($action['text'])){ |
12 |
|
13 |
//loop out each error
|
14 |
foreach($action['text'] as $text){ |
15 |
|
16 |
$error .= "<li><p>$text</p></li>"."\n"; |
17 |
|
18 |
}
|
19 |
|
20 |
}else{ |
21 |
|
22 |
//single error
|
23 |
$error .= "<li><p>$action[text]</p></li>"; |
24 |
|
25 |
}
|
26 |
|
27 |
$error .= "</ul>"."\n"; |
28 |
|
29 |
}
|
30 |
|
31 |
return $error; |
32 |
|
33 |
}
|
Das mag verwirrend erscheinen, aber es ist nur so, dass unser Erfolg / Fehler gut aussieht.
Zuerst prüft es, ob das Array leer ist, also führen wir den Code nicht aus, wenn er nicht benötigt wird.
Als Nächstes erstellt es ein UL-Tag und wendet das Ergebnis als Klasse an. Dies wird entweder Erfolg oder Irrtum sein und ist nur ästhetisch.
Wir überprüfen dann, ob die Textvariable ein Array oder einfach eine Zeichenfolge ist. Wenn es eine Schnur ist, wickeln wir sie in eine Li. Wenn es ein Array ist, durchlaufen wir jedes Array-Element und wickeln es in ein li.
Schließlich schließen wir die ul und geben die gesamte Zeichenfolge zurück.
Wenn wir zurück zu index.php gehen und diesen Code direkt nach dem Einfügen von header.php einfügen, können wir diesen Abschnitt schließen.
1 |
|
2 |
... |
3 |
header include |
4 |
... |
5 |
|
6 |
<?= show_errors($action); ?> |
Eine kurze Erklärung. Wir nehmen alle Werte unseres Aktionsfeldes und übergeben es an die Funktion show_errors(). Wenn ein Inhalt vorhanden ist, wird eine nette ungeordnete Liste zurückgegeben.
Schritt 13: Bestätigen des Benutzers
Wir sollten wissen, wie das Skript funktioniert. Für dieses nächste Skript gebe ich dir den ganzen Code und gehe dann mit dir durch.
Öffne die confirm.php und füge diese zwischen dem Header include und deiner show_errors() - Funktion ein.
1 |
|
2 |
//setup some variables
|
3 |
$action = array(); |
4 |
$action['result'] = null; |
5 |
|
6 |
//quick/simple validation
|
7 |
if(empty($_GET['email']) || empty($_GET['key'])){ |
8 |
$action['result'] = 'error'; |
9 |
$action['text'] = 'We are missing variables. Please double check your email.'; |
10 |
}
|
11 |
|
12 |
if($action['result'] != 'error'){ |
13 |
|
14 |
//cleanup the variables
|
15 |
$email = mysql_real_escape_string($_GET['email']); |
16 |
$key = mysql_real_escape_string($_GET['key']); |
17 |
|
18 |
//check if the key is in the database
|
19 |
$check_key = mysql_query("SELECT * FROM `confirm` WHERE `email` = '$email' AND `key` = '$key' LIMIT 1") or die(mysql_error()); |
20 |
|
21 |
if(mysql_num_rows($check_key) != 0){ |
22 |
|
23 |
//get the confirm info
|
24 |
$confirm_info = mysql_fetch_assoc($check_key); |
25 |
|
26 |
//confirm the email and update the users database
|
27 |
$update_users = mysql_query("UPDATE `users` SET `active` = 1 WHERE `id` = '$confirm_info[userid]' LIMIT 1") or die(mysql_error()); |
28 |
//delete the confirm row
|
29 |
$delete = mysql_query("DELETE FROM `confirm` WHERE `id` = '$confirm_info[id]' LIMIT 1") or die(mysql_error()); |
30 |
|
31 |
if($update_users){ |
32 |
|
33 |
$action['result'] = 'success'; |
34 |
$action['text'] = 'User has been confirmed. Thank-You!'; |
35 |
|
36 |
}else{ |
37 |
|
38 |
$action['result'] = 'error'; |
39 |
$action['text'] = 'The user could not be updated Reason: '.mysql_error();; |
40 |
|
41 |
}
|
42 |
|
43 |
}else{ |
44 |
|
45 |
$action['result'] = 'error'; |
46 |
$action['text'] = 'The key and email is not in our database.'; |
47 |
|
48 |
}
|
49 |
|
50 |
}
|
Das meiste sollte sehr vertraut aussehen; also werde ich weiterspringen und prüfen, ob der Schlüssel im Datenbankbereich ist.
Auch hier verwenden wir mysql_query(), um alle Zeilen in der Datenbank abzurufen, in denen die E-Mail und der Schlüssel den Schlüsseln entsprechen, die von der E-Mail des Benutzers bereitgestellt werden.
Wir verwenden mysql_num_rows(), um zu überprüfen, ob die Anzahl der zurückgegebenen Zeilen größer als 0 ist.
Wenn die E-Mail und der Schlüssel in der Datenbank sind, greifen wir alle Informationen aus der Datenbank mit 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 verwenden mysql_query() erneut, aber anstelle von INSERT verwenden wir UPDATE, um die aktive Zeile auf 1 zu aktualisieren, wobei die Benutzer-ID der aktuellen Benutzer-ID entspricht.
Um alles zu bereinigen, verwenden wir mysql_query() und DELETE, um die Bestätigungszeile aus der Datenbank zu entfernen. Dies stellt sicher, dass der Benutzer nicht auf diese Seite zurückkehren und erneut bestätigen kann. Es hält auch die Datenbank schön und sauber.
Fazit
Wir haben in diesem Tutorial viele verschiedene Bereiche behandelt. Wir luden ein Skript von Drittanbietern herunter und fügten es ein, um mit dem Senden der E-Mails umzugehen, implementierten eine einfache Formularvalidierung und erstellten ein super einfaches Vorlagensystem, um unsere E-Mails zu formatieren. Wenn Sie mit MySQL noch nicht vertraut sind, haben wir uns mit den drei häufigsten Funktionen in MySQL beschäftigt. Daher sollten Sie keine komplizierteren Tutorials mehr machen.
Letzte Anmerkungen
- Ich habe Swift Mailer als unser E-Mail-Bereitstellungsskript verwendet, das hier heruntergeladen werden kann: http://swiftmailer.org/
- Ich habe auch Button-Styles von Zurb verwendet. Achten Sie darauf, sie zu überprüfen und ihnen etwas Liebe zu geben. http://www.zurb.com/blog_uploads/0000/0485/buttons-02.html
Danke fürs Lesen und sicher sein, mich auf Twitter zu besuchen, wenn Sie irgendwelche Fragen haben!



