Use lo que me pasaste. Si cierro el navegador se borran los datos de sesion pero si solo cierro la pestaña, la session no se borra (abro los archivos en otra pestaña y las variables de sesion siguen activas). Lo probé en un pequeño programita.
Te paso el codigo (a ver si me podes decir el error).
pruebasesion.php
Código:
<?php
ini_set("session.use_trans_sid","0");
ini_set("session.use_only_cookies","1");
session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0);
session_start();
?>
<ul>
<li><a href="pruebasesion_rdo.php?id=1">cargar datos</a></li>
<li><a href="pruebasesion_rdo.php?id=2">Mostrar datos</a></li>
<li><a href="pruebasesion_rdo.php?id=3">destruir datos</a></li>
</ul>
pruebasesion_rdo.php
Código:
<?php
ini_set("session.use_trans_sid","0");
ini_set("session.use_only_cookies","1");
session_set_cookie_params(0, "/", $HTTP_SERVER_VARS["HTTP_HOST"], 0);
session_start();
if ($_GET['id']==1){
$_SESSION['prueba']= TRUE;
echo ("id=1; el valor de la var de sesion es: " .$_SESSION['prueba'] . "<BR>");
}
if ($_GET['id']==2){
if (isset($_SESSION['prueba'])){
echo ("id=2; el valor de la var de sesion es: " . $_SESSION['prueba'] . "<BR>");
}else{
echo ("la var no esta definida");
}
}
if ($_GET['id']==3){
session_unset();
}
?>
<a href="pruebasesion.php">volver</a>