Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;
}
?>>
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?
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
}
>
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 ;)
https://dev.mysql.com/doc/refman/5.5/en/optimizing-primary-keys.html
Resolva no Banco usando PRIMARY KEY (chave primária).