Ir para conteúdo

POWERED BY:

Arquivado

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

Leonardo da Costa

Nao repetir cadastro !?

Recommended Posts

Entao, to começandoa gora a fuçar com php etc, e quero montar um sistema de LOGIN e Cadastro, estou ainda na parte do cadastro e esta tudo OK por enquanto, mas eu quero evitar que insira no banco de dados caso o email inserido no formulario ja estiver cadastrado no Banco de Dados!

tentei varios codigos mas sempre da erro!!!

 

estou usando o seguinte codigo por enquanto que esta tudo certo, mas insere usuarios repetidos!

 

<?php


 include("/db.class.php");












 $cadastrando = $pdo->prepare('INSERT INTO usuarios (nome, email, senha, nivel, status) VALUES (:nome, :email, :senha, 1, 0)');












//puxa os dados inseridos no formulario


if(isset($_POST['enviar'])) {


$nome  = filter_var($_POST['nome']);
$email = filter_var($_POST['email']);
$senha = filter_var($_POST['senha']);


}
















// adiciona os dados puxados para enviar no banco de dados
$cadastrando->bindParam(':nome', $nome);
$cadastrando->bindParam(':email', $email);
$cadastrando->bindParam(':senha', $senha);










// envia para o form




if($cadastrando->execute()){










   // mensagem de sucesso
   
   
   
   if(isset($cadastrando)){
  
  
  $flash="Cadastrado com sucesso";
   }else{
  $flash="Ops! Ocorreu um erro em nosso sistema, tente novamente!";
  
   }
   
   #retorno para o usuario
  
  echo $flash;
  
   }
  














?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

https://dev.mysql.com/doc/refman/5.5/en/optimizing-primary-keys.html

 

Resolva no Banco usando PRIMARY KEY (chave primária).

 

 

Nao entenid, me desculpa, faz nem 3 dias direito que estou fuçando PHP, me bati um monte soh pra conseguir conectar no Banco de Dados por PDO etc... busco na net sugestoes para resolver meu problema mas continua dando erro no meu codigo!

 

possibilidades de postarem aqui um codigo que execute a ação que preciso ja pronto e funcional?

Compartilhar este post


Link para o post
Compartilhar em outros sites

possibilidades de postarem aqui um codigo que execute a ação que preciso ja pronto e funcional?

Claro que sim, no caso basta verificar o valor hora o serviço e pronto... porque postar algo pronto e funcional não é ajuda, é freela... veja bem, fórum é um lugar onde as pessoas te auxiliam para que você resolva os seus problemas.

 

O outro moderador disse para você setar o campo como uma chave primária, como você fez? Tentou pesquisar no google algo do tipo "setar campo chave primária mysql"? Eu particularmente não usaria o e-mail como uma chave primária, outrossim setaria o campo como unique (que garante que ele também não se repita). Outro solução, antes do insert fazer um select pelo e-mail e verificar com rowCount() quantos resultados retornaram, se for zero cadastra, se for outro número, já tem o e-mail no BD, algo do tipo:

$verifica = $pdo->prepare('SELECT email FROM usuarios WHERE email = :email LIMIT 1');
$verifica->bindParam(':email', $email, PDO::PARAM_STR);
$verifica->execute();

if($verifica->rowCount() == '0'){
//Cadastra
}else{
//opa, o e-mail já tá no BD
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Claro que sim, no caso basta verificar o valor hora o serviço e pronto... porque postar algo pronto e funcional não é ajuda, é freela... veja bem, fórum é um lugar onde as pessoas te auxiliam para que você resolva os seus problemas.

 

O outro moderador disse para você setar o campo como uma chave primária, como você fez? Tentou pesquisar no google algo do tipo "setar campo chave primária mysql"? Eu particularmente não usaria o e-mail como uma chave primária, outrossim setaria o campo como unique (que garante que ele também não se repita). Outro solução, antes do insert fazer um select pelo e-mail e verificar com rowCount() quantos resultados retornaram, se for zero cadastra, se for outro número, já tem o e-mail no BD, algo do tipo:

$verifica = $pdo->prepare('SELECT email FROM usuarios WHERE email = :email LIMIT 1');
$verifica->bindParam(':email', $email, PDO::PARAM_STR);
$verifica->execute();

if($verifica->rowCount() == '0'){
//Cadastra
}else{
//opa, o e-mail já tá no BD
}

Obrigado!!!

queria ele pronto, pois assim eu conseguia entender a logica e a ordem dos codigos para funcionar corretamente!!

Talvez seja um jeito besta de tentar aprender, mas é o inicio só, almenos espero haha!!

 

vlw mesmo assim, vou testar qualquer coisa dou um alerta ;)

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.