Hace poco comencé con ajax (jquery ya lo manejaba en lo basico y decidí aplicar la tecnica).
Les dejo el codigo abajo, el problema es que nunca me re direcciona a la pagina principal. Incluso si el usuario o contraseña están bien.
Luego de ingresar el usuario y contraseña correctamente me da error, me devuelve un 0 en vez de un 1. Pero si presiono F5 veo que la variable $_SESSION[logeado] esta correctamente cargada con el valor "tiene_permido".
Código:
No importa lo que haga siempre me termina apareciendo que el usuario y contraseña están mal. <!doctype html> <html lang="es"> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <?php session_start(); if(ISSET($_POST[puede_entrar2])) { session_start(); //==============================Tiene los datos de conexion========== include('Barra/conexion.php'); // Usuario y Contraseña enviados $nick=$_POST['nick']; $clave=$_POST['clave']; $nick = stripslashes($nick); $clave = stripslashes($clave); $nick = mysql_real_escape_string($nick); $clave = mysql_real_escape_string($clave); $sql="SELECT * FROM usuarios WHERE nick='$nick' and clave='$clave'"; $result=mysql_query($sql); // Cuenta los resultados de arriba $count=mysql_num_rows($result); ///////Busca los permisos que tiene el usuario if($count=='1') { $_SESSION['logeado']="tiene_permiso"; $_SESSION['nick']=$nick; //Register $myusername, $mypassword and redirect to file "login_success.php" session_register("nick"); session_register("clave"); //=================la idea es que en success devuelva este valor echo 1, } else { echo 0, } } //==============================Compruebo a mano si las variables se cargan, o si al menos llega a esta parte del IF //=========================Si presiono F5 luego de logearme aparece el valor "tiene_permiso" echo'<div id="resultado">'; echo "Variable:"; echo $_SESSION['logeado']; echo "<br>"; echo "Nombr:"; echo $_SESSION['nick']; echo'</div>'; ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Control - Inicio de sessión</title> <link rel="stylesheet" type="text/css" href="style.css"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> </head> <div class="ingreso" id="rewesultado"> <form name="accion" > <p>Inicio de sessíon</p> <input id="nick" name="nick" type="text" autofocus placeholder="Usuario" required title="Introduzca un monto"> <div id="escriba_nick">Por favor escriba su Nick</div> <br> <input id="clave" name="clave" type="password" placeholder="Contraseña" required> <div id="escriba_pass">Por favor escriba su contraseña</div> <br> <div id="error_ingreso">Usuario o Contraseña Incorrectos</div> <input name="accion" type="button" onclick="validar()" value="Ingresar" id="bt_ingresar"> </form> </div> <script type="text/javascript"> function validar(){ if ($('#nick').val()=="") { $("#escriba_nick").slideDown("slow").delay( 1800 ); $("#escriba_nick").slideUp("slow"); $("#nick").focus(); } else { if ($('#clave').val()=="") { $("#escriba_pass").slideDown("slow").delay( 1800 ); $("#escriba_pass").slideUp("slow"); $("#clave").focus(); } else { mandar(); } } } function mandar(){ var nick = $('#nick').val(); var clave = $('#clave').val(); var divResultado = document.getElementById('#mierda'); $.ajax({ url : "index.php", type : "POST", async : false, data :{nick:nick,clave:clave,puede_entrar2:1}, success : function (resp) { if (resp == 1) { window.location="home.php"; } else { $('#nick').val(""); $('#clave').val(""); $("#error_ingreso").slideDown("slow").delay( 3000 ); $("#error_ingreso").slideUp("slow"); $("#bt_ingresar").val("Ingresar"); } } }); } </script>
Alguna idea? Desde ya muchas gracias como siempre.