Vamos começar com a nossa página de registo a partir de anterior, e construir em cima disso. Primeiro, vamos adicionar a coluna para o nosso usuários tabela para acompanhar usuário e endereço de mail do (vamos usar esse recurso para confirmar a nossa usuário), juntamente com outra coluna para controlar se eles já confirmaram o seu e-mail ou não :
ALTER TABLE `users` ADD `email` TEXT NOT NULL; ALTER TABLE `users` ADD `confirmou` tinyint(1) NOT NULL DEFAULT 0;
Então, vamos adicionar uma caixa de entrada para o endereço do usuário de e-mail:
33 34 | E-mail Endereço: <input type='text' nome='email' /> <br /> <input type="submit ' valor='Registrar' /> |
Para enviar a nossa confirmação de e-mails, vamos usar o PHP embutido no mail () função. Todos nós estamos indo para a mudança em nosso código é o que acontece após um usuário se registra - vamos enviar-lhes um pequeno e rápido e-mail a dizer hey, clique aqui para confirmar seu endereço de e!-Mail ":"
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | $ Email = $ _POST['email']; $ query = sprintf("INSERT INTO utilizadores (username, senha, email) VALUES ('% s','% s','% s'); ", mysql_real_escape_string($ _POST['username']), mysql_real_escape_string(md5($ senha)), mysql_real_escape_string($ email)); mysql_query($ query); $ para = $ email; $ assunto = 'Browsergame e-mail de confirmação do endereço ", $ message = " Hey! Obrigado por se inscrever para o jogo Browser. Clique abaixo para confirmar o seu endereço de correio-e. < a href =" http://website.com/confirm.php?email = $ email'> abaixo "; $ headers = "From: webmaster@example.com ' . "\ r\ n" . "Content-type: text / html; charset = iso-8859 -1 ' . "\ r\ n"; mail($ para,$ assunto,$ mensagem,$ headers); >? <span style=color ': verde'>Parabéns, você've cadastrado com sucesso! Um email de confirmação foi enviado para o endereço informado. |
E se você executar um teste rápido de seu script, você deve ver o show via e-mail na caixa de entrada de qualquer e-mail que você decidiu testá-lo com o!
Isto é tudo muito bem, mas que sobre a nossa real confirmar página? Nós vamos precisar de um desses para realmente marcar um usuário como "confirmada" após clicar no link do e-mail que enviamos para eles. Então vamos criar esta página.
A página de confirmação é realmente muito fácil. Tudo que precisa fazer é ter um endereço de e-mail, e usar esse e-mail para atualizar as informações de um usuário específico dentro do banco de dados (você pode modificá-lo para trabalhar fora de qualquer atributo exclusivo que você queria, na verdade):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | se($ _GET) { $ email = $ _GET['email']; require_once('config.php'); $ conn = mysql_connect($ dbhost,dbuser $,$ dbpass) ou morrer ('Erro na conexão com mysql '); mysql_select_db($ dbname); $ query = sprintf("SELECT COUNT (id) FROM utilizadores WHERE email = '% s'E confirmou = 0 ", mysql_real_escape_string($ email)); $ resultado = mysql_query($ query); lista($ count) = mysql_fetch_row($ resultado); se($ count > = 1) { $ query = sprintf("UPDATE users SET confirmou = 1 WHERE email = '% s'", mysql_real_escape_string($ email)); mysql_query($ query); ?> Parabéns, você confirmou o seu endereço de correio-e ! } mais { >? span style <= 'color: > Opa 'vermelho! Ou que o usuário não existe ou que e-mail já foi confirmada. } } ?> |
Não há realmente muito o que esta - tudo que ele faz é olhar para os usuários que têm esse endereço de e-mail particular, e não já confirmaram a sua endereço de correio-e. Não há nada novo nesse código que você não tenha visto antes.
E isso é tudo o que há a confirmação de e-mail! É realmente muito mais simples do que você pensa. Aqui está o código da página de registo revista:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | se($ _POST) { $ senha = $ _POST['senha']; $ confirm = $ _POST['confirmar']; se($ senha =! $ confirma) { ?> estilo > vermelho ": As senhas não coincidem Erro! ? } mais { require_once('config.php'); $ conn = mysql_connect($ dbhost,dbuser $,$ dbpass) ou de morrer ('Erro na conexão com mysql '); mysql_select_db($ dbname); $ query = sprintf("SELECT COUNT (id) FROM utilizadores WHERE UPPER (nome) = UPPER ('% s') ", mysql_real_escape_string($ _POST['username'])); $ resultado = mysql_query($ query); lista($ count) = mysql_fetch_row($ resultado); se($ count > = 1) { >? erro: o usuário é levado <. / span> } mais { $ email = $ _POST['email']; $ query = sprintf("INSERT INTO utilizadores (username, senha, email) VALUES ('% s','% s','% s'); ", mysql_real_escape_string($ _POST['username']), mysql_real_escape_string(md5($ senha)), mysql_real_escape_string($ email)); mysql_query($ query); $ para = $ email; $ assunto = 'Browsergame e-mail de confirmação do endereço ", $ mensagem = "Hey um! Obrigado por se inscrever para a href Browsergame. Clique abaixo para confirmar o seu e-= mail. <'http:// / confirm.php website.com =? e-mail $ email'> abaixo "; $ headers = "From: 'webmaster@example.com . "\ r\ n" . "Content-type: text / html; charset = iso-8859-1 ' . "\ r\ n"; mail($ para,$ assunto,$ mensagem,$ headers); ?> Parabéns, você Já registado com sucesso! Um email de confirmação foi enviado para o endereço informado>. PHP } } } ?> |
E aqui está o código da página de confirmação:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | se($ _GET) { $ email = $ _GET['email']; require_once('config.php'); $ conn = mysql_connect($ dbhost,dbuser $,$ dbpass) ou morrer ('Erro na conexão com mysql '); mysql_select_db($ dbname); $ query = sprintf("SELECT COUNT (id) FROM utilizadores WHERE email = '% s'E confirmou = 0 ", mysql_real_escape_string($ email)); $ resultado = mysql_query($ query); lista($ count) = mysql_fetch_row($ resultado); se($ count > = 1) { $ query = sprintf("UPDATE users SET confirmou = 1 WHERE email = '% s'", mysql_real_escape_string($ email)); mysql_query($ query); ?> Parabéns, você confirmou o seu endereço de correio-e ! } mais { >? span style <= 'color: > Opa 'vermelho! Ou que o usuário não existe ou que e-mail já foi confirmada. } } ?> |
Se você quiser vê-lo em ação, você pode verificá-la na amostra e-mail página de registo, onde o código que você vê acima está sendo executada.