Foros del Web » Programando para Internet » PHP »

Problema al destruir sesiones.

Estas en el tema de Problema al destruir sesiones. en el foro de PHP en Foros del Web. Hola, tengo un problema con una página que tengo con un sistema de sesiones en PHP. Mi archivo de login es así: Código PHP: <?php ...
  #1 (permalink)  
Antiguo 19/07/2005, 03:15
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 2 meses
Puntos: 1
Problema al destruir sesiones.

Hola, tengo un problema con una página que tengo con un sistema de sesiones en PHP. Mi archivo de login es así:

Código PHP:
<?php
if (!isset ($_SERVER["PHP_AUTH_USER"]))
{
  
header ('WWW-Authenticate: Basic realm="Acceso restringido"');
  
header ('HTTP/1.0 401 Unauthorized');
  echo 
'Authorization Required.';
  exit;
}
else
{
  
$dbh mysql_connect ("host","user","pass");
  
mysql_select_db ("db",$dbh);

  
$a "SELECT id_admin FROM administradores WHERE nick='" $_SERVER["PHP_AUTH_USER"] . "' AND pass='" $_SERVER["PHP_AUTH_PW"] . "'";
  
$b mysql_query ($a,$dbh);

  
$c mysql_num_rows ($b);

  if (
$c 0)
  {
     
session_start ();

     if(!isset (
$_SESSION["login"]))
       
$_SESSION["login"] = true;
     else
       
$_SESSION["login"] = true;

     if (isset (
$_GET["pag"]))
       echo (
"<meta http-equiv=\"refresh\" content=\"0;URL=URL1" $_GET["pag"] . "&PHPSESSID=" session_id () . ";TARGET=resul\">");
     else
       echo (
"<meta http-equiv=\"refresh\" content=\"0;URL=URL2?PHPSESSID=" session_id () . ";TARGET=resul\">");
  }
  else
  {
     
$error "Introduzca un usuario y una clave v&aacute;lidos";
     
header ("Location: URL3?error=" $error);
  }
}
?>
Y el de logout es así:

Código PHP:
<?php
  session_start 
();

  
session_unset ("login");
  
session_unset ("PHPSESSID");

  unset (
$_SERVER["PHP_AUTH_USER"]);
  unset (
$_SERVER["PHP_AUTH_PW"]);

  
$p session_destroy ();

  if (
$p == true)
    
header ("Location: URL");
  else
    echo 
"Algo ha ido mal...";
?>
Si bien este último no me funciona, dado que los usuarios registrados pueden acceder a las noticias 'ocultas' después de hacer logout...

¿Alguien sabe que es lo que estoy haciéndo mal?

Muchas gracias por anticipado y un saludo a todo el mundo.
  #2 (permalink)  
Antiguo 19/07/2005, 03:29
cartucho
Invitado
 
Mensajes: n/a
Puntos:
si usas PHP superior a la versión 4.0.6 creo que deberías usar

$_SESSION = array(); //destruye todas las variables de la sesion

en vez de session_unset

saludos
  #3 (permalink)  
Antiguo 19/07/2005, 03:38
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 2 meses
Puntos: 1
Muchas gracias, pero lo he probado y no sirve de nada.

Al volver a la página principal (donde las noticias privadas se muestran con un candadito si el usuario no está registrado) las noticias en principio se muestran como privadas, pero al hacer click sobre ellas se abren como si el usuario estuviese logeado...

Seguiré probando a ver si finalmente doy con el fallo...
  #4 (permalink)  
Antiguo 03/01/2009, 11:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 11
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema al destruir sesiones.

Hola, tengo entendido que estas variables

($_SERVER["PHP_AUTH_USER"]);
($_SERVER["PHP_AUTH_PW"]);

solo se destruyen al cerrar el navegador, tal como las destruyes no funciona!!
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 08:18.