Ir para conteúdo

Arquivado

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

Zoação

código que faça isto (alguém teria?)

Recommended Posts

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

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

"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

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

"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

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

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

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

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

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

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

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

×

Informação importante

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