Preceptor 3 Denunciar post Postado Maio 17, 2014 Você já pensou em quantos José da Silva existem no Brasil? E quantos José da Silva com o CPF de número 758.126.654-00 existem? Apenas 1 correto?Um CPF é a forma de voce tornar unico cada elemento e fazer referencia a somente a ele. Para resolver o seu caso de forma mais eficiente é preciso incluir mais dados no cadastro, um campo com cpf,rg ou telefone vao ajudar bastante. Segundo na hora de fazer a consulta só pra verificar se ha usuário cadastrado, apenas conte o total de resultados. Nao precisa ler todo o banco, entao segue meu pitaco $nome = $_POST["nome"]; $sql_consulta = "SELECT COUNT(*) FROM usuarios WHERE cpf = '{$cpf}'"; $sql = mysql_query($sql_consulta); # se houver mais de 1 if(mysql_num_rows($sql) > 0){ echo "Usuário já cadastrado."; }else{ $nome=$_POST['nome']; $email=$_POST['email']; $senha=$_POST['senha']; $cpf=$_POST['cpf']; $sql = mysql_query("INSERT INTO usuarios(nome, email, senha,cpf) VALUES('{$nome}', '{$email}', '{$senha}','{$cpf}')"); echo "<span id='txtopent'>(EB002) Cadastro efetuado com sucesso.</span>"; } Compartilhar este post Link para o post Compartilhar em outros sites
First 1 Denunciar post Postado Maio 17, 2014 Cara deu certo obrigado. <?php $nome=$_POST['nome']; $email=$_POST['email']; $senha=$_POST['senha']; $sql = mysql_query("SELECT * FROM usuarios WHERE nome='$nome'"); if(mysql_num_rows($sql)>0){ echo "<span id='txterror'>(EA002) Usuário ou E-mail já cadastrado.</span>"; }else{ $sql = mysql_query("INSERT INTO usuarios(nome, email, senha) VALUES('$nome', '$email', '$senha')"); echo "<span id='txtopent'>(EB002) Cadastro efetuado com sucesso.</span>"; } ?> Agora para eu colocar para não cadastrar usuários com o mesmo email? tentei assim $sql = mysql_query("SELECT * FROM usuarios WHERE nome='$nome' AND email='$email'"); Mais não deu oque faço? Compartilhar este post Link para o post Compartilhar em outros sites
Preceptor 3 Denunciar post Postado Maio 17, 2014 Colega uma pergunta "SELECT * FROM usuarios WHERE nome='jose da silva' AND email='jose@yahoo.com.br' " é igual a "SELECT * FROM usuarios WHERE nome='josé da silva' AND email='jose@yahoo.com.br' " ou é igual a "SELECT * FROM usuarios WHERE nome='Ze da silva' AND email='jose@yahoo.com.br' " ou igual a "SELECT * FROM usuarios WHERE nome='Zé da silva' AND email='jose@yahoo.com.br' " Compartilhar este post Link para o post Compartilhar em outros sites
jgustavo99 85 Denunciar post Postado Maio 17, 2014 Não, os nomes por exemplo com Letras Maiúsculas, acentuação ..(etc) difere na hora da consulta SQL. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Miguel 7 Denunciar post Postado Maio 18, 2014 Amigão verifiquei e não esta pelo menos aqui não funciona olha <?php $nome=$_POST['nome']; $email=$_POST['email']; $senha=$_POST['senha']; $sql = mysql_query("INSERT INTO usuarios(nome, email, senha) VALUES('$nome', '$email', '$senha')"); echo "<span id='txtopent'>(EB002) Cadastro efetuado com sucesso.</span>"; ?> Caso $nome existe vai da um erro caso não existe prosseguir com o cadastro Alguém? nos VALUES você tem que colocar as strings assim: '{$stringteste}' Ficaria assim no seu código: $sql = mysql_query("INSERT INTO usuarios(nome, email, senha) VALUES('{$nome}', '{$email}', '{$senha}')"); Depois o segundo passo , é verificar se o nome existe, na minha opinião seria melhor se você criasse username! Mas aqui vai o código: <?php $nome = $_POST['nome']; $email = $_POST['email']; $senha = $_POST['senha']; $verificanomeSQL = mysql_query("SELECT * FROM usuarios WHERE nome='$nome'"); $verificanome = mysql_num_rows($verificanomeSQL); $verificadbSQL = mysql_query("SELECT * FROM usuarios WHERE nome='$nome'"); $verificadb = mysql_num_rows($verificadbSQL); if(!$verificadbSQL) { die("Erro ao ler a query!"); }else { //Verificar Email if(!$verificamail == 0) { die("Email já registrado!"); }else { //Verificar Nome if($verificanome == 0) { $sql = mysql_query("INSERT INTO usuarios (nome, email, senha) VALUES('{$nome}', '{$email}', '{$senha}')"); if($sql) { echo "<span id='txtopent'>(EB002) Cadastro efetuado com sucesso.</span>"; }else { die("Erro"); } }else if(!$verificanome == 0) { die("Usuário com nome existente!"); }else { die("Erro"); } } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
First 1 Denunciar post Postado Junho 3, 2014 Bruno Pereira_175171 seu código deu certo porem tem um erro Notice: Undefined variable: verificamail in C:\wamp\www\tudo\login\cadastrando.php on line 34 LINHA 34 é isso if(!$verificamail == 0) { Conseguir assim <?php $nome=$_POST['nome']; $email=$_POST['email']; $senha=$_POST['senha']; $sql = mysql_query("SELECT * FROM usuarios WHERE nome='$nome' AND email='$email'"); if(mysql_num_rows($sql)>0){ echo "<span id='txterror'>(EA002) Usuário ou E-mail já cadastrado.</span>"; }else{ $sql = mysql_query("INSERT INTO usuarios(nome, email, senha) VALUES('{$nome}', '{$email}', '{$senha}')"); echo "<span id='txtopent'>(EB002) Cadastro efetuado com sucesso.</span>"; } ?> Por exemplo já está registrado no meu banco de dados nome: Jose email: jose@jose.com.br senha: 123 ai se eu colocar para registar desse jeito ai da erro mais se eu trocar o nome e deixar o mesmo email ele registra e assim vai como que eu faço oque eu quero? Compartilhar este post Link para o post Compartilhar em outros sites
Fernando C 128 Denunciar post Postado Junho 4, 2014 se eu trocar o nome e deixar o mesmo email ele registra se entendi bem, está correto.. observe c/ atenção a consulta ao banco de dados.. sugestão: se vc quer que o atendimento a apenas 1 condição já impeça o cadastro, pesquise sobre o operador OR. Compartilhar este post Link para o post Compartilhar em outros sites
First 1 Denunciar post Postado Junho 4, 2014 Não entendi, poderia me explicar mais? Eu quero um código que vai no meu banco de dados cadastro tabela usuarios e se existir um usuário já cadastro com tal nome da uma mensagem de erro e não registra mais e assim com o e-mail. Alguém me ajuda? Compartilhar este post Link para o post Compartilhar em outros sites
omor 5 Denunciar post Postado Junho 5, 2014 <?php$nome = $_POST["nome"];$sql = mysql_query("SELECT * FROM usuarios WHERE nome='$nome'");while($linha = mysql_fecth_array($sql)){ $nome_banco = $linha['nome'];} if($nome == $nome_banco){ echo 'Esse nome já está cadastrado no banco de dados'; }else{ //INSERT aqui } mas acho melhor você fazer pelo email pois o email é unico por pessoa, já nome pode ter muitos joãos ai o joão vai ter que inventar um nome pra cadastrar no seu sistema hehehehe pra fazer o que você quer tem que ser por email e não por nome?> Compartilhar este post Link para o post Compartilhar em outros sites
First 1 Denunciar post Postado Junho 5, 2014 <?php $nome = $_POST["nome"]; $sql = mysql_query("SELECT * FROM usuarios WHERE nome='$nome'"); while($linha = mysql_fecth_array($sql)){ $nome_banco = $linha['nome']; } if($nome == $nome_banco){ echo 'Esse nome já está cadastrado no banco de dados'; }else{ //INSERT aqui } mas acho melhor você fazer pelo email pois o email é unico por pessoa, já nome pode ter muitos joãos ai o joão vai ter que inventar um nome pra cadastrar no seu sistema hehehehe pra fazer o que você quer tem que ser por email e não por nome ?> Eu já conseguir obrigado... Compartilhar este post Link para o post Compartilhar em outros sites