Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Não repetir Login


DaniMant

Pergunta

Eae pessoal tudo beleza... vejam só estou fazendo um formulário de cadastro, e na hora de se cadastrar o usuário não poderá repetir um login já cadastrado no banco de dados, deverá retornar uma mensagem informando que o login já existe.

Agradeço desde já a ajuda.

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

DaniMant,

Uma maneira simples de se fazer é:

Supondo que o campo em html seja login (nome="login" do input text), no arquivo do action (pra onde o form será enviado) você pode utilizar a seguinte idéia:

<?php
         //...
         // Sua conexão com banco de dados aqui
         //...

         $login = $_POST['login']; //Supondo method=post do form
         
         //Seleciona um campoLogin da tabela usuario na qual o login seja igual a informada
         $sql = "SELECT campoLogin FROM usuario WHERE campoLogin = '$login' LIMIT 1";

         //Executa o sql e colhe o resultado para $res
         $res = mysql_query($sql);

         //Se ao pegar a linha de dados atual for nulo, então login não existe ,senaum já existe
         if ($dados = mysql_fetch_assoc("$res"))
         {
                 //O Login já existe
                 echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";
         }else{
                 //O Login não existe
                  $sql = "INSERT INTO usuario (campoLogin) VALUES ('$login')";

                 //Executa o sql inserindo o login em usuario
                 if (mysql_query($sql))
                 {
                         echo "<p style='color:blue'> Login cadastrado com êxito!</p>";
                 }else{
                         echo "<p style='color:red'> Um erro ocorreu ao tentar cadastra o login!</p>";
                 }
                    
         }
?>

Att

Editado por M@RcOs pS09
Link para o comentário
Compartilhar em outros sites

  • 0

DaniMant,

Um exemplo de conexão:

<?php
        $link = mysql_connect('localhost', 'usuario', 'senha');
        if (!$link) {
              die('Erro ao conectar! ');
        }
        mysql_select_db("NomeDoBancoDeDados",$link);
?>

Att

Editado por M@RcOs pS09
Link para o comentário
Compartilhar em outros sites

  • 0

Meu amigo não de certo... to errando em algum lugar... olha só vou enviar todo código para você dar uma olhada... valeu pele ajuda.

<?php require_once('Connections/ConnMinhaPizzaria.php'); ?>

<?php

$nome = $_POST['nome'];

$tel = $_POST['tel'];

$cel = $_POST['cel'];

$cpf = $_POST['cpf'];

$rg = $_POST['rg'];

$nasc = $_POST['nasc'];

$cep = $_POST['cep'];

$end = $_POST['end'];

$comp = $_POST['comp'];

$bairro = $_POST['bairro'];

$cid = $_POST['cid'];

$est = $_POST['est'];

$refer = $_POST['refer'];

$email = $_POST['email'];

$login = $_POST['login'];

$senha = $_POST['senha'];

$data = $_POST['data'];

mysql_select_db($database_ConnMinhaPizzaria, $ConnMinhaPizzaria);

$sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";

$res = mysql_query($sql);

