Foros del Web » Programando para Internet » PHP »

Destruir sesiones

Estas en el tema de Destruir sesiones en el foro de PHP en Foros del Web. Hola. He conseguido crear la sesion y propagarla de una pagina a la otra. La cuestión es que en el cPanel tengo un botón DHTML ...
  #1 (permalink)  
Antiguo 07/03/2006, 06:53
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 11 años, 9 meses
Puntos: 3
Destruir sesiones

Hola.

He conseguido crear la sesion y propagarla de una pagina a la otra. La cuestión es que en el cPanel tengo un botón DHTML que llama al fichero: cerrarsesion.php.

En este fichero tengo puesto:

Código PHP:

<?  
    
//Finalizo la sesión y la destruyo
    
session_cache_limiter("nocache,private");
    
session_start();
    
$_SESSION = array(); //vacio el array
    
session_destroy(); //Destruyo la sesion actual
?>
        <html>
            <head>
                <script language="Javascript">
                    function cerrarVentana(){
                        window.close();
                    }
                </script>
            </head>
            <body onLoad="cerrarVentana()">
            </body>
        </html>
La cuestión es que tras cerrar esa ventana, si accedo directamente de nuevo a esa pantalla me sale y me debería indicar USTED NO TIENE PERMISO PARA ACCEDER, ya que he destruido la sesión. (es como si no la destruyera).

¿Qué puedo estar haciendo mal?
  #2 (permalink)  
Antiguo 07/03/2006, 07:29
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 13 años, 9 meses
Puntos: 0
prueba con esto

Código PHP:
<?php

// Inicializa de la sesi&oacute;n.
// Si est&aacute; usando session_name("algo"), &iexcl;no lo olvide ahora!
session_start();
// Destruye todas las variables de la sesi&oacute;n
session_unset();
// Finalmente, destruye la sesi&oacute;n
session_destroy();

?>
saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #3 (permalink)  
Antiguo 07/03/2006, 08:36
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 11 años, 9 meses
Puntos: 3
Parece que no va

Hola.

He probado el codigo que me has facilitado pero por lo que veo no va ya que cuando se cierra la ventana (aun sigo teniendo abierta la primera desde la que llamé al cpanel), si hago trampa y pongo "fichero.php?logeado=numeracion_de_la_session_ id y pulso ENTER me carga la página otra vez y no debería hacerlo ya que se supone he destruido la sesión.

Al crear la sesión utilizo session_name("logged");

¿Como puedo comprobar que verdaderamente se ha eliminado la sesión y ha dejado de existir para evitar un agujero de seguridad abierto?

Gracias.
  #4 (permalink)  
Antiguo 07/03/2006, 10:58
Avatar de decano  
Fecha de Ingreso: diciembre-2005
Ubicación: Montevideo, Uruguay
Mensajes: 146
Antigüedad: 12 años
Puntos: 0
De acuerdo

hola a todos: prueba con esto
Código PHP:
<?
session_name
('registrado');
session_start();
session_cache_limiter('nocache,private');
if (!isset(
$_SESSION['login']) && !isset($_SESSION['pass']))
{
session_destroy();

die (
"Inicie Sessión Por Favor");

exit;
}
?>
Saludos

Última edición por Cluster; 07/03/2006 a las 11:10
  #5 (permalink)  
Antiguo 07/03/2006, 11:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Al crear la sesión utilizo session_name("logged");
Si es así .. si defines nombre de sesión propio (podrías usar el que PHP dá por defecto omitiendo esa función) debes indicar también el nombre de la sesión en la destrucción de la misma .. tal cual lo usas en la creación de esta. Y acuerdate de -siempre- usarlo (si defines nombre de sesión) sino, perderas de forma inespicable las sesiones en el momento que no lo uses.

Un saludo,
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 22:30.