joaogil 1 Denunciar post Postado Julho 20, 2005 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
<?phpman?> 0 Denunciar post Postado Julho 20, 2005 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
joaogil 1 Denunciar post Postado Julho 20, 2005 Vaelu é isso mesmo, vou testar, qualquer coisa posto aí ! Compartilhar este post Link para o post Compartilhar em outros sites
joaogil 1 Denunciar post Postado Julho 21, 2005 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
<?phpman?> 0 Denunciar post Postado Julho 21, 2005 É 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
joaogil 1 Denunciar post Postado Julho 22, 2005 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
Eclesiastes 2 Denunciar post Postado Julho 24, 2005 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
joaogil 1 Denunciar post Postado Julho 30, 2005 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
Beto Lima 0 Denunciar post Postado Março 13, 2008 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