Foros del Web » Programando para Internet » PHP »

variable de sesion que no se borra

Estas en el tema de variable de sesion que no se borra en el foro de PHP en Foros del Web. Hola a todos, Ante todo, gracias por su atención, hacen una labor increible. Estoy programando una web con autentificacion de usuario. Desde dicha web se ...
  #1 (permalink)  
Antiguo 29/08/2009, 10:14
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
variable de sesion que no se borra

Hola a todos,

Ante todo, gracias por su atención, hacen una labor increible.

Estoy programando una web con autentificacion de usuario. Desde dicha web se puede acceder a una pagina que tiene datos privados y publicos.

Si están autenticados, deberían verlo todo, pero si no, solo deberían ver los públicos.

El caso es que:
1)cuando entro por primera vez a dicha página, solo me muestra los publicos, 2)cuando intento entrar una vez logueado, los veo todos,
3) pero si salgo de la sesión e intento entrar otra vez, los sigo viendo todos

Les dejo el codigo para ver si me pueden echar una mano:

Pagina que crea la sesion y sus variables una vez logrado la autenticacion:

<?php
session_start();

if($_SESSION["falla"]==0)
{

$_SESSION["autorizacion"]="si";
$_SESSION["tiempo"]=time();

header("Location: index.php");

}

?>


Para salir utilizo:

session_start();

$_SESSION["autorizacion"]="";
unset($_SESSION["autorizacion"]);
unset($_SESSION["falla"]);
session_destroy();

Y para controlar si estoy autenticado y de esa manera mostrar el html correspondiente:

<?php
session_start();
if(isset($_SESSION["autorizacion"]) && $_SESSION["autorizacion"]=="si")
?>
<HTML>
.
.
.
<?php }?>


El problema es que autorizacion sigue siendo "si" aún cuando hago $_SESSION["autorizacion"]="";
unset($_SESSION["autorizacion"]);
unset($_SESSION["falla"]);
session_destroy();, ya que session_start me propaga esos datos....alguien me podría echar una mano??? Me voy a volver loca!!!!
  #2 (permalink)  
Antiguo 29/08/2009, 10:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: variable de sesion que no se borra

Para borrar una session te sugiero usar session_destroy()
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 29/08/2009, 10:16
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Respuesta: variable de sesion que no se borra

es lo que hago, aunque previamente hago unset pero era para prevenirme de que fuese ese el fallo, acabo haciendo session_destroy()...
  #4 (permalink)  
Antiguo 29/08/2009, 10:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: variable de sesion que no se borra

Solo necesitas usar como el ejemplo que te indique. Te sugiero que hagas una prueba asignando en una pagina las sessiones y luego vayas a una pagina que tenga exactamente lo que te indique. Y luego vayas a una pagina que verifique las sesiones si existen
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 29/08/2009, 10:20
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Respuesta: variable de sesion que no se borra

como verifico las sesiones que existan??? he dejado unicamente en salir.php el codigo que me has indicado y sigue haciendo lo mismo...
  #6 (permalink)  
Antiguo 29/08/2009, 10:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: variable de sesion que no se borra

Código php:
Ver original
  1. if(isset($_SESSION["NombreSession"])){
  2. //codigo
  3. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 29/08/2009, 10:28
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Respuesta: variable de sesion que no se borra

pero eso es lo mismo que hago cuando intento verificar si está autentificado para mostrar la información privada, no?
me refiero a:

<?php
session_start();
if(isset($_SESSION["autorizacion"]) && $_SESSION["autorizacion"]=="si")
{
?>

si lo hago sin el session_start() delante, pues no entra en el if en ningun caso, y si pongo el session start delante entra siempre...aunque venga de una pagina que haya hecho un session_start();session_destroy()...
  #8 (permalink)  
Antiguo 29/08/2009, 10:32
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: variable de sesion que no se borra

Ok primero cierra todos los navegadores. Ahora trata de hacer tres archivos y luego abre un navegador y escribe http://localhost/

index.php
Código php:
Ver original
  1. <?php
  2. $_SESSION["autorizacion"] = "SI";

logout.php

verificar.php
Código PHP:
Ver original
  1. if(isset($_SESSION["autorizacion"]) && $_SESSION["autorizacion"]){
  2.   echo "Todavia existe la variable";
  3. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 29/08/2009, 10:33
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Respuesta: variable de sesion que no se borra

He hecho lo que me indicabas, me indica que la session se cerro, pero si manualmente entro en la direccion, me vuelve a mostrar los datos publicos y privados...puede ser que se quede en cache el valor de esa variable?
  #10 (permalink)  
Antiguo 29/08/2009, 10:47
Jiu
 
Fecha de Ingreso: abril-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Respuesta: variable de sesion que no se borra

Vale, he vuelto a seguir tus pasos, con esos tres ficheros, y no muestra el mensaje "Todavia existe la variable", por lo tanto, la variable no existe...pero es exactamente lo que he hecho antes y al volver a la pagina la variable vuelve a resucitar...
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 14:24.