Så du behöver en bekräftelse på en användares e-postadress? Inga problem. Det finns många skäl att kräva bekräftelse via e-post, och PHP gör det enkelt.
Bekräftelse via e-post kan fullföljas är här:
- Uppmana användaren för all information du behöver från dem (inklusive deras e-postadress)
- Input detta i en databas
- Skickar användaren ett e-postmeddelande med en bekräftelse viktiga
- "Lås upp" data i databasen förrän den bekräftelse som viktiga tas upp.
Hur man gör det:
<? php
/ / Låt oss först ansluta till databasen
$ användarnamn = "dbUserName";
$ värd = "dbHost";
$ my_password = "dbPassword";
$ db_name = "dbname";
/ / Anslut till servern och väljer databas.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ( "$ host", "$ användarnamn", "$ my_password") eller dö ( "inte kan ansluta till servern");
) or die ( "cannot select DB" ); mysql_select_db ( "$ db_name") eller dö ( "kan inte välja BF");
/ / Följande rad ombeds om användaren måste ha den form som visas. Läs ner lite om du vill se vilka variabler som kommer från
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET [ 'första'] == "nej") & &! (@ $ _GET [ 'bekräfta'] == "ja") (
/ / Eftersom det är en sida som första skärm och ingen bekräftelse kod ingår vi bör visa form för användaren att fylla i
/ / Denna form tar bara ett argument (användarens e-postadress).
?>
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-post: <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
)
/ / Om formuläret har fyllts ut, vi måste skapa en bekräftelse koden sätter du in bekräftelsekod och användarnas e-post i en databas, och skicka ett e-postmeddelande till den e-postadress.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET [ 'första'] == "nej") (/ / Om formuläret har fyllts ut ...
/ / is_valid_email_address är inte ett giltigt php funktion. Sätt in din egen e-postadress kontrollera funktionen här ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST [ 'email']))
); echo ( "Sorry! E-postadressen som du angav är inte giltigt.");
/ / Om den e-postadress visas giltig och säker ...
else (
]); $ e = ($ _POST [ 'email']);
/ / Skapa en bekräftelse koden här. Det är så jag väljer att göra det, men det finns otaliga sätt att arbeta.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (rand ()));
/ / Allt är mer eller mindre OK att gå in i databasen och sedan skicka ett e-postmeddelande till användaren
$ query = "infoga i emailConfirmationTable (user_email, con_code) värden (" $ e ',' $ CONFIRMATION_CODE ")";
("Config Error 2223 "); $ result = mysql_query ($ query) eller dö ( "Config Error 2223");
/ / Skicka e-post
$ till = $ e;
$ Ämne = "Din shortlikeafox exempel bekräftelse", / / Från
$ rubrik = "från: shortlikeafox <info@shortlikeafox.com>";
/ / Ditt meddelande
$ meddelande = "Din Comfirmation länk! \ r \ n";
$ meddelande .= "Klicka på denna länk för att aktivera ditt konto \ r \ n";
$ meddelande .= "Denna länk med ut när jag känner mig som rensar bort de obekräftade e-post (varje vecka eller så) \ r \ n";
$ meddelande .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
$ skickat = mail ($ till, $ ärendet, $ meddelande, $ rubrik);
); echo ( "Din bekräftelse via e-post har skickats!");
)
)
/ / Om användaren hittat det här skriptet från en länk i hans e-post, bekräfta det ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET [ 'bekräfta'] == "ja") (
/ / Gör confirmCode relativt säkra att använda
[ 'confirmCode' ]); $ confirmCode = mysql_real_escape_string (@ $ _GET [ 'confirmCode']);
$ query = "SELECT * FROM emailConfirmationTable VAR con_code = '$ confirmCode" och is_confirmed ='0' ";
( "Error 234234" ); $ result = mysql_query ($ query) eller dö ( "Fel 234234");
$ nRows = mysql_num_rows ($ resultat);
1){ if ($ nRows == 1) (
$ query = "Uppdatera emailConfirmationTable SET is_confirmed =" 1 "VAR con_code = '$ confirmCode" ";
( "Config Error 222231231233 " ); $ result = mysql_query ($ query) eller dö ( "Config Error 222231231233);
if ($ resultat)
); echo ( "EMAIL bekräftas!");
)
annan
); echo ( "Det gick inte att bekräfta e-post");
)
?>
Det är mycket viktigt att komma ihåg att validera den information som användaren införs i någon form. Jag tog inte med en funktion för e-postadress validering ovan, men ett bra ställe att börja är Cal Henderson e validering funktion hittar du här.
Om du vill visa skriptet i aktion kan du göra det här.