Ver Mensaje Individual
  #8 (permalink)  
Antiguo 18/02/2005, 19:29
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Cita:
PD: me podrias detallar mas :"Por lo demás .. una sesión no queda disponible su nuevo valor (si lo modificas) hasta la próxima petición al servidor .. es decir . .entre un script.php al otro.php .. o recarga del mismo."
En realidad para efectos de tu caso y de la mayoría de los casos, este tema no es de mucha relevancia para las sesiones (como sí lo es para las cookies).
Te pongo un ejemplo de cómo funcionan las cookies:
Código PHP:
setcookie("variable""valor"time()+3600);// seteará una cookie (aparentemente)

// Entonces, deberíamos poder hacer:
echo $_COOKIE['variable']; // No funciona 
¿Por qué no funciona? Porque esa cookie en realidad aún no ha sido creada. Recién existira en la próxima petición.

¿Y qué pasará con lo siguiente?
Código PHP:
$_COOKIE['variable'] = "nuevo valor";// asignamos valor a $_COOKIE['variable']
echo $_COOKIE['variable'];// imprime "nuevo valor"... funciona!!... o no? 
Como verás, en este caso jamás hemos creado la cookie (no ves el "setcookie()" por ningún lado) sinembargo podemos utilizar $_COOKIE['variable'] que funcionará como una variable local. Cuando uno pone "echo $_COOKIE['variable']" evidentemente no se está leyendo el valor de la cookie sino de una variable local llamada así. Y nunca escribimos nada en la cookie.

Con las sesiones pasa algo similar.
Si no hicieras session_start() al comienzo, igual podrías asignar:
Código PHP:
$_SESSION['variable']="valor";
echo 
$_SESSION['variable'] ;// esto pinta "valor"

$_SESSION['variable']="nuevo_valor";
echo 
$_SESSION['variable'] ;// pintaria "nuevo valor" 
Y aquí evidentemente tampoco estás leyendo valores desde la sesión porque nunca hiciste "session_start()".

Con esto quiero decirte que puedes cambiar las veces que quieras el valor de una variable de sesión (abierta con session_start()) dentro de la ejecución de un script... pero eso no quiere decir que estés escribiendo en la sesión. La escritura en la sesión se hace cuando termina la ejecución de todo el script y lo puedes comprobar recién en la siguiente petición.

Pero, como te dije... en el tema de sesiones no tiene una gran relevancia, porque no te enteras si estás utilizando la local o la de la sesión. Ya que igual al final los valores locales van a parar a la sesión.

Saludos