Foros del Web » Programando para Internet » PHP »

destruir sesiones y cookies

Estas en el tema de destruir sesiones y cookies en el foro de PHP en Foros del Web. Buenas tardes, Siguiendo el ejemplo de www.desarrolloweb.com sobre el sistema de autentificación me aparece un problema al intentar destruir la sesión y es que una ...
  #1 (permalink)  
Antiguo 30/03/2009, 11:51
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 18 años, 2 meses
Puntos: 3
destruir sesiones y cookies

Buenas tardes,

Siguiendo el ejemplo de www.desarrolloweb.com sobre el sistema de autentificación me aparece un problema al intentar destruir la sesión y es que una vez hecho, si vuelvo a acceder a mi página (supuestamente securizada) me sale cuando no debería hacerlo.

el fichero seguridad.php contiene esto:

Código PHP:
ini_set("session.use_only_cookies","1");
    
ini_set("session.use_trans_sid","0");
    
    
//Iniciamos la sesión
    
session_name("loginUsuario");
    
session_start();
    
//Cambio la duración a la cookie de la sesión
    
session_set_cookie_params(0"/"$_SERVER['HTTP_HOST'], 0);
    
    
//Compruebo que el usuario está logueado
    
if ($_SESSION["autentificado"]!="SI"){
        
header("Location: errorvalidacion.php");    
        exit(); 
//Salgo del script
    
}else{
        
//Calculo el tiempo transcurrido
        
$fechaGuardada $_SESSION["ultimoAcceso"];
        
$fechaActual date("Y-n-j H:i:s");
        
$tiempo_transcurrido = (strtotime($fechaActual)-strtotime($fechaGuardada));
        
        
//Compruebo el tiempo transcurrido (medido en segundos)
        
if ($tiempo_transcurrido >= $duracionSesion){
            
session_destroy(); //destruyo la sesión
            
header("Location: errorvalidacion.php");        
        }else{
            
//Actualizo la fecha de la sesión
            
$_SESSION["ultimoAcceso"] = $fechaActual;
        }
    } 
El fichero donde controlo la validación del usuario contiene esto:

Código PHP:
ini_set("session.use_only_cookies","1");
            
ini_set("session.use_trans_sid","0");
        
            
session_name("loginUsuario"); //asigno un nombre a la sesión para poder guardar diferentes datos.
            
session_start(); //inicio la sesión
            //Cambio la duración de las cookies de la sesión
            
session_set_cookie_params(0,"/",$_SERVER['HTTP_HOST'],0);
            
            
$_SESSION["autentificado"] = "SI";
            
//Nombre del usuario validado para mostrar en la cabecera de todo el cPanel
            
$_SESSION["nombre"] = $dato["nombreusuario"];
            
//Defino la fecha y hora de inicio de sesión (formato: aaaa-mm-dd hh:mm:ss)
            
$_SESSION["ultimoAcceso"] = date("Y-n-j H:i:s"); 
            
header ("Location: cpaneladmin.php"); //Aquí poner la página con el cPanel (cpanel.php)
        
}
    }else{
        
//redirijo a admin.php con error de usuario
        
header("Location: errorvalidacion.php");
    } 
Y por último el fichero "salir.php" que destruye las sesiones (supuestamente) tiene esto:

Código PHP:
session_start();
session_destroy(); 
En mi página al pulsar "cerrar sesión" llamo al fichero salir.php que supuestamente destruye la sesión.

Pues bien, si vuelvo a teclear mi página.php no debería dejarme acceder puesto que ya he destruido la sesión y en cambio me sigue saliendo.

¿Puede ser que haya que destruir alguna cosa más? ¿Las cookies? ¿Otras sesiones más que haya creadas?

¿Alguna idea o sugerencia? Gracias.
  #2 (permalink)  
Antiguo 30/03/2009, 12:22
 
Fecha de Ingreso: mayo-2005
Mensajes: 45
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: destruir sesiones y cookies

Puede que la cookie no se borre... sería un setcookie('PHPSESSID','','0'); o que el navegador guarde en caché la página... ¿si das a F5 se deslogea?

Saludos

Última edición por Welling; 30/03/2009 a las 12:41
  #3 (permalink)  
Antiguo 30/03/2009, 13:31
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: destruir sesiones y cookies

proba algo asi:
Código PHP:
<?php
if (!isset($_SESSION)) {
  
session_start();
}

$_SESSION['user'] = "";
$_SESSION['pass'] = "";
unset(
$_SESSION['user']);
unset(
$_SESSION['pass']);

session_destroy();
?>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #4 (permalink)  
Antiguo 03/04/2009, 16:50
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: destruir sesiones y cookies

Hola.

Si pulso F5 se actualiza la página como si tal cosa, es decir, se recarga y sigue mostrando el contenido.

He probado con unset pero sigue sin funcionar.

Cierro el navegador y lo vuelvo a abrir y efectivamente no me muestra las páginas si previamente no me he validado.

¿Qué puede estar fallando?
  #5 (permalink)  
Antiguo 04/04/2009, 07:20
 
Fecha de Ingreso: marzo-2009
Mensajes: 35
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: destruir sesiones y cookies

para destruir la sesion que deceas debe hacer referencia a su nombre!!!

Código PHP:
session_name("loginUsuario"); 
session_start();
session_destroy(); 
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 06:13.