Ir para conteúdo

POWERED BY:

Arquivado

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

First

Verificar se usuário já existe no banco de dados

Recommended Posts

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

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

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

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

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

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
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

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

<?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

<?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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.