Alors, vous avez besoin d'une confirmation de l'utilisateur l'adresse e-mail? Pas de problème. Il ya beaucoup de raisons d'exiger e-mail de confirmation, et PHP, il est simple.
E-mail de confirmation peut être complété ces mesures est:
- Invite l'utilisateur pour toutes les informations dont vous avez besoin d'eux (y compris leur adresse e-mail)
- D'entrée de ces données dans une base de données
- L'utilisateur Envoyer un e-mail avec une clé de confirmation
- «Déverrouiller» les données dans la base de données une fois la confirmation clé est saisi.
Comment faire:
<? php
/ / Tout d'abord, nous allons connecter à la base de données
$ user = "dbUserName";
$ host = "dbHost";
mon_mot_de_passe $ = "dbPassword";
$ db_name = "dbname";
/ / Connexion au serveur et de sélectionner la base de données.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ( "$ host", "$ user_name", mon_mot_de_passe $ ") or die (" Impossible de se connecter au serveur ");
) or die ( "cannot select DB" ); mysql_select_db ( "$ db_name") or die ( "ne peut pas sélectionner DB");
/ / La ligne suivante demande au fond si l'utilisateur doit avoir la forme affichée. Lire un peu, si vous voulez voir où les variables proviennent de
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET [ 'premier'] == "non") & &! (@ $ _GET [ 'confirmation'] == "oui") (
/ / Comme il s'agit de la page de la première présentation et aucun code de confirmation est inclus, nous devrions afficher le formulaire pour l'utilisateur de remplir
/ / Ce formulaire ne prend un argument (l'adresse e-mail).
?>
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" /> Courrier électronique: <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
)
/ / si le formulaire a été rempli, nous avons besoin de générer un code de confirmation, insérer le code de confirmation e-mail et l'utilisateur dans une base de données, et d'envoyer un e-mail à l'adresse e-mail.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET [ 'premier'] == "non") (/ / Si le formulaire a été rempli ...
/ / is_valid_email_address n'est PAS valide fonction php. Insérez votre propre adresse e-mail ici fonction de vérification ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST [ 'email']))
); echo ( "Désolé! L'adresse e-mail que vous avez entré n'est pas valide.");
/ / Si l'adresse e-mail valide et semble sûr ...
else (
]); $ email = ($ _POST [ 'email']);
/ / Générer un code de confirmation ici. C'est la façon dont je choisis de le faire, mais il existe d'innombrables moyens qui fonctionne.
( rand ())); CONFIRMATION_CODE $ = md5 (uniqid (rand ()));
/ / Tout est plus ou moins OK pour entrer dans la base de données et ensuite envoyer un email à l'utilisateur
$ query = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ( '$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ result = mysql_query ($ query) or die ( "Erreur 2223 Config");
/ / Envoyer l'e-mail
$ to = $ email;
$ subject = "Votre exemple shortlikeafox confirmation"; / / De
$ header = "à partir de: shortlikeafox <info@shortlikeafox.com>";
/ / Votre message
$ message = "Votre lien Comfirmation! \ r \ n";
$ message .= "Cliquez sur ce lien pour activer votre compte \ r \ n";
$ message .= "Ce lien avec expire chaque fois que je me sens comme le nettoyage des e-mails non (chaque semaine ou donc) \ r \ n";
$ message .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
sentmail = $ mail ($ to, $ subject, $ message, $ header);
); echo ( "Votre e-mail de confirmation a été envoyé!");
)
)
/ / Si l'utilisateur a trouvé ce script à partir d'un lien dans son e-mail, confirmez-le ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET [ 'confirmation'] == "oui") (
/ / Rendre le confirmCode relativement sécuritaire d'utiliser
[ 'confirmCode' ]); confirmCode $ = mysql_real_escape_string (@ $ _GET [ 'confirmCode']);
$ query = "SELECT * FROM emailConfirmationTable OÙ con_code = '$ confirmCode' ET is_confirmed ='0 '";
( "Error 234234" ); $ result = mysql_query ($ query) or die ( "Erreur 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 ( "Erreur de configuration 222231231233");
if ($ result)
); echo ( "EMAIL CONFIRME!");
)
autre
); echo ( "Impossible de confirmer un e-mail");
)
?>
Il est très important de se souvenir de valider les informations que l'utilisateur insère sous une forme quelconque. Je n'ai pas inclure une fonction de validation des adresses e-mail ci-dessus, mais un bon point de départ est Cal Henderson e-mail de validation fonction trouvée ici.
Si vous voulez voir ce script en action, vous pouvez le faire ici.