Foros del Web » Programando para Internet » PHP »

Esta es buena: sesiones.

Estas en el tema de Esta es buena: sesiones. en el foro de PHP en Foros del Web. Tengo los siguientes tres archivos: 1. login.php con el siguiente contenido: Código PHP: session_start (); if(isset( $_SESSION )){ header ( "location: menuUsuarios.php" );  /* Si ha iniciado la sesion, vamos a user.php */ } else {  // Formulario para meter login y password, no lo pongo para no extenderme. el action es igual a comprueba.php ...
  #1 (permalink)  
Antiguo 27/05/2009, 07:50
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Esta es buena: sesiones.

Tengo los siguientes tres archivos:
1. login.php con el siguiente contenido:

Código PHP:
session_start();
if(isset(
$_SESSION)){
header("location: menuUsuarios.php"); /* Si ha iniciado la sesion, vamos a user.php */
} else { 
// Formulario para meter login y password, no lo pongo para no extenderme. el action es igual a comprueba.php

2. comprueba.php

Código PHP:
session_start();
$server="localhost"/* Nuestro server mysql */
$database="XXXX"/* No os muestro mis datos XD */
$dbpass="XXXX"/* No os muestro mis datos XD */
$dbuser="root"/* Nuestro user mysql */
$login $_POST["login"];
$query"SELECT * FROM usuarios WHERE login=$login";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(
mysql_num_rows($result)==0){
echo 
"No existe el login introducido";
} else {
$array=mysql_fetch_array($result);
$pass$_POST["pass"];
if(
$array["clave"]==md5($pass)){
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo.*/
$_SESSION["usuario"]=$login;
header("location: menuUsuarios.php"); 
} else {
echo (
"La clave no es correcta."); 
3. salir.php

Código PHP:
session_start();
session_unset();
$_SESSION = array();
unset(
$_SESSION);
session_destroy(); 
Pues bien La sesión no acaba nunca, por mas que haga siempre que hago click en salir desde el menú contenido en el fichero 2. no hay forma de que lo haga, cuando vuelvo a entrar en 1. (login.php ) Accede directamente sin pedirme ni clave ni nada de nada.

Por si sirve de ayuda, estoy trabajando con un Servidor Ubuntu 9.04 y PHP5.

Saludos!!!
  #2 (permalink)  
Antiguo 27/05/2009, 08:11
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Esta es buena: sesiones.

Al momento de inicializar sesion se crea la matriz $_SESSION, por lo que al verificar (isset($_SESSION)) te devuelve siempre verdadero. Lo que tienes que hacer es buscar algun indice que hayas creado en la sesion. Ejemplo: (isset($_SESSION['usuario']))
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 27/05/2009, 08:21
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Esta es buena: sesiones.

Tienes razón!!!

No me di cuenta de que con esa simple comprobación estaba hecho, al hacer un session_start() siempre existe la variable $_SESSION por lo que la comprobación que estaba haciendo no servía de nada.

Muchísimas gracias de veras y perdona por mi torpeza.

Lo probaré y confirmaré que es correcto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:24.