Foros del Web » Programando para Internet » PHP »

como borrar Variable de sesion?

Estas en el tema de como borrar Variable de sesion? en el foro de PHP en Foros del Web. Hola a todos, ya se que mi pregunta es facil de responder, me lo hago yo mismo, Código PHP: <?php  session_start ();  unset( $_SESSION [ ...
  #1 (permalink)  
Antiguo 24/02/2005, 05:33
 
Fecha de Ingreso: febrero-2005
Mensajes: 28
Antigüedad: 19 años, 9 meses
Puntos: 0
como borrar Variable de sesion?

Hola a todos, ya se que mi pregunta es facil de responder, me lo hago yo mismo,
Código PHP:
<?php 
session_start
(); 
unset(
$_SESSION['nombre']); 
Header("Location: index.php");
?>
o esto es lo que he leido por aquí, pues bien, no me funciona.

Me explico, primero hago que el usuario se registre, compruebo su contraseña y todo eso y lo devuelvo al index.php, en donde aparece una frasecilla de saludo usando la variable $_SESSION['nombre']; para mostrar el nombre.

Código PHP:
<?
session_start
(); 
$con mysql_connect("localhost""xxxxxx""xxxxxx"); 
mysql_select_db("kk"$con); 
$password2 md5($password2); 
$rs mysql_query("SELECT nick,password,nombre FROM registro WHERE nick='$nick2' AND password='$password2'");
$row=mysql_num_rows($rs);
if(
$row>0){
$nombre=mysql_result($rs0"nombre");
    if (
$nombre==""){
        
$_SESSION['nombre']=$nick2;
    }else{
        
$_SESSION['nombre']=$nombre;
    }
header ("Location:index.php");
}else{
header ("Location:index.php");
}
?>
Hasta aquí ningún problema, me muestra la página bien con la frase de bienvenida y con el nombre del usuario. Ahora bien, cuando quiero hacer un logout, osease, borrar la variable $_SESSION['nombre'] no me lo hace. El script es el que he puesto al principio. Me vuelve a index.php y me sigue mostrando la frase de bienvenida con el nombre del usuario registrado anteriormente, vamos que no me borra la variable.
Vaya rollo. Bueno, que sepais que estoy empezando con esto del php, solo llevo unos días, no seais duros conmigo.
  #2 (permalink)  
Antiguo 24/02/2005, 07:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En la documentación oficial de PHP .. hablan de "matar" la cookie (manualmente) que crea PHP (si propagas el SID en cookies) además de deshacerte de la sesión como ya lo haces (con el session_destroy() y el unset() ..) pruebalo por si tienes problemas con esa cookie:

www.php.net/session_destroy
(lo tienes en los comentarios de los usuarios de dicha función)

Un saludo,
  #3 (permalink)  
Antiguo 24/02/2005, 07:53
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 9 meses
Puntos: 1
Creo q se puede asi:

session_start();
session_unset(variable); o si las quiere borrar todas, entonces sin parametros
session_unset();

Primero arranca la session y luego si borra la variables. Si aun no funciona entonces es mejor destruir la session, como dice Cluster.
  #4 (permalink)  
Antiguo 24/02/2005, 09:37
 
Fecha de Ingreso: febrero-2005
Mensajes: 28
Antigüedad: 19 años, 9 meses
Puntos: 0
Vale, si hago session_destroy() , me funciona, pero entonces si tuviera otras variables de sesion que me interesa guardar las perdería no?

Otra cosa, desactivo del php.ini lo de session.use_cookies y entonces no me funciona nada referente a la sesion. Para propagar el SID mediante la url he de activar algo del php.ini o he de ir añadiendo el SID manualmente o que?

Dadme una pistita de por donde ir, yo luego ya me apaño. Y si no ya volvere a preguntar, je je. ;)
  #5 (permalink)  
Antiguo 24/02/2005, 09:48
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 3 meses
Puntos: 8
Otra idea....
Prueba usando $_SESSION=array(); para borrar las variables de sesion (todas), o $_SESSION['nombre']=""; o $_SESSION['nombre']=null.....

Por lo menos es lo que aparece en el manual.
  #6 (permalink)  
Antiguo 24/02/2005, 09:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por Dsandar
Vale, si hago session_destroy() , me funciona, pero entonces si tuviera otras variables de sesion que me interesa guardar las perdería no?

Otra cosa, desactivo del php.ini lo de session.use_cookies y entonces no me funciona nada referente a la sesion. Para propagar el SID mediante la url he de activar algo del php.ini o he de ir añadiendo el SID manualmente o que?

Dadme una pistita de por donde ir, yo luego ya me apaño. Y si no ya volvere a preguntar, je je. ;)
Bueno .. si tu en tu aplicación no propagas el SID manualmente .. estás dejando a PHP que lo haga por su configuración .. en tu caso por "cookies" .. por eso si lo desactivas no te funciona tu aplicación.

A lo sumo deberías usar session.use_trans_sid = 1 si deseas desactivar la propagación del SID en cookies .. pero eso tiene sus riesgos también y sobre todo que PHP no propaga el SID en todo "redireccionamiento" que hagas .. no lo hace en cosas como header("Location ...") tampoco en redireccionamientos por javascript (window.location .. o window.open .. etc...)

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 12:07.