Zoação 2 Denunciar post Postado Junho 29, 2013 Que ao digitar o número de telefone em um campo ele automaticamente vá até o banco de dados pesquisar se existe ou não. Caso encontre vá para uma página e caso não encontre vá para uma outra página. É bem simples ... o motivo é que até agora não consegui configurar o que tenho ... (vejam meus outros posts a respeito ...) Obrigado desde já! Compartilhar este post Link para o post Compartilhar em outros sites
Micilini Roll 49 Denunciar post Postado Junho 29, 2013 Sim sei! pra isso voce irá necessitar usar o javascript,mas especificamente ultilizar jquery! voce conheçe uma destas linguagens?nao! de uma olhada neste link: http://pt.wikipedia.org/wiki/JavaScript ok,o que voce quer realmente fazer é o seguinte: 1-assim que o usuario digitar cada numero do telefone ou seja: digitou 1 depois 8 depois 3 depois 6 e tals o proprio programa pegue estes valores e verifique em tempo real se existe no banco de dados correto? eu tenho o comando que faz isso pra voce! no caso é necessario que voce filtre o input por jquery para que o proprio javascript pegue este valores e jogue no banco de dados e se existir ele mostra uma mensagem correto? voce deseja uma especie +/- disso daqui né: http://www.infotuts.com/demo/username-checker-password-indicator/ (no username insira o nome sanjeev e veja o que aconteçe!) pois bem o codigo que faz isso esta neste website aqui: http://www.infotuts.com/live-username-availability-checker-and-password-strength-indicator-with-jquery-and-ajax/ caso voce nao gostar ou achar muito dificil retorne para este forum,ou pesquise no google com a seguinte palavra chave: Checking username availability with ajax Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Junho 29, 2013 "Preciso de um código que faça isto (alguém teria?)". Tenho, está disposto a pagar quanto? o motivo é que até agora não consegui configurar o que tenho ... (vejam meus outros posts a respeito ...) Quer ajuda e eu ainda vou ter que correr atrás de posts sobre o assunto. :no: Fala sério. <_< Compartilhar este post Link para o post Compartilhar em outros sites
Luan Lima 4 Denunciar post Postado Junho 29, 2013 Javascript amigo, o bom e velho javascript.... Compartilhar este post Link para o post Compartilhar em outros sites
Zoação 2 Denunciar post Postado Junho 29, 2013 Veja só Micilini, é bem mais simples que este que disse ... afinal preciso apenas que : - Se localizar o que foi digitado em algum registro vá para a página 01.php - Se não localizar o que foi localização, vá para a página 02.php Somente isto, mas obrigado pela ajuda quanto ao outro sistema. Achei muito interessante sim. Se puder me ajudar, ficaria muito grato. Compartilhar este post Link para o post Compartilhar em outros sites
Micilini Roll 49 Denunciar post Postado Junho 29, 2013 ok vamos lá o que voce ja tem feito ai no codigo? poste ! Poste quais os campos e o nome da tabela do banco de dados! Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Junho 29, 2013 "Preciso de um código que faça isto (alguém teria?)". Tenho, está disposto a pagar quanto? Quer ajuda e eu ainda vou ter que correr atrás de posts sobre o assunto. :no: Fala sério. <_< ele ta de zoação so pode ¬¬' Compartilhar este post Link para o post Compartilhar em outros sites
srnalim 21 Denunciar post Postado Junho 29, 2013 jqueryui.com tem um auto complete lá agora só ir buscar e deixar de querer coisa pronta. (se bem que la ta pronto so vai integrar com o php fazendo a consulta) Compartilhar este post Link para o post Compartilhar em outros sites
Zoação 2 Denunciar post Postado Junho 29, 2013 Veja só Micilini, <?php include('config.php'); $telefone = $_post['telefone']; $sql = "SELECT * FROM user WHERE 'telefone' = '$telefone' "; $query = mysql_query($sql) or die (mysql_error()); $linha = mysql_fetch_assoc($query); $telefone_dup = $linha['telefone']; if($telefone_dup == ""){ echo " <script type='text/javascript' > alert('Número não cadastrado!'); window.location = 'iniciar-pedido.php'; </script>"; }else if($telefone != ""){ echo " <input type='hidden' value='".$telefone_dup."' id='".$telefone_dup."' /> <script type='text/javascript'> alert('Número já cadastrado!!'); window.location = 'continuar-pedido.php'; </script> "; } ?> Nome da tabela: "user" Campos: id login senha email activo nomecompleto endereco numero complemento bairro cidade uf datanascimento comonosconheceu cpf operador telefone ip date clock autorizo Obrigado desde já Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Junho 30, 2013 Hum... que código interessante... Verificar se o usuário enviou 'telefone' pelo método post? Desnecessário. Verificar se o input é válido ou é realmente um número? Desnecessário. Verificar se a consulta ao banco de dados foi realizada com sucesso? Desnecessário. Verificar se o banco de dados retorna algo? Desnecessário, parece que o MySQL retorna o campo vazio caso o registro não exista... Tudo vai dar certo! Compartilhar este post Link para o post Compartilhar em outros sites
Zoação 2 Denunciar post Postado Junho 30, 2013 Mangakah, Não compreendi Compartilhar este post Link para o post Compartilhar em outros sites
Enrico Pereira 299 Denunciar post Postado Junho 30, 2013 "Zoação", Ele ironizou... O problema é que a app está totalmente vulnerável pois você não valida nada. Compartilhar este post Link para o post Compartilhar em outros sites
Micilini Roll 49 Denunciar post Postado Junho 30, 2013 Olha zoação! Eu tinha um professor de desenho que sempre quando eu errava algo ele dizia: Pegue esta folha amasse pega uma nova e faça outro desenho,ou apague e faça outro!(mas como meu traço naquela epoca era muito grosso,borracha nao adiantava) Alguns anos se passaram e mudei de nivel! e na hora que eu iria começar um novo desenho e pagar uma outra folha ele disse: Não! nada de começar denovo! VAMOS CONCERTAR!! e é isso que te digo hoje! vamos concertar! ou seja envez de eu mandar vc estudar! irei te ajudar com aquilo que voce postou! Pois bem vamos lá: 1-A primeira validação que voce deverá fazer nesse seu codigo é verificar qual foi o metodo que iniciou-se! Como estes valores estão vindo de formularios ($_post['telefone']) isso quer dizer que se o usuario abiri este seu projeto do jeito que esta!, voce processa os dados assim mesmo né? entao vamos adicionar uma linha de comando: if($_SERVER['REQUEST_METHOD'] == 'POST'){ } este comando irá verificar se o metodo que foi solicitado foi por POST!...Ahhh mas como vou saber se é o metodo POST?? simples! no seu formulario esta +/- assim: <form action="" method="post"> //RESTANTE DOS CAMPOS E BOTOES </form> ali voce viu que esta escrito -> method="post",agora se estivesse escrito method="get",o comando acima iria ser: if($_SERVER['REQUEST_METHOD'] == 'GET'){ } Pronto! agora vem a segunda validação! que ira fazer: Verificar se a variavel telefone que veio por metodo POST existe,e tem valor: para isso iremos usar 2 comandos que sao: ISSET -> verifica se tal coisa existe empty -> Verifica se tal coisa esta vazia Iremos ultilizar o seguinte comando: if(isset($_POST['telefone']) && !empty($_POST['telefone'])){ } Voce viu que eu adicionei um !empty envez de empty! mas porque? Basta pensar: se empty verifica se a variavel esta vazia,entao se colocarmos '!' na frente quer dizer que o programa irá verificar se tal variavel nao esta vazia! (obs : caso nao tenha ideia sobre estes operadores logicos acesse: http://php.net/manual/pt_BR/language.operators.logical.php) Voltando: entao este comando faz a seguinte instrução: Se o metodo enviado for POST->prossegue->Se a variavel telefone existir e ter um valor diferente de 0(nulo)->prossegue Pois bem agora voce ja pode dar um include no banco de dados!,A segunda coisa que voce vai fazer é: Melhorar a segurança do seu banco de dados! Ja ouviu falar com conexoes usando PDO? nao acesse: http://www.diogomatheus.com.br/blog/php/trabalhando-com-pdo-no-php/ Recomendo ultilizar o PDO pois executa a conexao de uma forma segura,MAAAS espere a minha conexao nao é segura se ja tenho aqueles comandos que verificam se existe??? NÃO infelizmente nao!!! , MAS PORQUE? Ja ouviu falar sobre SQL INJECTION? nao? acesse: http://pt.wikipedia.org/wiki/Inje%C3%A7%C3%A3o_de_SQL Agora voce nao irá mais usar esse tipo de conexao com o banco de dados e sim usar PDO para facilitar sua vida vou deixar aqui uma conexao com o PDO (No projeto config.php voce irá apagar toda a linha de codigo e colocar esta:) try{ $ponte_db = new PDO ("mysql:host=localhost;dbname=NOME_BANCO_DE_DADOS", "NOME_USUARIO_BANCO_DE_DADOS", "SENHA_BANCO_DE_DADOS"); }catch ( PDOException $e ) { echo '<script>alert("Desculpe,mas os nossos servidores estao sendo reparados neste exato momento,tente em uma outra hora!");</script>'; } dai voce vai trocando os valores ali aonde esta escrito: NOME_BANCO_DE_DADOS SENHA_BANCO.. BLA BLA BLA Pelos valores originais! ou seja o nome do seu banco de dados a senha e tals: Pois bem agora voce irá verificar no banco de dados se o telefone existe ! so que dessa vez usando o pdo: $telefone = $_POST['telefone']; $validar_tel = $ponte_db->prepare("SELECT * FROM user WHERE telefone = :ccp"); // faz o select $validar_tel->bindValue(":ccp",$telefone);// blinda a variavel contra sql injection $validar_tel->execute(); // é necessario esta linha ela funciona como se fosse chave de ignição ela faz todo o processo funcionar(ligar,rodar...) Diferente nao!? mas pelo menos irá lhe dar uma certa segurança (caso nao tenha entendido nada sobre o codigo acima retorne ao topico) bom agora iremos adicionar um pequeno comando que irá retornar se tal valor existe ou nao! $existe_tel = $validar_tel->rowCount(); mas o que este comando faz? o comando rowcount Obtém o numero de linhas de um conjunto de resultados,e retorna numeros! exemplo: Existe 3 telefones -> rowcount() mostra 3 nao existe esse telefone -> rowcount() mostra 0 entende! somente esta linha de comando ira substituir estas suas: $linha = mysql_fetch_assoc($query); $telefone_dup = $linha['telefone']; Por isso que o mangakah falou! "E se o telefone nao existir ele pega no banco mesmo nao existindo!?!?" agora nos iremos verificar se tal telefone realmente existe ou nao! Ultilizando um if if($existe_tel > 0){ //Existe este telefone pois retornou maior que 0 e maior que 0 é 1,2,3,4..... }else{ //Menor que 0 nao existe este telefone } agora voce insere o restante do teu codigo! se for maior que 0 mostra o echo ! se nao for mostra outro! Entao podemos concluir que o seu codigo agora esta sendo representado desta maneira: CONFIG.PHP try{ $ponte_db = new PDO ("mysql:host=localhost;dbname=NOME_BANCO_DE_DADOS", "NOME_USUARIO_BANCO_DE_DADOS", "SENHA_BANCO_DE_DADOS"); }catch ( PDOException $e ) { echo '<script>alert("Desculpe,mas os nossos servidores estao sendo reparados neste exato momento,tente em uma outra hora!");</script>'; } PROJETO.PHP if($_SERVER['REQUEST_METHOD'] == 'POST'){ if(isset($_POST['telefone']) && !empty($_POST['telefone'])){ include('config.php'); $telefone = preg_replace("/[^a-z]/i", "",strtolower(mysql_real_escape_string($_POST['telefone']))); $validar_tel = $ponte_db->prepare("SELECT * FROM user WHERE telefone = :ccp"); $validar_tel->bindValue(":ccp",$telefone); $validar_tel->execute(); $existe_tel = $validar_tel->rowCount(); if($existe_tel > 0){ echo " <script type='text/javascript' > alert('Número não cadastrado!'); window.location = 'iniciar-pedido.php'; </script>"; }else{ echo " <input type='hidden' value='".$telefone_dup."' id='".$telefone_dup."' /> <script type='text/javascript'> alert('Número já cadastrado!!'); window.location = 'continuar-pedido.php'; </script> "; } } } este é o codigo! a unica coisa que nao expliquei ali foi a linha $telefone = preg_replace("/[^a-z]/i", "",strtolower(mysql_real_escape_string($_POST['telefone']))); que no caso "se voce leu sobre sql injection" este comando ira fazer: 1-Pegar o telefone alterar para caracteres minusculos e tirar qualquer tipo de caracteres especiais! caracteres especiais sao estes abaixo: !@@#$!@#%%%¨%¨(&*+_}?{^::²¹³£²²¢£¢¬¢º- caso nao desejar troque esta linha acima somente para: $telefone = $_POST['telefone']; OK primeiro passo resolvido! assim que entender isso tudo ou haver algum problema retorne ao topico! para continuarmos com a segunda parte Compartilhar este post Link para o post Compartilhar em outros sites
Zoação 2 Denunciar post Postado Junho 30, 2013 Micilini, Eu não sei pq, mas veja o que houve: 1. Inseri um número que existe 2. O código retornou que o mesmo não existe 3. Foram exibidas inúmeras msg de erro ... veja: <&php if($_SERVER['REQUEST_METHOD'] == 'POST'){ if(isset($_POST['telefone']) && !empty($_POST['telefone'])){ include('config.php'); $telefone = preg_replace("/[^a-z]/i", "",strtolower(mysql_real_escape_string($_POST['telefone']))); $validar_tel = $ponte_db->prepare("SELECT * FROM user WHERE telefone = :ccp"); $validar_tel->bindValue(":ccp",$telefone); $validar_tel->execute(); $existe_tel = $validar_tel->rowCount(); if($existe_tel > 0){ echo " Sempre exibe esta mensagem além do "box alert" dizendo que o número não foi encontrado. Obs.: mesmo exibindo esta mensagem... O mesmo é redirecionado para "iniciar-pedido.php", ou seja, exibe a imagem e vai para este link, veja: Obs.: teria como não exibir esta mensagem e ser redirecionado automaticamente? Obrigado desde já Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Junho 30, 2013 Lambuzeira, misturando PDO com mysql. Compartilhar este post Link para o post Compartilhar em outros sites
Micilini Roll 49 Denunciar post Postado Junho 30, 2013 como assim Rogerio? [zoação espere um pouco estou arrumando os comandos] Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Junho 30, 2013 como assim Rogerio? [zoação espere um pouco estou arrumando os comandos] A conexão com o banco é em PDO e o INSERT, mas o tratamento $telefone = preg_replace("/[^a-z]/i", "",strtolower(mysql_real_escape_string($_POST['telefone']))); com mysql Compartilhar este post Link para o post Compartilhar em outros sites
Micilini Roll 49 Denunciar post Postado Junho 30, 2013 ata por causa do mysql_real_escape_string né! isso no caso nao é necessario pois o PDO ja faz isso! obg agora poderei melhor ajudar o amigo! Compartilhar este post Link para o post Compartilhar em outros sites
Enrico Pereira 299 Denunciar post Postado Junho 30, 2013 E não é possível usar mysql_real_escape_string sem possuir uma conexão MySQL. O PDO só faz isso se você usar Prepared Statements. Compartilhar este post Link para o post Compartilhar em outros sites
Micilini Roll 49 Denunciar post Postado Julho 2, 2013 que mensagens de erro? apareçeu isso aqui na tela <&php if($_SERVER['REQUEST_METHOD'] == 'POST'){ if(isset($_POST['telefone']) && !empty($_POST['telefone'])){ include('config.php'); $telefone = preg_replace("/[^a-z]/i", "",strtolower(mysql_real_escape_string($_POST['telefone']))); $validar_tel = $ponte_db->prepare("SELECT * FROM user WHERE telefone = :ccp"); $validar_tel->bindValue(":ccp",$telefone); $validar_tel->execute(); $existe_tel = $validar_tel->rowCount(); if($existe_tel > 0){ echo " se for deve ser pq vc se esqueçeu de colocar o <?php e ?> pois no codigo acima esta <&php Compartilhar este post Link para o post Compartilhar em outros sites