Ver Mensaje Individual
  #13 (permalink)  
Antiguo 01/04/2007, 13:31
SlrSalnt
 
Fecha de Ingreso: febrero-2006
Mensajes: 2
Antigüedad: 19 años, 1 mes
Puntos: 0
Exclamación Re: problemas con sessiones, en que estoy mal

hola estaba leyendo su post y ando con problemillas , ando aprendiendo mas php , pero me tope con un problemilla...
el usuario agrega su username y pass , entra normal a su cuenta digamoslo asi , pero al agregar el codigo de session .. en "login_success.php"
con ese codigo deberia prohibir a un usuario q no este logueado entrar a la cuenta del usuario , ojo: lo si prohibe... pero cuando me logueo para entrar con mi user y pass ia creados , me rebota y me deja en el login_form.html :S
que bronca :S ando leiendo algunos manuales, pero no me sale aun :S si me dan una mano por ahi les agradeceria mucho ..
ahi les dejo el codigo de los tres archivos q uso :
1- Formulario: login_form.html
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<form action="checkuser.php" method="post" name="" id="">
<table width="50%" border="0" align="center" cellpadding="4" cellspacing="0">
<tr>
<td width="22%">Usuario</td>
<td width="78%"><input name="username" type="text" id=" usuario "></td>
</tr>
<tr>
<td>Contraseña</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Entrar"></td>
</tr>
</table>
</form>
</body>
</html>

2- el codigo que verifica si el usuario es correcto o no "checkuser.php"
<?

session_start(); // Start Session
include 'db.php';

$username = $_POST['username'];
$password = $_POST['password'];
if((!$username) || (!$password)){
echo "Please enter ALL of the information! <br />";
include 'login_form.html';
exit();
}

$password = md5($password);

$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}

session_register('first_name');
$_SESSION['first_name'] = $first_name;
session_register('last_name');
$_SESSION['last_name'] = $last_name;
session_register('email_address');
$_SESSION['email_address'] = $email_address;
session_register('special_user');
$_SESSION['user_level'] = $user_level;
mysql_query("UPDATE users SET last_login=now() WHERE userid='$userid'");
header("Location: login_success.php");
}
} else {
echo "You could not be logged in! Either the username and password do not match or you have not validated your membership!<br />
Please try again!<br />";
include 'login_form.html';
}
?>

3- este es el codigo de la cuenta del usuario: login_success.php
<?
//iniciamos la sesión
session_name("loginUsuario");
session_start();
//antes de hacer los cálculos, compruebo que el usuario está logueado
if ($_SESSION["autentificado"] != "SI") {
//si no está logueado lo envío a la página de autentificación
header("Location: login_form.html");
} else {
//sino, calculamos el tiempo transcurrido
$fechaGuardada = $_SESSION["ultimoAcceso"];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
//comparamos el tiempo transcurrido
if($tiempo_transcurrido >= 600) {
//si pasaron 10 minutos o más
session_destroy(); // destruyo la sesión
header("Location: login_form.html"); //envío al usuario a la pag. de autenticación
//sino, actualizo la fecha de la sesión
}else {
$_SESSION["ultimoAcceso"] = $ahora;
}
}
?>