Taigi, jūs turite patvirtinti elektroninio pašto adresą vartotojui? Jokių problemų. Yra keletas priežasčių reikalauti patvirtinimo el aikštelė, ir PHP leidžia lengvai.
Laišką su patvirtinimu gali būti užbaigtas taip šiuos veiksmus:
- Klausti dėl kokios nors informacijos jums reikia iš jų (įskaitant jo elektroninio pašto adresą vartotojui)
- Įvesties šį bazės Duomenų
- Siųsti vartotojui ypatingą patvirtinimo raktas email
- "Atrakinti" duomenų bazės duomenų kartą patvirtinimo raktas įrašytas.
Kaip tai padaryti:
<? Php
/ / Pirma, galime prisijungti prie duomenų bazės
$ User_name = "dbUserName";
$ Host = "dbhost";
$ My_password = "dbPassword";
$ Db_name = "dbname";
/ / Prisijungimas prie serverio ir pasirinkite duomenų bazę.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ("$ host", "$ vartotojo_vardas", "$ my_password") or die ("Negaliu prisijungti prie serverio");
) or die ( "cannot select DB" ); mysql_select_db ("$ db_name") or die ("negaliu pasirinkti DB");
/ / Ši eilutė iš esmės klausia, ar vartotojas turi turėti formą rodomas. Skaityti šiek tiek žemyn, jei norite pamatyti, kur kintamieji yra iš
(@ $_GET [ 'first' ] == "no" ) " ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET ['pirmas'] == "ne") & &! (@ $ _GET ['Patvirtinti'] == "yes") (
/ / Kadangi tai yra puslapis pirmąjį rodymo ir ne patvirtinimo kodą, yra įtrauktas turėtume rodyti vartotojas formą užpildyti
/ / Tai yra tik mano vieno argumento (elektroninio pašto adresą vartotojui).
?>
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" /> Paštas: <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
)
/ / Jei forma yra užpildyta, privalome sukurti patvirtinimo kodą, įrašyti patvirtinimo kodą ir vartotojo elektroninio pašto adresą į duomenų bazę ir siųsti elektroninį laišką į elektroninio pašto adresą.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET ['pirmas'] == "ne") (/ / jei forma yra užpildyta ...
/ / Is_valid_email_address yra neteisingas php funkcija. Įdėkite savo elektroninio pašto adresą tikrinimo funkcija čia ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST ['email']))
); echo ("Atsiprašome, elektroninio pašto adresą, yra neteisingas.");
/ / Jei elektroninio pašto adresas yra galiojantis ir saugus ...
else (
]); $ Email = ($ _POST ['email']);
/ / Sukurti patvirtinimo kodą čia. Tokiu būdu aš galiu pasirinkti tai padaryti, tačiau yra be galo daug būdų, kad veiks.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (randas ()));
/ / Viskas daugiau ar mažiau Gerai įvesti į duomenų bazę ir siųsti elektroniniu paštu į vartotojo
$ Query = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ('$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ Result = mysql_query ($ query) or die ("Klaida Config 2223);
/ / Siųsti laišką
$ Iki = $ email;
$ Subject = "Jūsų shortlikeafox pavyzdžiui patvirtinimo" / / Nuo
$ Header = "Nuo: shortlikeafox <info@shortlikeafox.com>";
/ / Jūsų žinutė
$ Message = "Jūsų Comfirmation nuorodą! \ R \ n";
$ Message .= "Spauskite šią nuorodą, kad aktyvuoti savo sąskaitą \ r \ n";
$ Message .= "Šis ryšys su galioti, kai aš jaučiuosi kaip valyti nepatvirtintų pranešimų (kas savaitę arba tiek) \ r \ n";
$ Message .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
$ Juodraštis, juodraščiai = mail ($ prie $ tema, $ message, $ header);
); echo ("Jūsų patvirtinimo išsiųstas laiškas!");
)
)
/ / Jei vartotojas nustatėme, kad šis scenarijus iš elektroninio pašto adreso, jo, jį patvirtinti ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET ['Patvirtinti'] == "yes") (
/ / Padaryti confirmCode gana saugus naudoti
[ 'confirmCode' ]); $ ConfirmCode = mysql_real_escape_string (@ $ _GET ['confirmCode']);
$ Query = "SELECT * FROM emailConfirmationTable KUR con_code = '$ confirmCode" IR is_confirmed = '0' ";
( "Error 234234" ); $ Result = mysql_query ($ query) or die ("Klaida 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 ("Klaida konfigūracijos 222231231233);
if ($ result)
); echo ("pašto adresas patvirtintas!");
)
kitas
); echo ("Nepavyko patvirtinti E-mail");
)
?>
Labai svarbu atsiminti, kad patikrintume informacija, kad vartotojas įterpia bet kokia forma. Aš neįtraukė pirmiau funkcijos elektroninio pašto adresą patvirtinimo, bet gera vieta pradėti yra Cal Henderson's e-mail patvirtinimo funkciją rasti čia.
Jei norite pamatyti šio veiksmo scenarijų, tai galite padaryti čia.