Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joaogil

como fazer e-mail de confirmação ?

Recommended Posts

Pessoal, eu vou precisar fazer um e-mail de confirmação de cadastro, onde a pessoa, depois de se cadastrar, recebe um e-mail tendo que clicar em um link ou botão para finalizar seu cadastro !

 

Eu queria alguma dica pra fazer isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No arquivo que processa o cadastro:

<?session_start();for ($i=1; $i<=30; $i++) {    if ($i%2==0)        $num .= rand(1, 9);    else        $num .= chr(rand(97,122)); // 65,90 para maiúsculas & 97,122 para minúsculas}$_SESSION[codigo] = $num;?>
...

$sql = "insert into usuarios (nome, login, senha, email,telefone, endereco, cidade, cod_ativacao) values ('$nome', '$login', '$senha', '$email','$telefone', '$endereco', '$cidade', '$_SESSION[codigo]')";
...

$remetente = "Seu nome <email@site.com.br>";$headers .= "MIME-Version: 1.0\n";$headers .= "Content-Type: text/html; charset=iso-8859-1\n";  $headers .= "From: $remetente\n";$headers .= "X-Mailer: SISTEMA DE EMAIL\n";$headers .= "X-Mailer: Sistema Criado por: Luciano André Bruch\n";$assunto = "Ativação de cadastro";$mensagem = "<font color=#0000FF>Ative o seu cadastro<br>            <br>  Seus dados:<br>  <br>  Nome: $nome<br>  Login: $login<br>  Senha: $senha<br>  Email: $email<br>  Endereço: $endereco<br>  Cidade: $cidade<br>  <br>  Clique no link abaixo para efetuar a ativação do seu cadastro:<br>  <br>  <a href=http://www.site.com.br/ativar_cadastro.php?codigo=$cod_ativacao>http://www.site.com.br/ativar_cadastro.php?codigo=$cod_ativacao</a>  <br>";    mail("$email","$assunto","$mensagem","$headers");

ativar_cadastro.php

<?php$cod_ativacao = $_GET['codigo'];require "conexao.php";$sql = "SELECT * FROM usuarios WHERE cod_ativacao = '$cod_ativacao'";$resultado = mysql_query($sql)or die ("Erro:: ".mysql_error());$total = @mysql_num_rows($resultado);  //traz o resultado da pesquisa acimaif ($total == 1){	$update = "UPDATE usuarios SET perm = '1' WHERE cod_ativacao = '$cod_ativacao'";	$resultado_update = mysql_query($update) or die ("Erro ao ativar");	echo "<br><br><br><center><font face=verdana size=2>Cadastro ativado com sucesso</font></center>";}else{	echo "<br><br><br><center><font face=verdana size=1>Cadastro não ativado!<br>Possívelmente o seu código de ativação deve estar incorreto<br>Verifique seu email!</font></center>";}?>

Na tabela você adiciona um campo perm , com valor padrao "0" (zero)

 

e para fazer login permita somente os que tiverem o valor perm=1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza cara, eu ainda não usei teu código mas vou usá-lo !

 

Só eu vi um detalhe errado ! Em vez de usar a variável $cod_ativacao no corpo do email, assim:

 

<a href=http://www.site.com.br/ativar_cadastro.php?codigo=$cod_ativacao>http://www.site.com.br/ativar_cadastro.php?codigo=$cod_ativacao</a>

 

Acho que deveria usar a variável $num, assim

 

<a href=http://www.site.com.br/ativar_cadastro.php?codigo=$num>http://www.site.com.br/ativar_cadastro.php?codigo=$num</a>

 

Já que a variável $cod_ativacao ainda não exite no script na hora que o e-mail será enviado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

É verdade, eu tomei por base um sistema que desenvolvi aqui no Portal onde trabalho, e a variável $cod_ativacao, esta sendo setada com o valor da session e eu pulei esta parte do código pois é onde eu capturo as variáveis $_POST do form.

 

na verdade nem precisaria esta variável, pois já existe outra com este valor, mas é que eu uso esta variável para mais coisas no meu sistema, e como eu tava com pressa acabei nem vendo isso, hehehehe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só me tire uma dúvisa Phpman ?

Aquele método pra gerar o número aleatório, porque você fez tão diferente pra números ímpares ?

 

PHP

[*]

[*]$num .= chr(rand(97,122)); // 65,90 para maiúsculas & 97,122 para minúsculas

[*]

 

Essa parte eu queria entender ??!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vai sortear uma letra maiúscula.

 

 

chr() retorna o caracter ASCII correspondente ao número.

 

E entre 97 - 122 contém as letras maiúsculas.

 

Veja todos:

<?phpfor ( $i = 0; $i <= 255; $i++ ){    print $i ."==>". chr($i)."<br />";}?>

E tem nesse site a tabela: http://www.lookuptables.com/

 

 

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código está funcionando perfeitamente ! mas tenho outra dúvida se você está disposto a me responder.

Pra que armazener a variável $num na $_SESSION['codigo'] ?

Assim:

PHP

[*]$_SESSION[codigo] = $num;

 

??

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funciona, depois de enviado pelo submit você recebe o email com código diferente que está no banco. o código além de ser diferente, fica com mais caracteres do que consta no banco.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.