Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

como evitar cadastro repetido nesse script?

19-03-2012 16:12

Alguem pode me ajudar ? como evitar o cadastro repetido nesse script, ou seja bloquear o envio do e-mail e exibir uma mensagem de "cadastro repetido" ou se não houver e for um novo proseguir e enviar o e-mail.
segue o codigo:

<?php //gerador de senha randomica function geraSenha(){ //caracteres que serão usados na senha randomica $chars = 'abcdxyswz0123456789'; //ve o tamnha maximo que a senha pode ter $max = strlen($chars) - 1; //declara $senha $senha = null; //loop que gerará a senha de 8 caracteres for($i=0;$i < 6; $i++){ $senha .= $chars{mt_rand(0,$max)}; } return $senha; } $senha = geraSenha(); //gravando email e senha no banco de dados mysql_query("INSERT INTO glr_cadastro_email (email,senha) VALUES('$email', '$senha')") or die(mysql_error()); //Corpo do email //inicializa 2 variaveis para que php.ini nao retorne erros //destinatario $para = $_POST['email']; //para o envio em formato HTML $headers = "MIME-Version: 1.0"; $headers = "Content-type: text/html; charset=utf-8\r\n"; //endereço do remitente $headers .= "From:eventos@lapela.com.br"; //corpo do email $mensagem = "Olá"; $mensagem .= ".<br \><br \>Você está recebendo este email porque solicitou ums senha para acessar a galeria de fotos."; $mensagem .= "<br \><br \><br \>Caso não tenha solicitado, remova esta mensagem imediatamente !"; $mensagem .= "<br \><br \><br \>Sua nova senha de acesso é: "; $mensagem .= '<strong>'.$senha.'</strong>'; $mensagem .= "<br \><br \><br \>Vá ao site e acesse a galeria!"; $mensagem .= "<br \><br \><br \><br \>Esta é uma mensagem automática, não responda !"; //envia a senha para o email com a função mail $envia = mail($para,"Solicitação de senha",$mensagem,$headers); if($envia){ $senha = md5($senha); } ?> <html> <head> </head> <body> Seu Cadastro foi efetuado com sucesso!<br /> Verifique no email cadastrado os dados<br /> de acesso para visualizar a Galeria de fotos. <br /> <a href="login.php" >Acessar Galeria</a> </body> </html>

Movido para MYSQL
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

como evitar cadastro repetido nesse script?

19-03-2012 16:20

Tem que contar o número total de linhas

$query=mysql_query("SELECT "); // verificando se o campo já existe $total = mysql_num_rows($query);

Ai fazer um if, se o $total for maior ou igual a um, não cadastra, caso contrário, adiciona.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

como evitar cadastro repetido nesse script?

20-03-2012 09:19

por gentileza, onde coloco isso no codigo? poderia postar o codigo ja com essa função por favor?
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

como evitar cadastro repetido nesse script?

20-03-2012 13:31

alguem pode me ajudar?
está dando erro na ultima linha do script.
segue o codigo:

<?php //gerador de senha randomica function geraSenha(){ //caracteres que serão usados na senha randomica $chars = 'abcdxyswz0123456789'; //ve o tamnha maximo que a senha pode ter $max = strlen($chars) - 1; //declara $senha $senha = null; //loop que gerará a senha de 8 caracteres for($i=0;$i < 6; $i++){ $senha .= $chars{mt_rand(0,$max)}; } return $senha; } $senha = geraSenha(); //gravando email e senha no banco de dados mysql_query("INSERT INTO glr_cadastro_email (email,senha) VALUES('$email', '$senha')") or die(mysql_error()); $re = mysql_query("select count(*) as total from glr_cadastro_email where email = '$email'"); $total = mysql_result($re, 0, "total"); //desconecta do banco if ($total == 0) { //Corpo do email //inicializa 2 variaveis para que php.ini nao retorne erros //destinatario $para = $_POST['email']; //para o envio em formato HTML $headers = "MIME-Version: 1.0"; $headers = "Content-type: text/html; charset=utf-8\r\n"; //endereço do remitente $headers .= "From:eventos@lapela.com.br"; //corpo do email $mensagem = "Olá"; $mensagem .= ".<br \><br \>Você está recebendo este email porque solicitou ums senha para acessar a galeria de fotos."; $mensagem .= "<br \><br \><br \>Caso não tenha solicitado, remova esta mensagem imediatamente !"; $mensagem .= "<br \><br \><br \>Sua nova senha de acesso é: "; $mensagem .= '<strong>'.$senha.'</strong>'; $mensagem .= "<br \><br \><br \>Vá ao site e acesse a galeria!"; $mensagem .= "<br \><br \><br \><br \>Esta é uma mensagem automática, não responda !"; //envia a senha para o email com a função mail $envia = mail($para,"Solicitação de senha",$mensagem,$headers); if($envia){ $senha = md5($senha); } else{ echo "Ja existe esse usuario cadastrado"; exit; } ?> <html> <head> </head> <body> Seu Cadastro foi efetuado com sucesso!<br /> Verifique no email cadastrado os dados<br /> de acesso para visualizar a Galeria de fotos. <br /> <a href="login.php" >Acessar Galeria</a> </body> </html>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

