Allora avete bisogno di conferma di un indirizzo email? Nessun problema. Ci sono un sacco di motivi per richiedere e-mail di conferma, e PHP rende semplice.
E-mail di conferma possono essere completati questi passaggi:
- L'utente per qualunque informazioni di cui avete bisogno da loro (comprese le loro indirizzo e-mail)
- Ingresso questi dati in un database
- L'utente invia una e-mail con una speciale conferma chiave
- "Sblocca" i dati del database una volta il tasto di conferma è iscritto.
Come per farlo:
<? php
/ / Prima di tutto, la connessione al database
= nome_utente $ "dbUserName";
$ host = "dbHost";
my_password $ = "dbpassword";
$ db_name = "dbName";
/ / Connessione al server di database e selezionare.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ( "$ host", "$ nome_utente", "$ my_password") or die ( "non può connettersi al server");
) or die ( "cannot select DB" ); mysql_select_db ( "$ db_name") or die ( "non può selezionare DB");
/ / La riga seguente chiede sostanzialmente se l'utente deve avere la forma visualizzata. Leggi giù un po 'se volete vedere dove le variabili provengono da
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET [ 'primo'] == "no") & &! (@ $ _GET [ 'conferma'] == "sì") (
/ / Dal momento che questa è la prima pagina del display e non il codice di conferma è incluso dobbiamo mostrare il modulo per l'utente di compilare
/ / Questo modulo richiede solo un argomento (l'indirizzo email).
?>
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
)
/ / se il formulario è stato compilato, abbiamo bisogno di generare un codice di conferma, inserire il codice di conferma e-mail degli utenti in un database, inviare una e-mail all'indirizzo di posta elettronica.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET [ 'primo'] == "no") (/ / se il formulario è stato compilato ...
/ / is_valid_email_address NON è una valida funzione php. Inserisci il tuo indirizzo email funzione di controllo qui ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST [ 'email']))
); echo ( "Sorry! L'indirizzo email che hai inserito non è valido.");
/ / Se l'indirizzo di posta elettronica appare valido e sicuro ...
else (
]); $ email = ($ _POST [ 'email']);
/ / Genera un codice di conferma qui. Questo è il mio modo di scegliere di farlo, ma ci sono innumerevoli modi in cui si opera.
( rand ())); CONFIRMATION_CODE $ = md5 (uniqid (rand ()));
/ / Tutto è più o meno OK per entrare nella base di dati e quindi inviare un messaggio di posta elettronica per l'utente
$ query = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ( '$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ risultato = mysql_query ($ query) or die ( "Errore di configurazione 2223");
/ / Invia e-mail
$ a = $ email;
$ subject = "Il tuo esempio shortlikeafox conferma"; / / Da
$ header = "a partire da: shortlikeafox <info@shortlikeafox.com>";
/ / Il tuo messaggio
$ messaggio = "La tua Comfirmation link! \ r \ n";
$ messaggio .= "Clicca su questo link per attivare il tuo account \ r \ n";
$ messaggio .= "Questo legame con scadenza ogni volta che mi sento come la pulizia delle e-mail non confermata (ogni settimana o più) \ r \ n";
$ messaggio .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
= $ sentmail mail ($ a, $ oggetto, $ messaggio, $ header);
); echo ( "La tua e-mail di conferma è stata inviata!");
)
)
/ / Se l'utente ha trovato questo script da un link nella sua e-mail, confermare ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET [ 'conferma'] == "sì") (
/ / Portare il confirmCode relativamente sicuro per l'uso
[ 'confirmCode' ]); confirmCode $ = mysql_real_escape_string (@ $ _GET [ 'confirmCode']);
$ query = "SELECT * FROM emailConfirmationTable DOVE con_code = '$ confirmCode' E is_confirmed ='0 '";
( "Error 234234" ); $ risultato = mysql_query ($ query) or die ( "Errore 234234");
nRows $ = mysql_num_rows ($ result);
1){ if ($ nRows == 1) (
$ query = "UPDATE emailConfirmationTable SET is_confirmed ='1 'DOVE con_code =' $ confirmCode '";
( "Config Error 222231231233 " ); $ risultato = mysql_query ($ query) or die ( "Errore di configurazione 222231231233");
if ($ risultato)
); echo ( "CONFERMA E-MAIL!");
)
altro
); echo ( "Impossibile confermare e-mail");
)
?>
E 'molto importante ricordare a convalidare le informazioni che l'utente inserisce in qualsiasi forma. Io non includere una funzione di indirizzo e-mail di convalida di cui sopra, ma un buon punto di partenza è Cal Henderson della funzione e-mail di convalida trovare qui.
Se volete vedere questo script in azione, potete farlo qui.