Verificar disponibilidad de un nombre de usuario con PHP, jQuery y MySql

Stay hungry, stay foolish

Steve Jobs

Que tal, en esta ocasión vamos a ver como crear un script que nos permita verificar si un nombre de usuario esta disponible, similar a el que nos aparece cuando nos registramos en google, hotmail o cualquier otro servicio en internet, que nos pide un nombre de usuario y verifica si esta disponible antes de pasar al siguiente paso. ¿Que vamos a utilizar? bueno lo vamos a crear con PHP, jQuery y MySQL.

Comenzamos con el codigo HTML del formulario de registro, solo voy a colocar dos cajas de texto para la demostracion, no voy a crear el formulario completo.

<form id="frmRegistro">
    <label> Nick: </label>
    <input type="text" id="nick" name="nick"/><div id="msgUsuario"></div>
    <label> Nombre: </label> <input type="text" id="nombre" name="nombre"/>
</form>

Una vez que ya creamos el formulario HTML, el siguiente paso será crear el codigo jQuery para verificar la disponibilidad del nombre de usuario. Para ello vamos a utilizar el evento focusout de la caja de texto nick, la petición se hará mediante ajax y lo que vamos a enviar solamente es el nick para verificar si ya existe en nuestra base de datos.  Antes de que la petición sea enviada al servidor se coloca una imagen y el texto verificando al lado de la caja de texto del nick para que el usuario sepa que se esta realizando una acción. Al final dependiendo de la respuesta del servidor se escribirá Disponible o no disponible.

$('#nick').focusout( function(){
    if($('#nick').val()!= ""){
        $.ajax({
            type: "POST",
            url: "validar.php",
            data: "nick="+$('#nick').val(),
            beforeSend: function(){
              $('#msgUsuario').html('<img src="loader.gif"/> verificando');
            },
            success: function( respuesta ){
              if(respuesta == '1')
                $('#msgUsuario').html("Disponible");
              else
                $('#msgUsuario').html("No Disponible");
            }
        });
    }
});

Por ultimo el codigo php es el siguiente: se realiza la conexion con la base de datos, se almacena en una variable el nick que se va a verificar, se realiza la consulta y dependiendo del resultado se devuelve 0 cuando el nombre de usuario ya existe y 1 cuando esta disponible.

<?php
    $conexion= new mysqli('servidor','usuario','contrasenia','baseDatos');
    $nick = $_POST["nick"];
    $consulta = "select nick from usuario where nick = '$nick";
    $result = $conexion->query($consulta);

    if( $result->num_rows > 0)
        echo 0;
    else
        echo 1;
?>

Eso es todo espero que les ayude, no olviden comentar.