Então, você precisa de uma confirmação do endereço de e-mail do usuário? Não tem problema. Há muitas razões requerem a confirmação por e-mail, PHP e faz com que seja simples.
E-mail de confirmação pode ser concluída se esses passos:
- Solicita que o usuário seja qual for a informação que você precisa delas (incluindo o seu endereço de e-mail)
- Entrada de dados em um banco de dados desta
- Enviar um e-mail do usuário com uma chave especial confirmação
- "Desbloquear" os dados no banco de dados após a confirmação chave é inserida.
Como fazê-lo:
<? php
/ / Primeiro, vamos conectar ao banco de dados
$ user_name = "dbUserName";
$ host = "dbHost";
my_password $ = "dbpassword";
$ db_name = "dbname";
/ / Conectar ao servidor e selecionar banco de dados.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ( "$ host", "$ user_name", "$ my_password") ou morrer ( "não pode se conectar ao servidor");
) or die ( "cannot select DB" ); mysql_shutdown ( "$ db_name") ou morrer ( "não pode selecionar DB");
/ / A linha seguinte basicamente pergunta se o usuário necessita de ter a forma mostrada. Leia um pouco para baixo se quiser ver de onde vêm as variáveis
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET [ 'primeiro'] == "não") & &! (@ $ _GET [ 'confirmar'] == "sim") (
/ / Uma vez que esta é a primeira exibição da página, e nenhum código de confirmação é incluído nos devemos apresentar o formulário para o usuário preencha
/ / Este formulário só tem um argumento (o endereço de e-mail do usuário).
?>
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" /> Email: <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 o formulário foi preenchido, precisamos gerar um código de confirmação, inserir o código de confirmação e de utilizador e-mail em um banco de dados, e enviar um e-mail para o endereço de email.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET [ 'primeiro'] == "não") (/ / se o formulário foi preenchido ...
/ / is_valid_email_address NÃO é uma função válida php. Insira o seu próprio endereço de e-mail verificando função aqui ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST [ 'email']))
); echo ( "Sorry! O endereço de e-mail que você digitou não é válido.");
/ / Se o endereço de email válido e seguro aparece ...
else (
]); $ email = ($ _POST [ 'email']);
/ / Gerar um código de confirmação aqui. Esta é a maneira que eu opte por fazê-lo, mas existem inúmeras maneiras que irá trabalhar.
( rand ())); CONFIRMATION_CODE $ = md5 (uniqid (rand ()));
/ / Tudo é mais ou menos OK para acessar o banco de dados e, em seguida, enviar um e-mail ao usuário
$ query = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ( '$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ resultado = mysql_query ($ query) ou morrer ( "Config Erro 2223");
/ / Enviar e-mail
= $ a $ email;
$ assunto = "Sua confirmação shortlikeafox exemplo"; / / De
$ cabeçalho = "a partir de: shortlikeafox <info@shortlikeafox.com>";
/ / Sua mensagem
$ mensagem = "Seu Comfirmation link! \ r \ n";
$ mensagem .= "Clique neste link para ativar a sua conta \ r \ n";
$ mensagem .= "Essa ligação com a expirar quando eu sinto como se fora a limpeza não confirmados e-mails (todas as semanas ou quase) \ r \ n";
$ mensagem .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
sentmail $ = mail ($ para, $ assunto, $ mensagem, $ header);
); echo ( "Seu Confirmação de e-mail foi enviado!");
)
)
/ / Se o usuário encontrou o script a partir de um link em seu e-mail, confirme-a ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET [ 'confirmar'] == "sim") (
/ / Make a confirmCode relativamente segura para uso
[ 'confirmCode' ]); confirmCode $ = mysql_real_escape_string (@ $ _GET [ 'confirmCode']);
$ query = "SELECT * FROM emailConfirmationTable ONDE con_code = '$ confirmCode' E is_confirmed ='0 '";
( "Error 234234" ); $ resultado = mysql_query ($ query) ou morrer ( "Erro 234234");
nrows $ = mysql_num_rows ($ result);
1){ if ($ nrows == 1) (
$ query = "UPDATE emailConfirmationTable SET is_confirmed ='1 'WHERE con_code =' $ confirmCode '";
( "Config Error 222231231233 " ); $ resultado = mysql_query ($ query) ou morrer ( "Erro 222231231233 Config");
if ($ result)
); echo ( "EMAIL CONFIRMADO!");
)
diferente
); echo ( "Não foi possível confirmar o e-mail");
)
?>
É muito importante lembrar-se de validar a informação que o usuário insere, sob qualquer forma. Eu não incluiu uma função de validação endereço de e-mail acima, mas um bom lugar para começar é Cal Henderson função de e-mail de validação encontrado aqui.
Se você quiser ver esse script em ação, você pode fazê-lo aqui.