Så du trenger en bekreftelse på en brukers e-postadresse? No problem. Det er mange grunner til å kreve bekreftelse via e-post, og PHP gjør det enkelt.
E-postbekreftelse kan fullføres er fremgangsmåte:
- Ber brukeren for hvilken informasjon du trenger fra dem (inkludert e-postadresse)
- Inngang disse dataene i en database
- Sender brukeren en e-postmelding med en spesiell nøkkelen
- "Lås opp" dataene i databasen når nøkkelen er oppgitt.
Slik gjør du det:
<? php
/ / Først, la oss koble til databasen
$ brukernavn = "dbUserName";
$ host = "dbHost";
$ my_password = "dbPassword";
$ DB_NAME = "dbName";
/ / Koble til serveren og velger databasen.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ( "$ host", "$ brukernavn", "$ my_password") eller dø ( "kan ikke koble til server");
) or die ( "cannot select DB" ); mysql_select_db ( "$ DB_NAME") eller dø ( "kan ikke velge DB");
/ / Følgende linje i utgangspunktet spør om brukeren må ha skjemaet vises. Les ned litt hvis du vil se hvor variablene kommer fra
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET [ 'første'] == "nei") & &! (@ $ _GET [ 'bekreft'] == "ja") (
/ / Siden dette er den siden første visning, og ingen bekreftelseskode følger vi bør vise form for brukeren å fylle ut
/ / Dette skjemaet tar bare ett argument (brukerens e-postadresse).
?>
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
)
/ / hvis skjemaet er fylt ut, må vi generere en verifiseringskode ved å sette inn bekreftelseskode og bruker e-post i en database, og sende en e-post til den e-postadressen.
[ 'first' ] == "no" ){ //if the form has been filled out… ElseIf (@ $ _GET [ 'første'] == "nei") (/ / hvis skjemaet er fylt ut ...
/ / is_valid_email_address er ikke en gyldig php funksjon. Sett inn din egen e-postadresse du sjekker funksjonen her ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST [ 'email']))
); echo ( "Beklager! E-postadressen du oppgav er ikke gyldig.");
/ / Hvis e-postadressen vises gyldig og trygt ...
else (
]); $ epost = ($ _POST [ 'email']);
/ / Generer en bekreftelseskode her. Dette er måten jeg velger å gjøre det, men det finnes utallige måter som vil fungere.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (rand ()));
/ / Alt er mer eller mindre OK for å gå inn i databasen og deretter sende en e-post til brukeren
$ query = "setter inn emailConfirmationTable (user_email, con_code) VALUES ( '$ epost', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ result = mysql_query ($ query) eller dø ( "Config Error 2223");
/ / Send e-post
$ til = $ e;
$ subject = "Din shortlikeafox eksempel bekreftelse"; / / Fra
$ header = "fra: shortlikeafox <info@shortlikeafox.com>";
/ / Din melding
$ melding = "Ditt Comfirmation kobling! \ r \ n";
$ melding .= "Klikk på denne lenken for å aktivere kontoen \ r \ n";
$ melding .= "Denne koblingen med utløpe når jeg føler for å rense ut ubekreftet e-post (hver uke eller så) \ r \ n";
$ melding .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
$ sendtpost = mail ($ til, $ emne, $ melding, $ header);
); echo ( "Din bekreftelse på e-post har blitt sendt!");
)
)
/ / Hvis brukeren fant dette skriptet fra en kobling i sin e-post, bekrefter det ....
[ 'confirm' ] == "yes" ){ ElseIf (@ $ _GET [ 'bekreft'] == "ja") (
/ / Gjør confirmCode relativt trygt å bruke
[ 'confirmCode' ]); $ confirmCode = mysql_real_escape_string (@ $ _GET [ 'confirmCode']);
$ query = "SELECT * FROM emailConfirmationTable HVOR con_code = '$ confirmCode" og is_confirmed = "0" ";
( "Error 234234" ); $ result = mysql_query ($ query) eller dø ( "Error 234234");
$ nrows = mysql_num_rows ($ resultat);
1){ if ($ nrows == 1) (
$ query = "UPDATE emailConfirmationTable SET is_confirmed ='1 'WHERE con_code =' $ confirmCode '";
( "Config Error 222231231233 " ); $ result = mysql_query ($ query) eller dø ( "Config Error 222231231233");
if ($ resultat)
); echo ( "E-postadresse bekreftet!");
)
ellers
); echo ( "Kunne ikkje bekrefta");
)
?>
Det er veldig viktig å huske å validere informasjon som brukeren setter inn i noen form. Jeg hadde ikke inkluderer en funksjon for e-postadresse validering ovenfor, men et godt sted å begynne er Cal Henderson e-validering funksjon finnes her.
Hvis du ønsker å se dette skriptet i aksjon, kan du gjøre det her.