Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/06/2015, 18:27
kapi2454
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Login con ajax no me funciona.

Gracias de nuevo por la super rápida respuesta.

Hice los ajustes que me pediste y detallo lo siguiente.
Si escribo user y pass no me funciona, pero si carga la variable "logueado", es decir que ajax funciona, ya que manda el usuario ,contraseña y la variable tiene_permiso. busca dentro de index_chequeo.php los datos y los confirma. Y si vuelvo a ingresar el mismo usuario y contraseña entro a la pagina.
En conclusión funciona ingresando dos veces el user y pass.
Pero si los escribo mal de primera, no me sale el cartel de error.
Hay un tema con el echo "true"; es como que la funcion success no funciona de primera, solo de segunda. imprime otra cosa que true, como por ejemplo false no le da bola al if(resp=="true")..

index.php
Código HTML:
Ver original
  1. <?php
  2. session_start();
  3. ?>
  4. <!doctype html>
  5. <html lang="es">
  6.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7.     <title>Control - Inicio de sessión</title>
  8.     <link rel="stylesheet" type="text/css" href="style.css">
  9.     <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  10.     <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
  11.     <script src="/control/index.js"></script>
  12. </head>
  13.    
  14. <body> 
  15.     <div class="ingreso" id="resultado" >
  16.         <form id="form_ingreso" onsubmit="return validar();" method="POST">
  17.             <p>Inicio de sessíon</p>
  18.             <input id="nick" name="nick" type="text" autofocus  placeholder="Usuario" required title="Introduzca un monto">
  19.             <div id="escriba_nick">Por favor escriba su Nick</div>
  20.             <br>
  21.             <input id="clave" name="clave" type="password" placeholder="Contrase&ntilde;a" required>
  22.             <div id="escriba_pass">Por favor escriba su contraseña</div>
  23.             <br>
  24.             <div id="error_ingreso">Usuario o Contraseña Incorrectos</div>
  25.             <input type="submit" value="Ingresar" id="bt_ingresar">
  26.         </form>
  27.     </div>
  28.  
  29. </body>
  30. </html>
  31.  
  32. <?php
  33. echo "Variable:";
  34. echo $_SESSION['logeado'];
  35. ?>

indes.js
Código Javascript:
Ver original
  1. function validar(){
  2.         //event.preventDefault();
  3.         if ($('#nick').val()=="")
  4.             {
  5.                 $("#escriba_nick").slideDown("slow").delay( 1800 );
  6.                 $("#escriba_nick").slideUp("slow");
  7.                 $("#nick").focus();
  8.             }
  9.             else
  10.             {
  11.             if ($('#clave').val()=="")
  12.                 {
  13.                     $("#escriba_pass").slideDown("slow").delay( 1800 );
  14.                     $("#escriba_pass").slideUp("slow");
  15.                     $("#clave").focus();
  16.                 }
  17.                 else
  18.                 {
  19.                     mandar();
  20.                 }
  21.             }
  22.         }
  23.  
  24. function mandar(){
  25.        
  26.         var nick       = $('#nick').val();
  27.         var clave      = $('#clave').val();
  28.         var divResultado = document.getElementById('#resultado');
  29.        
  30.          $.ajax({
  31.            url      :   "index_chequeo.php",
  32.            type     :   "POST",
  33.            data     :{nick:nick,clave:clave,puede_entrar:1},
  34.            success  : function(resp)
  35.                                         {
  36.                                             if (resp=='true')
  37.                                             {  
  38.                                                 $("#resultado").slideUp("fast");
  39.                                                 window.location="Principal.php";
  40.                                             }
  41.                                             else
  42.                                             {
  43.                                                 $('#nick').val("");
  44.                                                 $('#clave').val("");
  45.                                                 $("#error_ingreso").slideDown("slow").delay( 3000 );  
  46.                                                 $("#error_ingreso").slideUp("slow");
  47.                                                 $("#bt_ingresar").val("Ingresar");
  48.                                             }
  49.                                         }
  50.            
  51.        });
  52. }

index_chequeo.php
Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['puede_entrar'])){
  3. include('Barra/conexion.php');
  4.  
  5. // Usuario y Contraseña enviados
  6. $nick=$_POST['nick'];
  7. $clave=$_POST['clave'];
  8.    
  9. // To protect MySQL injection (more detail about MySQL injection)
  10. $nick = stripslashes($nick);
  11. $clave = stripslashes($clave);
  12. $nick = mysql_real_escape_string($nick);
  13. $clave = mysql_real_escape_string($clave);
  14.  
  15. $sql="SELECT * FROM usuarios WHERE nick='$nick' and clave='$clave'";
  16. $result=mysql_query($sql);
  17.  
  18. // Cuenta los resultados de arriba
  19. $count=mysql_num_rows($result);
  20.  
  21. ///////Busca los permisos que tiene el usuario
  22.  
  23.  
  24. // If result matched $myusername and $mypassword, table row must be 1 row
  25. if($count==1)
  26. {
  27. $_SESSION['logeado']="sip";
  28. $_SESSION['nick']=$nick;
  29.  
  30. //Register $myusername, $mypassword and redirect to file "login_success.php"
  31.  
  32. echo 'true';
  33.  
  34. }
  35. else
  36. {
  37. echo 'false';
  38. }
  39. }
  40. ?>

Como puedo hacerlo sin ajax? Antes lo tenia en php y html5, funcionaba bien, pero con el afan de aplicar ajax se me ocurrió empezar una nueva pagina desde cero y aplicando todo lo que aprendí.

Gracias de nuevo