Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2015, 11:55
dglypho
 
Fecha de Ingreso: noviembre-2014
Mensajes: 27
Antigüedad: 9 años, 4 meses
Puntos: 0
Comprobar si un usuario existe en una base de datos y si no registrarlo

Hola estoy creando una aplicación para clase en la que tengo que simular el acceso a una serie de cursos en el que los usuarios entren solo si están registrados. Para ello tengo la siguiente función JavaScript que crea los input para introducir los datos de los usuarios

Código Javascript:
Ver original
  1. function inscripcion(){
  2.     var cursos=document.getElementById("cursos");
  3.     var div=document.createElement("div");
  4.     div.setAttribute("id","divInscripcion");
  5.     var salto=document.createElement("br");
  6.     var nombre=document.createElement("p");
  7.     nombre.innerHTML="Nombre";
  8.     div.appendChild(nombre);
  9.     var inputUser=document.createElement("input");
  10.     inputUser.setAttribute("type","text");
  11.     inputUser.setAttribute("id","inputUser");
  12.     div.appendChild(inputUser);
  13.     var dni=document.createElement("p");
  14.     dni.innerHTML="DNI";
  15.     div.appendChild(dni);
  16.     var inputDni=document.createElement("input");
  17.     inputDni.setAttribute("type","text");
  18.     inputDni.setAttribute("id","inputDni");
  19.     div.appendChild(inputDni);
  20.     div.appendChild(salto);
  21.     var boton=document.createElement("button");
  22.     boton.addEventListener('click',comprobarUsuario,true);
  23.     boton.innerHTML="Comprobar Usuario";
  24.     div.appendChild(salto);
  25.     div.appendChild(boton);
  26.     cursos.appendChild(div);
  27. }

Una vez creados los input y haber pulsado el boton nos redirige a la siguiente funcion:

Código Javascript:
Ver original
  1. function comprobarUsuario(){
  2.     var usuario=document.getElementById("inputUser").value;
  3.     var dni=document.getElementById("inputDni").value;
  4.     oAjax.open('GET','php/comprobarUsuario.php?NOMBRE='+usuario+'&DNI='+dni,true);
  5.     oAjax.send();
  6.     oAjax.onreadystatechange=respuestaComprobarUsuario;
  7. }

Esta funcion llama al siguiente script PHP que busca el nombre del usuario y su dni para saber si estan registrados en la base de datos:

Código PHP:
Ver original
  1. <?php
  2. $nombre=$_GET['NOMBRE'];
  3. $dni=$_GET['DNI'];
  4. $conexion=  mysqli_connect("localhost", "root", "root");
  5. mysqli_select_db($conexion,"academia");
  6. $sql=  mysqli_query($conexion, "SELECT * FROM usuarios WHERE NOMBRE='$nombre' AND DNI='$dni'");
  7. $datos=  mysqli_fetch_object($sql);
  8. echo json_encode($datos);

Una vez leido el script PHP obtengo la respuesta del servidor y la uso en las siguientes dos funciones

Código Javascript:
Ver original
  1. function respuestaComprobarUsuario(){
  2.     if(oAjax.readyState==4 && oAjax.status==200){
  3.         alert(oAjax.responseText);
  4.         var miArray=oAjax.responseText;
  5.         acceso(miArray);
  6.     }
  7. }
  8.  
  9. function acceso(miArray){
  10.     var array_datos=JSON.parse(miArray);
  11.     var usuario=document.getElementById("inputUser").value;
  12.     var dni=document.getElementById("inputDni").value;
  13.     if(usuario==array_datos.NOMBRE && dni==array_datos.DNI){
  14.         alert("Usuario ya registrado");
  15.     }
  16.     else{
  17.         alert("El usuario no esta registrado");
  18.     }
  19. }

En la primera funcion almaceno el resultado de la consulta y en la segunda intento que si la consulta devuelve un valor me ponga que el usuario ya esta registrado y si no que ponga lo contrario.

De momento solo quiero comprobar que me ejecute esos dos alert que por cierto no lo hace y si lo consigo lo que quiero hacer es que si el usuario no esta registrado me de la opcion de poder registrarlo.

Muchas gracias por la ayuda.