Foros del Web » Programando para Internet » PHP »

muy muy cursioso problema con sesiones

Estas en el tema de muy muy cursioso problema con sesiones en el foro de PHP en Foros del Web. Hola gente , estoy montando una web que trabaja con sesiones para seleccionar el idioma del sitio , el tema cursioso es que en local ...
  #1 (permalink)  
Antiguo 01/04/2009, 10:30
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
muy muy cursioso problema con sesiones

Hola gente , estoy montando una web que trabaja con sesiones para seleccionar el idioma del sitio , el tema cursioso es que en local funciona perfectamente , mientras que al subirla a internet no funcionan correctamente las sesiones ; me explico ...

Si cargas la web por primera vez , debe mostrarse en español y crear una sesión $_SESSION['lang']=="spanish" que cambiará si el usuario pincha en la banderita inglesa , este es el cacho de código:

Código:
if ( isset($_GET['lang']) ) 
 $_SESSION['lang']=$_GET['lang'];
 //Por defecto carga spanish la primera vez que se carga la url
if (!isset( $_SESSION['lang']) ) {
$_SESSION['lang']='spanish';
include('languages/spanish.inc.php');
}
 if (isset($_SESSION['lang']) );
include("languages/".$_SESSION['lang'].".inc.php");
El tema es que me imaginé que en mi servidor de inet habría otra versión de php cuando para mi sorpresa era exactamente la misma que mi xampp en local, la PHP 5.2.6 ¿como se explica que no funcione en inet y si en local?. Exactamente lo que sucede es que en inet no me carga por defecto "spanish" como valor de la sesión, es como si la sesión no se creara sin pinchar en las banderitas de los idiomas.
Gracias de antemano.

Última edición por Dundee; 01/04/2009 a las 10:37
  #2 (permalink)  
Antiguo 01/04/2009, 10:39
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: muy muy cursioso problema con sesiones

Haz un phpinfo() de tu servidor local y el de internet, y revisa que directivas son diferentes (las de sessiones claro esta).
  #3 (permalink)  
Antiguo 01/04/2009, 10:50
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: muy muy cursioso problema con sesiones

Cita:
Iniciado por Ronruby Ver Mensaje
Haz un phpinfo() de tu servidor local y el de internet, y revisa que directivas son diferentes (las de sessiones claro esta).
Bueno eso ya lo había hecho para comprobar la versión , ahora lo que he mirado es esto.

Servidor internet:
Session Support :enabled
Registered save handlers : files user sqlite
Registered serializer handlers : php php_binary
session.auto_start: Local Value = off Master Value=off .

Servidor local:
Solo he encontrado una cosa distinta en las directivas de sesiones , y es el tema este:
session.use_trans_sid en el local pone 1 y en el de inet 0
¿sera eso?.

Un saludo
  #4 (permalink)  
Antiguo 01/04/2009, 10:55
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: muy muy cursioso problema con sesiones

Revisa:
session.use_cookies = 1

Esa directiva se encarga de crear una cookie automaticamente con el SESSION ID, de lo contrario tendrias que pasar el session id por URL o activarla.
  #5 (permalink)  
Antiguo 01/04/2009, 10:57
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: muy muy cursioso problema con sesiones

Cita:
Iniciado por Ronruby Ver Mensaje
Revisa:
session.use_cookies = 1

Esa directiva se encarga de crear una cookie automaticamente con el SESSION ID, de lo contrario tendrias que pasar el session id por URL o activarla.
Si session.use_cookies esta en ON , tanto local value como master value.
El tema es que tengo un include que carga según el idioma que se haya seleccionado de esta forma
include("languages/".$_SESSION['lang'].".inc.php");
Pero como la variable no se crea púes no me funciona nada , pero insisto que en local con la misma versión de php y parece ser las mismas directivas de sesiones funciona bien ¿raro no?.

Un saludo
  #6 (permalink)  
Antiguo 01/04/2009, 10:58
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: muy muy cursioso problema con sesiones

Mucho ciudado don esta linea:

$_SESSION['lang']=$_GET['lang'];

es un agujero enorme de la seguridad de tu sitio...!

y peor aun por que luego incluyes la variable que puede tener codigo malicioso en tu

include("languages/".$_SESSION['lang'].".inc.php");
.
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #7 (permalink)  
Antiguo 01/04/2009, 11:08
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: muy muy cursioso problema con sesiones

Cita:
Iniciado por farra Ver Mensaje
Mucho ciudado don esta linea:

$_SESSION['lang']=$_GET['lang'];

es un agujero enorme de la seguridad de tu sitio...!

y peor aun por que luego incluyes la variable que puede tener codigo malicioso en tu

include("languages/".$_SESSION['lang'].".inc.php");
.
Ok estoy de acuerdo , entonces como lo solucionarías tu? , ¿me puedes poner un ejemplo?.

Lo acabo de solucionar así

if ( isset($_GET['lang']) ) {
if($_GET['lang']=="english")
$_SESSION['lang']="english";
else
$_SESSION['lang']="spanish";
}

¿Que opinas?
Gracias de antemano
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 23:27.