if ($dados = mysql_fetch_assoc("$")) {

echo "Esse Login já existe em nossa base de dados, por favor, escolha outro.";

} else {

mysql_select_db($database_ConnMinhaPizzaria, $ConnMinhaPizzaria);

$query_cadastro = "INSERT INTO pizza.cadcliente (id ,nome ,tel ,cel ,cpf ,rg ,nasc ,cep ,end ,comp ,bairro ,cid ,est ,refer ,email ,login ,senha ,data )VALUES (NULL , '$nome', '$tel', '$cel', '$cpf', '$rg', (STR_TO_DATE('$nasc', '%d/%m/%Y')), '$cep', '$end', '$comp', '$bairro', '$cid', '$est', '$refer', '$email', '$login', '$senha', '$data');";

mysql_query($query_cadastro, $ConnMinhaPizzaria) or die(mysql_error());

header("location:pedido.php?enviado=sim");

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Marcos estou errando em algum lugar, me ajude por favor.... Valeu

<?php require_once('Connections/ConnMinhaPizzaria.php'); ?>

<?php

$nome = $_POST['nome'];

$tel = $_POST['tel'];

$cel = $_POST['cel'];

$cpf = $_POST['cpf'];

$rg = $_POST['rg'];

$nasc = $_POST['nasc'];

$cep = $_POST['cep'];

$end = $_POST['end'];

$comp = $_POST['comp'];

$bairro = $_POST['bairro'];

$cid = $_POST['cid'];

$est = $_POST['est'];

$refer = $_POST['refer'];

$email = $_POST['email'];

$login = $_POST['login'];

$senha = $_POST['senha'];

$data = $_POST['data'];

mysql_select_db($database_ConnMinhaPizzaria, $ConnMinhaPizzaria);

$sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";

$res = mysql_query($sql);

if ($dados = mysql_fetch_assoc("$res")) {

echo "Esse Login já existe em nossa base de dados, por favor, escolha outro.";

} else {

mysql_select_db($database_ConnMinhaPizzaria, $ConnMinhaPizzaria);

$query_cadastro = "INSERT INTO pizza.cadcliente (id ,nome ,tel ,cel ,cpf ,rg ,nasc ,cep ,end ,comp ,bairro ,cid ,est ,refer ,email ,login ,senha ,data )VALUES (NULL , '$nome', '$tel', '$cel', '$cpf', '$rg', (STR_TO_DATE('$nasc', '%d/%m/%Y')), '$cep', '$end', '$comp', '$bairro', '$cid', '$est', '$refer', '$email', '$login', '$senha', '$data');";

mysql_query($query_cadastro, $ConnMinhaPizzaria) or die(mysql_error());

header("location:pedido.php?enviado=sim");

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Meu amigo não deu certo ainda... ele passa direto para a header informada e cadastra normalmente o usuário duplicado.

Será que tem idéia o que esta acontecendo caso o codigo esteja correto?

Obrigado pela ajuda,

<?php require_once('Connections/ConnMinhaPizzaria.php'); ?>
<?php


$nome = $_POST['nome'];
$tel = $_POST['tel'];
$cel = $_POST['cel'];
$cpf = $_POST['cpf'];
$rg = $_POST['rg'];
$nasc = $_POST['nasc'];
$cep = $_POST['cep'];
$end = $_POST['end'];
$comp = $_POST['comp'];
$bairro = $_POST['bairro'];
$cid = $_POST['cid'];
$est = $_POST['est'];
$refer = $_POST['refer'];
$email = $_POST['email'];
$login = $_POST['login'];
$senha = $_POST['senha'];
$data = $_POST['data'];

mysql_select_db($database_ConnMinhaPizzaria, $ConnMinhaPizzaria);
$sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";
$res = mysql_query($sql);

echo "<p style='color:green'>".mysql_error()."</p>";

if ($dados = mysql_fetch_assoc("$res")) {
echo "Esse Login já existe em nossa base de dados, por favor, escolha outro.";
} else {

mysql_select_db($database_ConnMinhaPizzaria, $ConnMinhaPizzaria);
$query_cadastro = "INSERT INTO pizza.cadcliente (id ,nome ,tel ,cel ,cpf ,rg ,nasc ,cep ,end ,comp ,bairro ,cid ,est ,refer ,email ,login ,senha ,data )VALUES (NULL , '$nome', '$tel', '$cel', '$cpf', '$rg', (STR_TO_DATE('$nasc', '%d/%m/%')), '$cep', '$end', '$comp', '$bairro', '$cid', '$est', '$refer', '$email', '$login', '$senha', '$data');";
mysql_query($query_cadastro, $ConnMinhaPizzaria) or die(mysql_error());

header("location:pedido.php?enviado=sim");
} 
?>

Link para o comentário
Compartilhar em outros sites

  • 0

DaniMat,

Código corrigido:

//...
         // Sua conexão com banco de dados aqui
         //...

         $login = $_POST['login']; //Supondo method=post do form
        
         //Seleciona um campoLogin da tabela usuario na qual o login seja igual a informada
         $sql = "SELECT campoLogin FROM usuario WHERE campoLogin = '$login' LIMIT 1";

         //Executa o sql e colhe o resultado para $res
         $res = mysql_query($sql);

         //Se ao pegar a linha de dados atual for nulo, então login não existe ,senaum já existe
         if ($dados = mysql_fetch_assoc($res))
         {
                 //O Login já existe
                 echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";
         }else{
                 //O Login não existe
                  $sql = "INSERT INTO usuario (campoLogin) VALUES ('$login')";

                 //Executa o sql inserindo o login em usuario
                 if (mysql_query($sql))
                 {
                         echo "<p style='color:blue'> Login cadastrado com êxito!</p>";
                 }else{
                         echo "<p style='color:red'> Um erro ocorreu ao tentar cadastra o login!</p>";
                 }
                    
         }

Att

Editado por M@RcOs pS09
Link para o comentário
Compartilhar em outros sites

  • 0
O nome da tabela e dos campos estão corretos?

Olha acho que não esta nada errado, da uma olhada no codigo por favor.

<?php require_once('Connections/ConnMinhaPizzaria.php'); 

$nome = $_POST['nome'];
$tel = $_POST['tel'];
$cel = $_POST['cel'];
$cpf = $_POST['cpf'];
$rg = $_POST['rg'];
$nasc = $_POST['nasc'];
$cep = $_POST['cep'];
$end = $_POST['end'];
$comp = $_POST['comp'];
$bairro = $_POST['bairro'];
$cid = $_POST['cid'];
$est = $_POST['est'];
$refer = $_POST['refer'];
$email = $_POST['email'];
$login = $_POST['login'];
$senha = $_POST['senha'];
$data = $_POST['data'];

mysql_select_db($database_ConnMinhaPizzaria, $ConnMinhaPizzaria);
$sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";
$res = mysql_query($sql);

if ($dados = mysql_fetch_assoc("$res")) {
echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";

} else {

if (mysql_query($sql))
                 {

mysql_select_db($database_ConnMinhaPizzaria, $ConnMinhaPizzaria);
$query_cadastro = "INSERT INTO pizza.cadcliente (id ,nome ,tel ,cel ,cpf ,rg ,nasc ,cep ,end ,comp ,bairro ,cid ,est ,refer ,email ,login ,senha ,data )VALUES (NULL , '$nome', '$tel', '$cel', '$cpf', '$rg', (STR_TO_DATE('$nasc', '%d/%m/%Y')), '$cep', '$end', '$comp', '$bairro', '$cid', '$est', '$refer', '$email', '$login', '$senha', '$data');";
mysql_query($query_cadastro, $ConnMinhaPizzaria) or die(mysql_error());

}}
?>

Editado por *FIT*
Adicionar a tag [code]! *FIT*
Link para o comentário
Compartilhar em outros sites

  • 0
Bom, vamos ver se entendi, pelo que vi nesse código, ele deve estar cadastrando mesmo que o login já exista, correto?

Não a idéia é não cadastrar se o Login for repetido, retorna a mensagem informando ao cliente para cadastrar outro Login.

Desculpe... isso mesmo, ele passa direto e cadastra mesmo se estiver repetindo.

Link para o comentário
Compartilhar em outros sites

  • 0

Faça um teste, troque:

$sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";
$res = mysql_query($sql);

if ($dados = mysql_fetch_assoc("$res")) {
echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";
por:
$sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";
$res = mysql_query($sql);
$rows = mysql_num_rows($res);

if ($rows > 0) {
echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";

Link para o comentário
Compartilhar em outros sites

  • 0
Faça um teste, troque:

$sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";
$res = mysql_query($sql);

if ($dados = mysql_fetch_assoc("$res")) {
echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";
por:
$sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1";
$res = mysql_query($sql);
$rows = mysql_num_rows($res);

if ($rows > 0) {
echo "<p style='color:red'> Esse login já está cadastrado. Por favor, informe outro!</p>";

Opa deu certo ... que bom, muito obrigado FIT, valeu também Marcos pela atenção dada, precisando de mais alguma coisa eu posto aqui, o site que estou desenvolvendo tem varias funções que nunca fiz, estou conseguindo fazer algumas, outras tenho mais dificuldades, qualquer coisa eu pergunto novamente... valeu mesmo!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...