Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2005, 03:15
Koden
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 11 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.