Foros del Web » Programando para Internet » PHP »

No se actualiza el valor de variable $_SESSION

Estas en el tema de No se actualiza el valor de variable $_SESSION en el foro de PHP en Foros del Web. Hola a todos! Tengo un problema con las variables $_SESSION, y es que no se me actualiza su valor. Yo tengo una pagina llamada city.php ...
  #1 (permalink)  
Antiguo 24/03/2011, 13:14
 
Fecha de Ingreso: marzo-2011
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 0
No se actualiza el valor de variable $_SESSION

Hola a todos!

Tengo un problema con las variables $_SESSION, y es que no se me actualiza su valor.

Yo tengo una pagina llamada city.php con este codigo en una funcion JavaScript:

Código:
function getRadioValue(radio1, radio2, radio3)
{
	Modalbox.hide();
	
	if (radio1 == true)
	{
		<?php session_start(); $_SESSION['type'] = 0; ?>
	}
	else if (radio2 == true) 
	{
		<?php session_start(); $_SESSION['type'] = 1; ?>
	}
	else if (radio3 == true)
	{
		<?php session_start(); $_SESSION['type'] = 2; ?>
	}
        window.location="city.php";

}
Lo unico que hace es comprobar cual de los radio buttons mostrados con modalbox se ha seleccionado y en funcion de ello guardo en una variable $_SESSION el valor tomado, y es lo que no me funciona, siempre me coge el ultimo valor que ponga, en este codigo el 2. Luego simplemente recargo la pagina para que se actualicen unos datos y ya esta.

En la cabecera del archivo city.php he puesto esto para comprobar su valor:
Código PHP:
<?php
session_start
();
echo 
$_SESSION['type'];
var_dump$_SESSION['type'] );
?>
y siempre me sale 2!!!

He mirado este enlace: [URL="http://www.forosdelweb.com/f18/explicacion-variable-_session-558403/"]http://www.forosdelweb.com/f18/explicacion-variable-_session-558403/[/URL] y este [URL="http://www.forosdelweb.com/f18/faqs-php-530600/#post238992"]http://www.forosdelweb.com/f18/faqs-php-530600/#post238992[/URL] pero no he encontrado este problema.

Ayuda por favor!

Un saludo y gracias!

Última edición por TheTims; 24/03/2011 a las 13:31
  #2 (permalink)  
Antiguo 24/03/2011, 13:32
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: No se actualiza el valor de variable $_SESSION

Saludos

Por que lo necesitas como un variable de session necesariamente y no lo manejas como un parámetro get?
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 24/03/2011, 13:35
 
Fecha de Ingreso: marzo-2011
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: No se actualiza el valor de variable $_SESSION

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos

Por que lo necesitas como un variable de session necesariamente y no lo manejas como un parámetro get?
Hola Nano_ gracias por responder!

Al principio lo hacia asi, pero luego solo me funcionaba una vez, es dificil de explicarte porque hago mas cosas en el codigo, pero digamos que desplego un menu emergente con Modalbox, y este solo salia la primera vez. Entonces he decidido probar con estas variables.

un saludo!
  #4 (permalink)  
Antiguo 24/03/2011, 13:41
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: No se actualiza el valor de variable $_SESSION

Saludos

Si lo manejas de la siguiente manera.

Código Javascript:
Ver original
  1. function getRadioValue(radio1, radio2, radio3)
  2. {
  3.     Modalbox.hide();
  4.    
  5.     if (radio1 == true)
  6.     {
  7.         tipo=  0;
  8.     }
  9.     else if (radio2 == true)
  10.     {
  11.         tipo=  1;
  12.     }
  13.     else if (radio3 == true)
  14.     {
  15.         tipo= 2;
  16.     }
  17.        var URL = "city.php?type=" + tipo;
  18.         window.location=URL;
  19.  
  20. }

city.php

Código PHP:
Ver original
  1. <?php
  2. $_SESSION['type']=$_GET['type'];
  3. var_dump( $_SESSION['type'] );
  4. ?>
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 24/03/2011, 14:04
 
Fecha de Ingreso: marzo-2011
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: No se actualiza el valor de variable $_SESSION

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos

Si lo manejas de la siguiente manera.

Código Javascript:
Ver original
  1. function getRadioValue(radio1, radio2, radio3)
  2. {
  3.     Modalbox.hide();
  4.    
  5.     if (radio1 == true)
  6.     {
  7.         tipo=  0;
  8.     }
  9.     else if (radio2 == true)
  10.     {
  11.         tipo=  1;
  12.     }
  13.     else if (radio3 == true)
  14.     {
  15.         tipo= 2;
  16.     }
  17.        var URL = "city.php?type=" + tipo;
  18.         window.location=URL;
  19.  
  20. }

