Foros del Web » Programando para Internet » PHP »

Utilización del $_SESSION dentro de un require_once

Estas en el tema de Utilización del $_SESSION dentro de un require_once en el foro de PHP en Foros del Web. Buenas a todos!! Estoy experimentando un problemilla con la utilización del arreglo $_SESSION dentro de un archivo que es cargado mediante require_once. Para explicarlo específicamente ...
  #1 (permalink)  
Antiguo 29/07/2010, 09:02
 
Fecha de Ingreso: junio-2010
Mensajes: 12
Antigüedad: 14 años, 5 meses
Puntos: 0
Utilización del $_SESSION dentro de un require_once

Buenas a todos!! Estoy experimentando un problemilla con la utilización del arreglo $_SESSION dentro de un archivo que es cargado mediante require_once.
Para explicarlo específicamente tengo el archivo index.php en donde declaro:
$_SESSION["idioma"] = "es";

luego más adelante...tengo un:
require_once("header.php");

Donde en este archivo header.php hago el uso de $_SESSION["idioma"]:
$idiomaSeleccionado = $_SESSION["idioma"];
(Acá va la declaración de los arreglos $textos_en y $textos_es en donde ambos tienen como índice el texto "nombre_empresa")
$textos = array("en" => $textos_en, "es" => $textos_es);
.
.
.
<?php echo $textos[$idiomaSeleccionado]["nombre_empresa"]; ?>

Lo que ocurre con esto es que lo subí en un servidor de nuestro proveedor (con PHP versión 5.2.11) y anda perfecto.... pero en el servidor ******** que es el de mi cliente (con versión PHP 5.1.2) no se visualiza (tampoco salta error y tiene display error).

Tienen idea de qué es lo que puede estar fallando? será que no puedo utilizar variables de sesión dentro de un archivo llamado con require? cómo podría solucionar esto?

Desde ya muchas gracias amigos
  #2 (permalink)  
Antiguo 29/07/2010, 11:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Utilización del $_SESSION dentro de un require_once

no existen restricciones del tipo que piensas....

sin embargo, no puedes usar deliberadamente $_SESSION solo porque se te antoja... dicha variable esta diseñada para algo, y debes inicializar la sesión con session_start() en todas tus paginas donde desees emplearla... ;)

no estaría mal leer un poco del manual:
http://www.php.net/manual/en/features.sessions.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/07/2010, 15:25
 
Fecha de Ingreso: junio-2010
Mensajes: 12
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Utilización del $_SESSION dentro de un require_once

Cita:
Iniciado por pateketrueke Ver Mensaje
no existen restricciones del tipo que piensas....

sin embargo, no puedes usar deliberadamente $_SESSION solo porque se te antoja... dicha variable esta diseñada para algo, y debes inicializar la sesión con session_start() en todas tus paginas donde desees emplearla... ;)

no estaría mal leer un poco del manual:
[url]http://www.php.net/manual/en/features.sessions.php[/url]

No hago uso deliberado del arreglo $_SESSION, pongo como corresponde al principio del archivo (antes de cualquier impresión de texto o etiqueta HTML, como dice el manual) <?php session_cache_limiter("private_no_expire_"); session_cache_limiter(); session_start();?>

Por alguna razón puedo usar tranquilamente $_SESSION["idioma"] en index.php pero al intentar utilizarla en header.php ésta no está declarada, tengo que volver a darle un valor si la quiero usar (que no es la idea).
  #4 (permalink)  
Antiguo 29/07/2010, 15:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Utilización del $_SESSION dentro de un require_once

¿puedes mostrar el código del header?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/07/2010, 16:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Utilización del $_SESSION dentro de un require_once

Revisa si register_globals esta en on, me acaba de pasar hace poco que termine una web y la subi en el servidor del cliente, no funcionaban mis scripts por culpa de esa directiva.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 29/07/2010, 16:42
Avatar de esdebon  
Fecha de Ingreso: agosto-2008
Ubicación: México
Mensajes: 167
Antigüedad: 16 años, 3 meses
Puntos: 18
Respuesta: Utilización del $_SESSION dentro de un require_once

Me ha pasado algo similar, y esa vez tenia que ver con la declaracion en el header. Si declaras algo en el header y luego "escribes" algo en la pantalla no puedes seguir escribiendo en el header.

La segunda variable de sesión seguramente se esta declarando despues de que algo se imprimio, y por eso no la agarra en algunos servidores, pero si en otros que no tiene habilitado el "modo estricto".
  #7 (permalink)  
Antiguo 29/07/2010, 18:11
 
Fecha de Ingreso: junio-2010
Mensajes: 12
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Utilización del $_SESSION dentro de un require_once

Cita:
Iniciado por pateketrueke Ver Mensaje
¿puedes mostrar el código del header?
Si claro, con mucho gusto, es este:

<!--inicia div menu -->
<?php
//Declaro la variable idiomaSeleccionado:
$idiomaSeleccionado = $_SESSION["idioma"];
//Cargo el arreglo correspondiente al idioma seleccionado:
$menu_en = array(
"inicio" => "Home",
"empresa" => "Company",
"promociones" => "Promotions",
"pais" => "Country",
"internacional" => "International",
"caribe" => "Centroamerica and The Caribean",
"europa" => "Europe",
"otros" => "Other countries",
"cruceros" => "Cruceros",
"contacto" => "Contact",
"planes" => "Plans",
"excursiones" => "Excursions");

$menu_es = array(
"inicio" => "Inicio",
"empresa" => "La empresa",
"promociones" => "Promociones",
"pais" => "Pa&iacute;s",
"internacional" => "Internacional",
"caribe" => "Centroam&eacute;rica y El Caribe",
"europa" => "Europa",
"otros" => "Otros pa&iacute;ses",
"cruceros" => "Cruceros",
"contacto" => "Contacto",
"planes" => "Planes",
"excursiones" => "Excursiones");

$menu = array("en" => $menu_en, "es" => $menu_es);

//Cargo el menú:
if ($idiomaSeleccionado == "es")
echo '<div class="menu menu_es">';
else
echo '<div class="menu menu_en">';
?>

<?php require_once("menu.php"); ?>
</div>
<!--cierra div menu -->

En ese archivo se puede notar cómo hago uso del $_SESSION["idioma"], que supuestamente tiene como valor: "es" que se lo cargo en index.php... e index.php llama a header.php con un require.


Desde ya muchas muchas gracias por su ayuda y estar siempre!!
  #8 (permalink)  
Antiguo 29/07/2010, 18:24
 
Fecha de Ingreso: junio-2010
Mensajes: 12
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Utilización del $_SESSION dentro de un require_once

Cita:
Iniciado por esdebon Ver Mensaje
Me ha pasado algo similar, y esa vez tenia que ver con la declaracion en el header. Si declaras algo en el header y luego "escribes" algo en la pantalla no puedes seguir escribiendo en el header.

La segunda variable de sesión seguramente se esta declarando despues de que algo se imprimio, y por eso no la agarra en algunos servidores, pero si en otros que no tiene habilitado el "modo estricto".

Eso es! por eso en un servidor se me veía bien y en el otro no, porque uno estaba en modo estricto y el otro no, y yo estaba declarando las variables de sesión luego de la etiqueta html sin haberme dado cuenta, qué torpe, muchas gracias a todos, ahora ya sé que no sólo session_start debe ir antes de cualquier etiqueta sino que las declaraciones de variables en $_SESSION también...!

Espero este post sirva de ayuda para otra gente jeje, muchas gracias de nuevo a todos.

Etiquetas: require, utilizacion, _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 01:13.