Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou eu aqui novamente, hoje preciso da ajuda de você para um pequeno dilema, quero evitar que os usuarios cadastrem mais de um e-mail no sistema, não estou utilizando qualquer metodo que faça com que o registro no banco seja unique então decidi fazer isso no php.
Como procedo: Quando o usuario enviar seu formulario de cadastro a pagina executa um SQL que busca todos os e-mails gravados no banco e armazena em um array, preciso comparar o valor da variavel $email que o usuario preencheu no cadastro com cada valor dentro do Array se ele o mesmo valor for encontrado ele retorna um erro se não for encontrado valor igual ele execura a Query que insere o usuario no banco. Abaixo o código que estou utilizando, atualmente ele simplesmente dá o erro como se a query de inserção estivesse com problema, detalhe testei com um e-mail que já estivesse cadastrado.
$verifica = "Select email from usuario";
$dest = mysql_query ($verifica)or die ('Erro consultar e-mail:<br/>'.mysql_error());
$row = mysql_fetch_array ($dest);
//echo $row; break;
if(array_search($email,$row)) { ?> <script>
alert("Este e-mail já está cadastrado em nosso sistema. Favor recupere sua senha!");
window.location="recupera.php";
</script><?php} else {
$query = "Insert into
Usuario (nome, cidade, instituicao, curso, email, permissao, senha)
values ('$nome', '$cidade', '$instituicao', '$curso', '$email', 'usuario', '$senha');";
if (mysql_query($query)) {
// segue com a inserçãoA forma foi a que você descreveu:
$verifica = "Select email from usuario WHERE email = '$mail'"; // Verifica se já existe o email no banco
$dest = mysql_query ($verifica)or die ('Erro consultar e-mail:<br/>'.mysql_error());
if (mysql_num_rows($dest) === 0) {
// Continua as ações.
} else {
echo 'E-mail cadastrado';
}Verdade Gente, vocês tem razão, era muito mais simples do que imaginei :D vlw
Ai você tem 100 mil e-mails e vai jogar tudo isto no array? Que tal usar um método revolucionário? Consultar o e-mail direto no BD e verificar com mysql_num_rows quantas linhas retornaram?