city.php

Código PHP:
Ver original
  1. <?php
  2. $_SESSION['type']=$_GET['type'];
  3. var_dump( $_SESSION['type'] );
  4. ?>
Gracias Nano_ lo acabo de probar y me pasa lo mismo, solo me funciona una vez el modalbox, las demas no me sale.
  #6 (permalink)  
Antiguo 25/03/2011, 07:21
 
Fecha de Ingreso: marzo-2011
Mensajes: 17
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: No se actualiza el valor de variable $_SESSION

No estoy muy seguro, pero creo que lo que te pasa es lo siguiente:

En tu página php estás generando la función javascript que quieres controlar, y estás estableciendo el valor de la variable $_SESSION['type'] a distintos valores.

El último de los valores que asignas en la función javascript es el valor 2. Si cambias el 2 por un 15, verás que siempre te dará 15.

Dicho de otra forma, te va a dar siempre el último valor que has asignado a la variable $_SESSION['type'].

¿Que pasa cuando se ejecuta la página en el navegador?
Pues que tienes una función javascript que se ejecuta en local (por ejemplo en el pc que tengo en mi casa y desde el que te estoy escribiendo); y esta máquina local ó navegador no tiene ni idea, no sabe qué significa $_SESSION['type'].

Recuerda que javascript se ejecuta en el navegador (Iexplorer, Mozilla, etc.) mientras que php se ejecuta en el servidor (Apache, IIS, etc.).

Hasta donde yo se, creo que no puedes alterar el valor de ninguna variable del servidor desde javascrit. Debes enviarlo como parámetro ($_GET ó $_POST) y recogerlo en el servidor.

Creo que la solución que te da Nano_ se aproxima bastante a lo que digo.
  #7 (permalink)  
Antiguo 26/03/2011, 05:03
 
Fecha de Ingreso: marzo-2011
Mensajes: 35
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: No se actualiza el valor de variable $_SESSION

Cita:
Iniciado por jvcano Ver Mensaje
No estoy muy seguro, pero creo que lo que te pasa es lo siguiente:

En tu página php estás generando la función javascript que quieres controlar, y estás estableciendo el valor de la variable $_SESSION['type'] a distintos valores.

El último de los valores que asignas en la función javascript es el valor 2. Si cambias el 2 por un 15, verás que siempre te dará 15.

Dicho de otra forma, te va a dar siempre el último valor que has asignado a la variable $_SESSION['type'].

¿Que pasa cuando se ejecuta la página en el navegador?
Pues que tienes una función javascript que se ejecuta en local (por ejemplo en el pc que tengo en mi casa y desde el que te estoy escribiendo); y esta máquina local ó navegador no tiene ni idea, no sabe qué significa $_SESSION['type'].

Recuerda que javascript se ejecuta en el navegador (Iexplorer, Mozilla, etc.) mientras que php se ejecuta en el servidor (Apache, IIS, etc.).

Hasta donde yo se, creo que no puedes alterar el valor de ninguna variable del servidor desde javascrit. Debes enviarlo como parámetro ($_GET ó $_POST) y recogerlo en el servidor.

Creo que la solución que te da Nano_ se aproxima bastante a lo que digo.
Muchas gracias por la respuesta jvcano!

Si me pasa lo que tu me dices, siempre coge el ultimo valor de todos a pesar de estar dentro de "if". Tendre que seguir probandolo de la otra manera a ver si lo consigo.

Muchas gracias otra vez a los 2!!
  #8 (permalink)  
Antiguo 26/03/2011, 19:03
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: No se actualiza el valor de variable $_SESSION

WTF?

Cita:
function getRadioValue(radio1, radio2, radio3)
{
Modalbox.hide();

if (radio1 == true)
{
<?php session_start(); $_SESSION['type'] = 0; ?>
}
else if (radio2 == true)
{
<?php session_start(); $_SESSION['type'] = 1; ?>
}
else if (radio3 == true)
{
<?php session_start(); $_SESSION['type'] = 2; ?>
}
window.location="city.php";

}
El codigo javascript y php no se puede conbinar de esta manera... asi no funcionan las cosas; SESSION solo puede ser ejecutado en lado del server; javascript no puede llamar a $_SESSION.

Etiquetas: session
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 19:30.