PHP / Ajax – Verificar disponibilidade em tempo real

php ajax validar utilizador

No artigo de hoje trago-vos um script, em PHP e AJAX, muito utilizado pela maioria formulários na altura de nos registar-mos em algum website. O script baseia-se em testar, em tempo real, se o utilizador que estamos a introduzir já está em uso naquele momento.

Com este simples script utilizando PHP e Ajax faremos um funcional sistema de verificação da disponibilidade de um campo, neste caso será o utilizador (username).
O que pretendemos é usar os eventos do Ajax e proporcionar ao utilizador um sistema de verificação de disponibilidade em tempo real.

username check php

Existe N, formas de obeter o mesmo resultado, nós vamos usar o mínimo possível, de maneira a ser totalmente compatível e personalizável nós vossos sistemas.

HTML

Primeiro realizamos o formulario, no caso bem simples como podem ver, e adicionamos o este vai conter o icon.

<div id="form">
  <label for="utilizador">Utilizador:
  <input name="user" type="text" id="user" maxlength="15">
  <span id="resultado"></span>
  </label>
</div>

Nos vários eventos do jquery encontramos o .keyup(), ele ativa a função que quisermos sempre que uma tecla é pressionada. Então o resultado é a cada letra que o utilizar pressionar o PHP será ativado para realizamos a verificação, utilizaremos o método POST para esse efeito.

$("#user").keyup(function (e) {
   var user = $(this).val(); 
   $.post('validar.php', {'user':user}, function(data) {
   $("#resultado").html(data); 
   });
});

PHP

Na parte do PHP realizamos um script para validar. Realizamos a ligação a base de dados, realizamos a query e tratamos os dados retornados.

if(isset($ _POST["user"])){
    //ligção a BD
    $connecDB = mysqli _connect("servidor", "utilizador", "palavra-chave", "nome da tabela") or die('Impossível ligar a Base de Dados'); 

    //received username value from registration page
    $user =  $ _POST["user"]; 

    //faz a query a base de dados
    $results = mysqli _query($ connecDB , "SELEC T * FROM utilizadores WHERE nick='$user'");
    
    //contas os resultados
    $username_exist = mysqli _num_rows($results); 

    //caso nao exista nenhum utilizador com o mesmo nome retornara "0"
    //o php assume como sendo false
    if($username_exist) {
        die('<img src="imgs/not-available.png" />');
    }else{
        die('<img src="imgs/available.png" />');
    }
}

Por hoje é tudo, até uma próxima!

1 Comentário

  1. Marlysson diz:

    No post do php o name do post não seria “user” em vez de “username”?

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *