by_stoco 0 Denunciar post Postado Maio 19, 2005 Salve a todos!Como faço para montar um e-mail com um link para validar um novo registro feito no site.Tipo assim: O usuário se cadastra e imediatamente é enviado um e-mail para ele e o seu cadastro só é valido se o link do e-mail for acessado.Como posso fazer isso?Se possível um exemplo!Desde já agradeço... Compartilhar este post Link para o post Compartilhar em outros sites
<?phpman?> 0 Denunciar post Postado Maio 19, 2005 Crie a tabela com os dados que você precisa cadastrar, adicione um campo para salvar o codigo de ativacao, e um campo para salvar a permissao de acesso(no caso do meu script chamado perm) com um valor padrao zero. O arquivo que faz a insercao no BD. cadastra_bd.php <?session_start();// cria o codigo de ativacaom, onde 30 é o nº de caracteresfor ($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;?><?// insere no BD<? require "conexao.php";$nome = $HTTP_POST_VARS["nome"];$login = $HTTP_POST_VARS["login"];$senha = $HTTP_POST_VARS["senha"];$email = $HTTP_POST_VARS["email"];$telefone = $HTTP_POST_VARS["telefone"];$endereco = $HTTP_POST_VARS["endereco"];$cidade = $HTTP_POST_VARS["cidade"];$cod_ativacao = $_SESSION['codigo'];//===========================================$sql = "insert into usuarios (nome, login, senha, email,telefone, endereco, cidade, cod_ativacao) values ('$nome', '$login', '$senha', '$email','$telefone', '$endereco', '$cidade', '$cod_ativacao')"; $resultado = mysql_query($sql)or die ("<font color=FF0000><b>Não foi possível efetuar o cadastro</b></font><br>Possívelmente o <b>login ($login)</b> já existe<br><br>Mensagem de Erro do Banco de Dados:<br><font color=FF0000>".mysql_error()."</font>"); echo ("<br><br><br><center><font color=#FFFFFF>Cadastro efetuado<br>Um Email foi enviado para o email cadastrado<br>com os dados para ativação do seu cadastro</font></center>"); //================================$remetente = "Seu Site <você@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";$assunto = "Ativação de cadastro";$mensagem = "<font color=#0000FF>Ative o seu cadastro<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>"; 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>";}?>ai no login você verifica os usuarios que tem permissao com valor 1. Compartilhar este post Link para o post Compartilhar em outros sites