Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/06/2015, 20:03
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Login con ajax no me funciona.

¿Por qué pones en la cabecera del formulario la línea onsubmit="return validar();" si ninguna de tus funciones devuelve un valor?

Hacerlo sin Ajax significa que simplemente no uses el método $.ajax ni la manera nativa de hacerlo. Solo usarías el formulario, tu función de validación y devolverías true o false si la validación fue exitosa o no.

La verdad, no entiendo por qué te complicas con algo tan sencillo. Un ejemplo simple con Ajax de algo similar a lo que pretendes hacer sería el siguiente:

Código HTML:
Ver original
  1. <form id = "login" method = "post" action = "procesar.php">
  2.     <label for = "usuario">Usuario:</label>
  3.     <input type = "text" name = "usuario" id = "usuario" required />
  4.  
  5.     <label for = "clave">Clave:</label>
  6.     <input type = "password" name = "clave" id = "clave" required />
  7.  
  8.     <input type = "submit" />
  9. </form>

Código Javascript:
Ver original
  1. $("#login").on("submit", function(event){
  2.     event.preventDefault();
  3.  
  4.     $.ajax({
  5.         url: $(this).prop("action"),
  6.         type: $(this).prop("method"),
  7.         data: $(this).serialize()
  8.     }).done(function(respuesta){
  9.         if (respuesta == "OK"){
  10.             $(location).prop("href", "principal.php");
  11.         }
  12.         else{
  13.             alert("Los datos ingresados no son correctos");
  14.         }
  15.     });
  16. });

Código PHP:
Ver original
  1.  
  2. $conexion = mysqli_connect('server', 'user', 'password', 'db_name');
  3.  
  4. if (!$conexion) exit('No se pudo conectar');
  5.  
  6. $usuario = mysqli_real_escape_string(strip_tags($_POST['usuario']);
  7. $clave= mysqli_real_escape_string(strip_tags($_POST['clave']);
  8. $consulta = "SELECT * FROM usuarios WHERE usuario = '$usuario' AND clave = '$clave'";
  9. $resultados = mysqli_query($conexion, $consulta) or exit('No se pudo realizar la consulta');
  10.  
  11. if (mysqli_num_rows($resultados)){
  12.     $_SESSION['identificado'] = true;
  13.     $_SESSION['usuario'] = $usuario;
  14.     echo 'OK';
  15. }
  16. else{
  17.     $_SESSION['identificado'] = false;
  18.     echo 'ERROR';
  19. }
  20.  
  21. mysqli_close($conexion);

Y en principal.php:
Código PHP:
Ver original
  1.  
  2. if ($_SESSION['identificado']){
  3.     //Muestras el contenido
  4. }

Toma este sencillo ejemplo como una guía para que hagas lo que necesitas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 10/06/2015 a las 20:31 Razón: Olvidé la "session"