Foros del Web » Programando para Internet » PHP »

Sesiones

Estas en el tema de Sesiones en el foro de PHP en Foros del Web. Estaba probando cosas con sesiones en un servidor local, y me surge una duda: Cuando cierro ventana no se eliminan, y al cabo de un ...
  #1 (permalink)  
Antiguo 15/01/2010, 15:06
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
De acuerdo Sesiones

Estaba probando cosas con sesiones en un servidor local, y me surge una duda:

Cuando cierro ventana no se eliminan, y al cabo de un tiempo (1400, pone en el phpinfo , que supongo que son segundos), tampoco se eliminan.

Hay alguna funcion para decir que se eliminen, por ejemplo, 1 hora después de crearse, o cuando cierre navegador? Si puede ser sin modificar el php.ini.

Muchas gracias!
  #2 (permalink)  
Antiguo 15/01/2010, 15:11
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: Sesiones

Puedes usar ini_set o htaccess para modificar el session.cookie_lifetime. Le debes declarar un valor 0 para que al cerrar el navegador se elimine la sesión.
__________________
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 15/01/2010, 15:33
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Sesiones

He cogido el ejemplo del ini_set del manual de php y he escrito este código solo:

Código PHP:
echo ini_get('session.cookie_lifetime'); 
y me da un 0

He cogido todo el codig de ejemplo y he puesto:

Código PHP:
<?php
echo ini_get('session.cookie_lifetime');

if (!
ini_get('session.cookie_lifetime')) {
    
ini_set('session.cookie_lifetime'60);
}

echo 
ini_get('session.cookie_lifetime');
?>
y me pone 060. Ahora voy a probar con el codigo grande a ver si me dura 1 minuto las sesiones. (Uso windows en local)

No!! Me pone en la carpeta de los temporales creado a las 22:32 y son las 22:35 y sigue ahí.
Voy a intentarlo mañana, que tengo unas ideas más, pero ahora tengo sueño
  #4 (permalink)  
Antiguo 16/01/2010, 11:40
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Sesiones

Sigue sin funcionar. Hoy lo pruebo, y sigue sin borrarse al minuto. Este es el script de "prueba" que uso:

SESION1.PHP
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<body>
<form action="sesion2.php" method="post" enctype="multipart/form-data" name="form" id="form">
<div align="left"><span class="textonormal">Su nombre*:</span></div>
<p color="#000000"><input name="nombre" type="text" style="color:black" class="textonormal" id="nombre"></p>
<div align="left"><span class="textonormal">Su e-mail*:</span></div>
<span class="textonormal"><input name="email" type="text" style="color:black" class="textonormal" id="email">
</span>
<div align="left">Su comentario:</div></td>
<textarea name="comentario" cols="40" rows="6" style="color:black" class="textonormal" id="comentario"></textarea>
Enviar:<br>
<input name="boton" type="submit" style="color:black" class="textonormal" id="boton" value="Enviar">
</form>
<p>&nbsp;</p>
</body>
</html> 
SESION2.PHP
Código PHP:
<?php
    
echo ini_get('session.cookie_lifetime');

if (!
ini_get('session.cookie_lifetime')) {
    
ini_set('session.cookie_lifetime'60);
}

echo 
ini_get('session.cookie_lifetime');
    
session_start();
    
$_SESSION['nombre'] = $_POST['nombre'];
    
$_SESSION['email'] = $_POST['email'];
    
$_SESSION['comentario'] = $_POST['comentario'];
    
$_SESSION['comodin'] = "si";
    echo (
$_SESSION['nombre'].$_SESSION['email'].$_SESSION['comentario']);
?>
Y funciona, porque me escribe 060 y lo que sea que haya escrito en los campos

Etiquetas: sesiones
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 22:51.