So benötigen Sie eine Bestätigung von einem Benutzer E-Mail-Adresse? Kein Problem. Es gibt eine Menge Gründe zu verlangen, E-Mail-Bestätigung, und PHP macht es einfach.
E-Mail-Bestätigung abgeschlossen werden können ist diese Schritte:
- Der Benutzer wird für unabhängig von Informationen, die Sie benötigen von ihnen (einschließlich ihrer E-Mail-Adresse)
- Geben Sie diese Daten in einer Datenbank
- Senden Sie dem Benutzer eine E-Mail mit einem speziellen Schlüssel Bestätigung
- "Freischalten" der Daten in der Datenbank, sobald die Bestätigung Schlüssel eingegeben wird.
So geht's:
<? php
/ / First, let's eine Verbindung zu der Datenbank
$ user_name = "dbUserName";
$ host = "dbhost";
$ my_password = "dbpassword";
$ db_name = "dbname";
/ / Stellen Sie eine Verbindung zum Server und wählen Sie Datenbank.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ( "$ host", "$ user_name", "$ my_password") or die ( "kann keine Verbindung zum Server");
) or die ( "cannot select DB" ); mysql_select_db ( "$ db_name") or die ( "kann nicht wählen Sie DB");
/ / Die folgende Zeile im Grunde gefragt, ob der Benutzer muss die Form angezeigt. Lesen Sie ein wenig, wenn Sie wollen sehen, wo die Variablen aus
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET [ 'erstes'] == "no") & &! (@ $ _GET [' bestätigen '] == "yes") (
/ / Da es sich hierbei um die erste Seite der Anzeige, und kein Bestätigungs-Code enthalten ist, wir sollten die Form für den Benutzer zu füllen
/ / Dieses Formular ist nur ein Argument (der Benutzer E-Mail-Adresse).
?>
method= "post" action= "index.php?first=no" > <form name= "emailConfirmation" method= "post" action= "index.php?first=no">
<table align="center">
<tr>
<td>
type= "text" id= "email" size= "30" /> E-Mail: <input name= "email" type= "text" id= "email" size= "30" />
</ td>
</ tr>
<tr>
<td align="center">
name= "Submit" value= "Submit" /> <input type= "submit" name= "Submit" value= "Submit" />
</ td>
</ tr>
</ table>
</ form>
<? php
)
/ / Wenn Sie das Formular korrekt ausgefüllt wurde, müssen wir einen Bestätigungscode, legen Sie den Bestätigungscode ein, und E-Mail-Benutzer in eine Datenbank, und senden Sie eine E-Mail an die E-Mail-Adresse.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET [ 'erstes'] == "no") (/ / Wenn Sie das Formular korrekt ausgefüllt worden ...
/ / is_valid_email_address ist keine gültige PHP-Funktion. Legen Sie Ihre eigene E-Mail-Adresse Kontrolle Funktion hier ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST [ 'email']))
); echo ( "Sorry! Die E-Mail-Adresse ist nicht gültig.");
/ / Wenn die E-Mail-Adresse scheint gültig und sicher ...
else (
]); $ email = ($ _POST [ 'email']);
/ / Erzeugen Sie eine Bestätigungs-Code hier. Dies ist die Art, wie ich wählen, es zu tun, aber es gibt unzählige Möglichkeiten, die Arbeit.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (rand ()));
/ / Alles ist mehr oder weniger OK, um in die Datenbank ein und schickt dann eine E-Mail an den Benutzer
$ query = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ( '$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ result = mysql_query ($ query) or die ( "Config Fehler 2223");
/ / Senden Sie die E-Mail
$ to = $ email;
$ subject = "Ihre shortlikeafox Beispiel Bestätigung"; / / Von
$ header = "ab: shortlikeafox <info@shortlikeafox.com>";
/ / Ihre Nachricht
$ message = "Ihre Comfirmation Link! \ r \ n";
$ message .= "Klicken Sie auf diesen Link, um Ihr Konto zu aktivieren \ r \ n";
$ message .= "Diese Verbindung mit endet, wenn Ich fühle mich wie Reinigung, die unbestätigten E-Mails (jede Woche oder so) \ r \ n";
$ message .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
$ sentmail = mail ($ an, $ subject, $ message, $ header);
); echo ( "Ihre Bestätigungs-E-Mail wurde gesendet!");
)
)
/ / Wenn der Benutzer gefunden dieses Skript über einen Link in seiner E-Mail, bestätigen Sie es ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET [ 'bestätigen'] == "yes") (
/ / Machen Sie die confirmCode relativ sicher in der Anwendung
[ 'confirmCode' ]); $ confirmCode = mysql_real_escape_string (@ $ _GET [ 'confirmCode']);
$ query = "SELECT * FROM emailConfirmationTable WHERE con_code = '$ confirmCode" UND is_confirmed ='0' ";
( "Error 234234" ); $ result = mysql_query ($ query) or die ( "Error 234234");
$ nrows = mysql_num_rows ($ result);
1){ if ($ nrows == 1) (
$ query = "UPDATE emailConfirmationTable SET is_confirmed ='1 'WHERE con_code =' $ confirmCode '";
( "Config Error 222231231233 " ); $ result = mysql_query ($ query) or die ( "Config Fehler 222231231233");
if ($ result)
); echo ( "E-Mail bestätigt!");
)
sonst
); echo ( "konnte nicht bestätigen, E-Mail");
)
?>
Es ist sehr wichtig, daran zu erinnern, um die Informationen, die der Benutzer fügt in jeder Form. Ich habe nicht eine Funktion für E-Mail-Adresse Validierung oben, aber ein guter Anfang ist Cal Henderson Validierung der E-Mail-Funktion finden Sie hier.
Wenn Sie sehen wollen, dieses Skript in Aktion, können Sie dies hier.