Foros del Web » Programando para Internet » PHP »

Que pasa con estas sessiones.

Estas en el tema de Que pasa con estas sessiones. en el foro de PHP en Foros del Web. Buenas Noches a Todos los Foreros: Pues veran, tengo tres paginas: iniciosession.php, leersession.php, eliminarsession.php iniciosession.php <? session_start(); //Si no existe la variable muestra el formulario. ...
  #1 (permalink)  
Antiguo 11/11/2003, 19:46
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.427
Antigüedad: 14 años, 6 meses
Puntos: 7
Que pasa con estas sessiones.

Buenas Noches a Todos los Foreros:

Pues veran, tengo tres paginas: iniciosession.php, leersession.php, eliminarsession.php


iniciosession.php

<? session_start();
//Si no existe la variable muestra el formulario.
if(!isset($_SESSION['login'])){?>
<form action="leersession.php" method="post">
<table>
<Tr><Td colspan="3">Introduzca los Datos:</Td></Tr>
<Tr><Td>Login:</Td><Td><input type="text" name="txtlogin"></Td></Tr>
<Tr><Td>Password:</Td><Td><input type="text" name="txtpassword"></Td></Tr>
<Tr><Td colspan="2"><center><input type="submit" name="btnenviar" value="Envair"> <input type="reset" value="Borrar"></center></Td></Tr>
</table>
</form>
<? }else{
session_destroy();?>
La página ha caducado.
<? }?>




leersession.php

<? session_start();
//Si no existe la variable muestra el formulario.
if(!isset($_SESSION['login'])){
if(!isset($_POST['txtlogin'])){?>
La Variable Sessión no existe.<Br>
<a href="iniciosession.php">Volver a Inicializarla.</a>
<? }else{
$_SESSION['login']=$_POST['txtlogin'];
echo "Se creo la session.";
echo $_SESSION['login'];
}

}else{
echo "La sessión existente es:".$_SESSION['login']."<Br>";
echo "<a href='eliminarsession.php'>Eliminiar Session.</a>";
}?>




eliminarsession.php

<? session_start();
//Si no existe la variable muestra el formulario.
if(!isset($_SESSION['login'])){?>
La Variable Sessión no existe.<Br>
<a href="iniciosession.php">Volver a Inicializarla.</a>
<? }else{
unset($_SESSION['login']; session_destroy();?>
<script language="JavaScript">document.location.href="inic iosession.php"</script>



Pues bien, tengo los siguientes problemas:
1-.) Al entrar en iniciosession.php, antes de q escriba nada, cada vez q actualizo la pagina me
apare una nueva session en la carpeta dnd guardo las sessiones, que yo sepa solo deberia aparecerme una vez yo hubiese inicializado la session en leersession, vamos creo yo.

2-.) Una vez q meto un dato en iniciosession.php y voy a leersession.php la primera vez me aparece todo bien, me aparece el mensaje de que se ha iniciado la session, pero doy a F5 para que me vaya a dnd tengo puesto "La sessión existente es:", pero nada, no se mueve de la parte de codigo donde me pone que se ha creado la session.

3-.) Una vez q me pone q se ha creado la session, antes (Ahora no esta) habia puesto un enlace a
otra pagina qeu era ver.php para q me mostrara la session, pero sin embargo, no me aparece nada,
es decir, No me envia la session, sin embargo en leersession.php si la veia, ¿Como puede ser posible que no me la envie?

4-.) Y por ultimo, por mas q hago unset y session_destroy, los ficheros de las sessiones tengo que eliminarlos yo a mano.


Bueno, espero no haberles aburrido demasiado, y tambien espero haberme explicado con claridad, espero que me ayuden con estas cuatro dudas qeu tengo, por que sinceramente, no entiendo por que
no funciona ninguno de los 4 puntos aqui expuestos.

Saludos a toda la gente del foro, y muchas gracias por la ayuda servida aqui.
__________________
Charlie.
  #2 (permalink)  
Antiguo 12/11/2003, 03:34
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

4) PHP no borra los ficheros inmediatamente. Hay que esperar a que pase el "recolector de basura" (nombre tecnico). Se controla ese recolector con las directivas session.gc_*.

Y si lees el manual (www.php.net/session), este gc usa el atime de los ficheros. Y en sistemas FAT (w98) no existe esa propiedad en los ficheros. Asi que si tu sistema es FAT, nunca se van a borrar los ficheros.

1), 2) y 3), puede ser por problemas de configuracion de la propagacion del ID de sesion. ¿Lo propagas por cookie o por URL?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 12/11/2003, 06:03
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.427
Antigüedad: 14 años, 6 meses
Puntos: 7
Muhcas Gracias Josemi, esta bien enterarme de lo del recolector de basura, sobre lo de si lo paso por cokkie o por url, pues la verdad no lo se, me imagino que eso se ve en el php.ini, pero no se que directiva especifica si se pasa por cookie o por url, lo que si se es que tengo el register_globals a off, y asi lo dejare.

Sobre lo de pasar las sessiones por cokkie o por url, ¿Te importaria explicarme un poco cual es mejor y por que? Yo estoy acostumbrado a ASP, y bueno, la verdad q lo q mas comodo veo es que al crear la session, pueda usarla cuando quiera, sin necesidad de andar pasandola por url todo el tiempo, bueno, espero q puedas audarme otra vez, muchas gracias.
__________________
Charlie.
  #4 (permalink)  
Antiguo 12/11/2003, 08:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
session.use_cookies = 1 es la directiva de tu php.ini que permite que propagues el SID en cookies en lugar de por el URL ..

A su vez .. session.use_trans_sid (a 1) .. es la que define si tienes que propagar el SID tu . o lo hará PHP automáticamente reescribiendo tag's HTML de links, formularios y demás.

Busca en el foro por "sesiones" .. yo mismo he comentado várias veces estos temas ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 03:41.