Foros del Web » Programando para Internet » PHP »

Me devuelve como valor "Array"

Estas en el tema de Me devuelve como valor "Array" en el foro de PHP en Foros del Web. Hola gente. Estoy tratando de hacer una SESSION_START y tengo un problema. Cuando le pido que me imprima el valor de una variable que se ...
  #1 (permalink)  
Antiguo 31/01/2010, 10:07
 
Fecha de Ingreso: enero-2010
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Me devuelve como valor "Array"

Hola gente.

Estoy tratando de hacer una SESSION_START y tengo un problema. Cuando le pido que me imprima el valor de una variable que se llama "lg", me devuelve como valor "Array", cuando deberia ser o "en" o "es".
Mas abajo imprimo otra variable que se llamar "archivo", que esta formado en una parte por el valor de "lg", y este devuelve el valor bien de lo que es "lg".
Mi pregunta es, porque cuando imprimo "lg" me dice Array?

Codigo:

<?php
session_start();

$_SESSION["idioma_s"] = isset ($_POST["idioma_s"]) ? $_POST["idioma_s"]:"";
$_SESSION["archivo"] = isset ($_POST["archivo"]) ? $_POST["archivo"]:"";
$_SESSION["lg"] = ! empty($_GET['lg'])? $_GET['lg']: NULL;
$_SESSION["HTTP_SESSION_VARS"] = isset ($_POST["HTTP_SESSION_VARS"]) ? $_POST["HTTP_SESSION_VARS"]:"";

if(isset($_GET['lg']) && $_GET['lg']){
$HTTP_SESSION_VARS['idioma_s']=$_GET['lg'];
}
$lg=isset($HTTP_SESSION_VARS['idioma_s'])?htmlentities($HTTP_SESSION_VARS['idioma_s']):"es";

$archivo=file_exists($lg.".inc.php")?$lg.".inc.php ":"es.inc.php";

include($archivo);
echo $lg;
echo $HTTP_SESSION_VARS;
echo $archivo;
?>


Gracias por su tiempo
  #2 (permalink)  
Antiguo 31/01/2010, 10:59
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: Me devuelve como valor "Array"

Porque es un Array
Imprime esto también para ver que tiene dentro:

Código PHP:
print_r($lg); 
Qué hace tu archivo que incluyes?

Un saludo
  #3 (permalink)  
Antiguo 31/01/2010, 11:00
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Me devuelve como valor "Array"

desactiva register globals.

debes usar siempre $_SESSION y no HTTP_SESSION_VARS ya que aparte de ser lo mismo la ultima está obsoleta y las futuras versiones de php no la reconocerán
  #4 (permalink)  
Antiguo 31/01/2010, 11:51
 
Fecha de Ingreso: enero-2010
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Me devuelve como valor "Array"

Gracias por la respuesta de ambos.
La idea del código es que guarde en una SESSION la elección de un idioma, sea ingles o español u otro.
La variable "lg" guarda la elección, usando un "en" o un "es" según lo elegido.
La variable "archivo", levanta el archivo en forma de Array que contiene la traducción.

Cuando imprimo usando
print_r($lg);
sale todo lo que esta en el archivo de traducción. Yo esperaba que salga un "es" o un "en"
Alguna sugerencia?

Gracias
  #5 (permalink)  
Antiguo 31/01/2010, 12:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Me devuelve como valor "Array"

Franchute13, puedes colocar un script de los que contienen las traducciones??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 31/01/2010, 12:56
 
Fecha de Ingreso: enero-2010
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Me devuelve como valor "Array"

No se si entiendo bien lo que pedís pateketrueke
El archivo de traducción tiene:

En español:
es.inc.php

<?php
$lg=array(
"Productos" => "Productos",
"Inicio" => "Inicio",
);
?>

En ingles:
en.inc.php

<?php
$lg = array(
"Productos" => "Products",
"Inicio" => "Home",
);
?>

Esta recortado, pero es así básicamente.

Cuando quiero llamarlo, hago
<?php echo $lg["Inicio"]; ?>

Si esta en ingles, me devuelve HOME y si esta en Español, INICIO.
  #7 (permalink)  
Antiguo 31/01/2010, 13:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Me devuelve como valor "Array"

ahora entiendes porque imprime Array ??

es simple, porque $lg es un array...

si necesitas el nombre del idioma, es por ejemplo, necesitas cambiar el nombre de tu variable....

pues, porque precisamente la estas sobreescribiendo... (:

Código PHP:
// antes de incluir ya la defines con es,en,xx, etc...
$lg=isset($HTTP_SESSION_VARS['idioma_s'])?htmlentities($HTTP_SESSION_VARS['idioma_s']):"es";
$archivo=file_exists($lg.".inc.php")?$lg.".inc.php ":"es.inc.php";
include(
$archivo); // incluyes

// a partir de aqui la definicion que existe en dicho
// script, sobreescribe la variable $lg lo cual
// altera su valor por mero contexto
echo $lg// Array
echo $lg['Inicio']; // Inicio 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 31/01/2010, 13:34
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Me devuelve como valor "Array"

Para lo que quieres puedes simplemente agregar otro elemento al array $lg... $lg['lang'], por ejemplo, que contenga el código del idioma. O definir otra variable $lang dentro del fichero... Posibilidades hay muchas.
  #9 (permalink)  
Antiguo 31/01/2010, 13:36
 
Fecha de Ingreso: enero-2010
Mensajes: 14
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Me devuelve como valor "Array"

Gracias por tu respuesta.!!

Etiquetas: Ninguno
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.