como evitar cadastro repetido nesse script?

20-03-2012 13:52

Adiciona um } na linha 72 do script.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

como evitar cadastro repetido nesse script?

20-03-2012 14:42

obrigado pela ajuda ,mas agora não está gravando no Banco e exibe a mensagem de usuario já cadastrado, o que faço não condegui descobrir o que é
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

como evitar cadastro repetido nesse script?

20-03-2012 16:11

Você deve fazer assim

$re = mysql_query("select count(*) as total from glr_cadastro_email where email = '$email'"); $total = mysql_result($re, 0, "total"); if ($total >= 1) { echo "usuário já cadastrado"; } else { // AQUI VAI O INSERT // ENVIO DE EMAIL, ETC.... }

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

como evitar cadastro repetido nesse script?

21-03-2012 09:07

desculpe mas ainda não está gravando, coloquei o if e não grava e exibe "cadastro com sucesso"

segue o codigo:

<?php //gerador de senha randomica function geraSenha(){ //caracteres que serão usados na senha randomica $chars = 'abcdxyswz0123456789'; //ve o tamnha maximo que a senha pode ter $max = strlen($chars) - 1; //declara $senha $senha = null; //loop que gerará a senha de 8 caracteres for($i=0;$i < 6; $i++){ $senha .= $chars{mt_rand(0,$max)}; } return $senha; } $senha = geraSenha(); //gravando email e senha no banco de dados mysql_query("INSERT INTO glr_cadastro_email (email,senha) VALUES('$email', '$senha')") or die(mysql_error()); $re = mysql_query("select count(*) as total from glr_cadastro_email where email = '$email'"); $total = mysql_result($re, 0, "total"); if ($total >= 1) { echo "usuário já cadastrado"; } else { //Corpo do email //inicializa 2 variaveis para que php.ini nao retorne erros //destinatario $para = $_POST['email']; //para o envio em formato HTML $headers = "MIME-Version: 1.0"; $headers = "Content-type: text/html; charset=utf-8\r\n"; //endereço do remitente $headers .= "From:eventos@lapela.com.br"; //corpo do email $mensagem = "Olá"; $mensagem .= ".<br \><br \>Você está recebendo este email porque solicitou ums senha para acessar a galeria de fotos."; $mensagem .= "<br \><br \><br \>Caso não tenha solicitado, remova esta mensagem imediatamente !"; $mensagem .= "<br \><br \><br \>Sua nova senha de acesso é: "; $mensagem .= '<strong>'.$senha.'</strong>'; $mensagem .= "<br \><br \><br \>Vá ao site e acesse a galeria!"; $mensagem .= "<br \><br \><br \><br \>Esta é uma mensagem automática, não responda !"; //envia a senha para o email com a função mail $envia = mail($para,"Solicitação de senha",$mensagem,$headers);} if($envia){ $senha = md5($senha); } ?>

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

como evitar cadastro repetido nesse script?

21-03-2012 09:15

está gravando somente a senha gerada o campo "email" fica vazio no bd.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

como evitar cadastro repetido nesse script?

21-03-2012 10:20

Esse campo $email vem de onde?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 291

como evitar cadastro repetido nesse script?

21-03-2012 11:44

esse campo "email" vem do formulario que gera a senha e depois grava a senha e o e-mail do ususario no BD .
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17637
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

como evitar cadastro repetido nesse script?

21-03-2012 16:48

Então informa que o email vem pelo post, se você usa esse método.

echo $_POST['email'];

Dá um echo antes do insert para ver se veio.

Ai seu INSERT pode fica assim

mysql_query("INSERT INTO glr_cadastro_email (email,senha) VALUES('".$_POST['email']."', '$senha')") or die(mysql_error());

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado