DaniMant Postado Julho 17, 2010 Denunciar Share Postado Julho 17, 2010 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@RcOs pS09 Postado Julho 17, 2010 Denunciar Share Postado Julho 17, 2010 (editado) 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 Julho 17, 2010 por M@RcOs pS09 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@RcOs pS09 Postado Julho 17, 2010 Denunciar Share Postado Julho 17, 2010 (editado) 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 Julho 17, 2010 por M@RcOs pS09 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 17, 2010 Autor Denunciar Share Postado Julho 17, 2010 Humm acho que entendi... vou fazer agora para ver o resultado....Já já respondo para ver se deu certo... valeu amigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 17, 2010 Autor Denunciar Share Postado Julho 17, 2010 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");} ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 17, 2010 Autor Denunciar Share Postado Julho 17, 2010 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");} ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@RcOs pS09 Postado Julho 17, 2010 Denunciar Share Postado Julho 17, 2010 DaniMat,Cola o código:echo "<p style='color:green'>".mysql_error()."</p>"; abaixo do código: ... $sql = "SELECT login FROM cadcliente WHERE login = '$login' LIMIT 1"; $res = mysql_query($sql); ...E depois posta o que foi impresso em verde!Aguardando resposta...Att Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 18, 2010 Autor Denunciar Share Postado Julho 18, 2010 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"); } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@RcOs pS09 Postado Julho 18, 2010 Denunciar Share Postado Julho 18, 2010 (editado) 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 Julho 18, 2010 por M@RcOs pS09 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 18, 2010 Autor Denunciar Share Postado Julho 18, 2010 Então deu esse erro:Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in G:\wamp\www\pizzaria\envia-cadastro.php on line 27Aguardo, Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 M@RcOs pS09 Postado Julho 18, 2010 Denunciar Share Postado Julho 18, 2010 DaniMant,Corrigi o código!Att Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 19, 2010 Autor Denunciar Share Postado Julho 19, 2010 Amigo não deu certo... Coloquei também em outros foruns vamos ver se a gente descobre o que acontece. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 *FIT* Postado Julho 19, 2010 Denunciar Share Postado Julho 19, 2010 O nome da tabela e dos campos estão corretos? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 19, 2010 Autor Denunciar Share Postado Julho 19, 2010 (editado) 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 Julho 29, 2010 por *FIT* Adicionar a tag [code]! *FIT* Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 *FIT* Postado Julho 19, 2010 Denunciar Share Postado Julho 19, 2010 Bom, vamos ver se entendi, pelo que vi nesse código, ele deve estar cadastrando mesmo que o login já exista, correto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 19, 2010 Autor Denunciar Share Postado Julho 19, 2010 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 *FIT* Postado Julho 19, 2010 Denunciar Share Postado Julho 19, 2010 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>"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 DaniMant Postado Julho 19, 2010 Autor Denunciar Share Postado Julho 19, 2010 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
DaniMant
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
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.