Hola, estoy haciendo un formulario con el que iniciar sesión sin tener que recargar la pagina ya que es una molestia. Utilizando PHP Javascript etc..
Este es mi problema.
En una de las paginas de mi web tengo este formulario:
<div id="login">Entra
<form id="iniciar-sesion" method="post" onkeypress="if (event.keyCode == 13) iniciarSesion()">
<input type="text" id="usuario" name="usuario" placeholder="Usuario o email"/><br />
<input type="password" id="password" name="password" placeholder="Contraseña"/><br />
<input type="hidden" name="ruta-relativa" value="<?php echo $_SESSION['rutaRelativa']; ?>" />
<input type="button" id="iniciarsesionlyrics" onclick="iniciarSesion()" value="Iniciar sesión" />
</form></div>
<!--A PARTIR DE AQUI LOS DATOS DEL USUARIO UNA VEZ HAYA INICIADO SESION-->
<div id="salir" style="display:none"><a href="php/salir.php">Exit</div>
<div id="user" style="display:none"><a href="#"><?php echo $_SESSION['loguser']; ?></a></div>
Que llama a este script
function iniciarSesion(){
if(validaLogin()){ // Primero validará el formulario.
$.post(ruta+"pluggins/menus/login/iniciar-sesion.php",$("#iniciar-sesion").serialize(),function(res){
$("#registro").fadeOut("slow"); // Hacemos desaparecer el div "formulario" con un efecto fadeOut lento.
$("#login").fadeOut("slow");
if(res == 1){
$("#exitoLog").delay(500).fadeIn("slow"); // Si hemos tenido éxito, hacemos aparecer el div "exito" con un efecto fadeIn lento.
$("#salir").delay(500).fadeIn("slow");
$("#user").delay(500).fadeIn("slow");
alert('mostrar');
} else {
$("#registro").delay(500).fadeIn("slow");
$("#login").delay(500).fadeIn("slow"); // Si no, lo mismo, pero haremos aparecer el div "fracaso"
alert('sd');
}
});
}
}//);
Hasta aqui todo bien, al iniciar sesion correctamente el archivo PHP al que llama jQuery me devulve un 1 y por lo cual oculta las capas de iniciar sesion para mostrar las capas salir y user, indicando que la sesion se ha iniciado, el problema es que en la capa user:
<?php echo $_SESSION['loguser']; ?>
El nombre del usuario que esta almacenado en la variable de sesion no se muestra, ya que esta capa se habia cargado antes de iniciar la sesion aunque estaba oculta, lo unico que he hecho es mostrarla, y tiene el fallo de no encontrar esta variable.
Lo que necesito es que al iniciar sesion se cargue la capa en el servidor utilizando la variable que acabamos de crear al iniciar sesion y no que se muestre la capa que ya se habia creado antes de iniciarla y por lo tanto tiene un fallo.
No se si me he expicado, espero que si. Gracias por vuestras respuestas.