Yo tengo un login que compruebo por javascript con ajax si esta correcto y si esta correcto me carga el perfil en el html que le digo, el problemas viene con las sessiones de php que cuando valido y muestra el perfil tengo que darle actualizar para que me muestre el nombre de usuario de la session.
Pongo el codigo html, php y javascript, para que se entienda:
con esto cargo el login.php y crea las sessiones
Código PHP:
$(document).ready(function(){
$("#registrarse").click(function(){
window.location="formulario.php";
});
$("#login").live("click",function(){
user=$("#user").val();
pass=$("#pass").val();
$.ajax({
type: "POST",
url: "login.php",
//cache: false,
data: "user="+user+"&pass="+pass,
success: function(html){
if(html=='true')
{
$("#profile").show();
}
else
{
$("#add_err").html("Nombre de Usuario o Contraseña Incorrecto");
}
},
beforeSend:function()
{
$("#add_err").html("<img src='images/loading.gif'/>");
}
});
return false;
});
});
Código PHP:
include('conectar.php');
$clave= substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,-1);//6 o -1
$username = seguridadLimpiar($_REQUEST['user']);
$password = seguridadLimpiar($_REQUEST['pass']);
echo $username;die();
$password = md5($password);
$query = "SELECT * FROM users WHERE user='{$username}' AND pass='{$password}'";
$result = mysql_query($query)or die(mysql_error()."<br>".$query);
$contar = mysql_num_rows($result);
$row=mysql_fetch_array($result);
if($contar) {
echo 'true';
session_start();
$_SESSION['user']=$row['user'];
$_SESSION['id']=$row['id'];
$_SESSION['clave']=$clave;
}
else{
echo 'false';
}
Código PHP:
<div id="profile">
<?php if(isset($_SESSION['user'])){
?>
<h4>Bienvenido <?=ucfirst($_SESSION['user'])?> <?=$_SESSION['clave']?></h4>
<a href='perfil.php' id='logout'>Ver Perfil</a>
<a href='logout.php' id='logout'>Logout</a>
<a href='recuperar.php' id='recuperar'>Recuperar Contraseña</a>
<?php }else {?>
<a id="login_a" href="#">login</a>
<?php } ?>
</div>