Foros del Web » Programando para Internet » PHP »

Cambiar variable $_SESSION

Estas en el tema de Cambiar variable $_SESSION en el foro de PHP en Foros del Web. Hola, Dentro de un mismo fichero voy modificando el valor de una variable $_SESSION y ejecuto un script que esta en otro fichero y utiliza ...
  #1 (permalink)  
Antiguo 14/03/2009, 17:30
 
Fecha de Ingreso: noviembre-2008
Mensajes: 19
Antigüedad: 15 años, 5 meses
Puntos: 0
Cambiar variable $_SESSION

Hola,

Dentro de un mismo fichero voy modificando el valor de una variable $_SESSION y ejecuto un script que esta en otro fichero y utiliza esta variable $_SESSION.
El problema es que el segundo fichero solo me trabaja con el ultimo valor que adquiere la variable $_SESSION.

En el ejemplo.php solo consigo mostrar la foto 12.

Código PHP:
///ejemplo.php
session_start ();
/////////////////////////
$_SESSION['foto'] = 5;
echo 
"<img src='mostrar_foto.php?id=5'>";
/////////////////////////
$_SESSION['foto'] = 8;
echo 
"<img src='mostrar_foto.php?id=8'>";
/////////////////////////
$_SESSION['foto'] = 12;
echo 
"<img src='mostrar_foto.php?id=12'>"



Código PHP:
/// mostrar_foto.php
session_start();
 
header ("Content-type: image/jpeg");    
////////////////////////////////
if  ($_SESSION['foto'] == $_GET['id']) 

    
$img file_get_contents ($_GET['id'].'.jpg'); 
    echo 
$img;

Gracias
  #2 (permalink)  
Antiguo 14/03/2009, 17:41
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: Cambiar variable $_SESSION

Claro porque estás redefiniendo la variable cada vez.

PHP leerá un script de arriba a abajo y en tu caso, $_SESSION['foto'] por primera vez es definida como 5, el script muestra un enlace y redefine otra vez $_SESSION['foto'] asignándole 8, muestra otro enlace y finalmente termina redefiniendo $_SESSION['foto'] esta vez asignándole 12, por ende, cuando el otro script lee la variable, obtendrá el valor que se le asignó a $_SESSION['foto'] en última instancia, en este caso, 12
__________________
Usuario Reigistrado de linux #399288
  #3 (permalink)  
Antiguo 14/03/2009, 18:07
 
Fecha de Ingreso: noviembre-2008
Mensajes: 19
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Cambiar variable $_SESSION

Si cada vez que cambio el valor de la variable, lo muestro en pantalla, la variable me sale correctamente actualizada
Código PHP:
$_SESSION['foto'] = 5
echo 
"<img src='mostrar_foto.php?id=5'>";
echo 
$_SESSION['foto']; 
Entiendo que hasta que no se ejecuta todo el fichero ejemplo.php las variables $_SESSION no se ejecutan en otros aplicacion intemedias de forma secuencial?

Saludos
  #4 (permalink)  
Antiguo 14/03/2009, 19:06
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 10 meses
Puntos: 18
Respuesta: Cambiar variable $_SESSION

A ver....

Si haces esto
Código PHP:
$_SESSION['foto'] = 5;  
echo 
"<img src='mostrar_foto.php?id=5'>"
echo 
$_SESSION['foto']; 
Mostrará 5 y ese es el valor que PHP internamente guardará para la variable $_SESSION['foto'], si hicieras esto por ejemplo:

Código PHP:
$_SESSION['foto'] = 5;  
echo 
"<img src='mostrar_foto.php?id=5'>"
echo 
$_SESSION['foto'];
$_SESSION['foto'] = 8;  
echo 
"<img src='mostrar_foto.php?id=5'>"
echo 
$_SESSION['foto']; 
Mostrará 8 y este será el valor que PHP guardará para $_SESSION['foto'], si alguna vez tuvo como valor 5, a PHP no le importará porque acabas de sobreescribir ese valor por decirlo de alguna manera.

El problema es que, cuando se llama al archivo mostrar_foto.php y este le pida a PHP el valor de $_SESSION['foto'], PHP le devolverá el valor que conozca de tal variable, siguiendo los ejemplos que puse, dicho valor sería 8 porque fue el último valor que se le asignó (en el código que coloqué).

Internamente a ojos de PHP sería algo así:

- ejemplo.php -> Asigna el entero 5 a $_SESSION['foto']
- PHP -> ok, $_SESSION['foto'] tiene como valor 5
- ejemplo.php -> Muestra este enlace....
- PHP -> ok, lo muestro.
- ejemplo.php -> Ahora asigna el entero 8 a $_SESSION['foto']
- PHP -> ok, $_SESSION['foto'] tiene como valor 8 (acá ya dejó de importarle que antes tenía el valor 5)
- ejemplo.php -> Muestra este enlace...
- PHP -> ok, lo muestro.
- ejemplo.php -> Ahora asigna el entero 12 a $_SESSION['foto']
- PHP -> ok, $_SESSION['foto'] tiene como valor 12 (acá ya dejó de importarle que antes tenía como valor 8 y que alguna vez tenía como valor 5)
- ejemplo.php -> Muestra este enlace...
- PHP -> ok, lo muestro.

- mostrar_foto.php -> Dame el valor de $_SESSION['foto']
- PHP -> El valor que tengo guardado de $_SESSION['foto'] es 12
.....sigue el resto del proceso de comparación y demás.
__________________
Usuario Reigistrado de linux #399288
  #5 (permalink)  
Antiguo 14/03/2009, 19:44
 
Fecha de Ingreso: noviembre-2008
Mensajes: 19
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Cambiar variable $_SESSION

Gracias Acon, esta bastante claro.
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 10:19.