Foros del Web » Programando para Internet » PHP »

Problema con array multidimensional

Estas en el tema de Problema con array multidimensional en el foro de PHP en Foros del Web. Hola a todos, Finalmente me veo obligado a tirar de foro... pero ya llevo demasiado rato dandole vueltas .oO(como para perder la cordura jajajajajja ). ...
  #1 (permalink)  
Antiguo 27/11/2007, 17:17
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Pregunta Problema con array multidimensional

Hola a todos,

Finalmente me veo obligado a tirar de foro... pero ya llevo demasiado rato dandole vueltas .oO(como para perder la cordura jajajajajja ). Os explico:

Estoy realizando un sistema multiidiomas. Por un lado tengo el archivo con el defino el texto en diferentes idiomas de la siguiente manera:

Código PHP:
$texto["es"][0]="Portada";
$texto["en"][0]="Home"
...etc

Efectuo el control de la selección del idioma mediante una cookie, en la que se almacena correctamente el contenido de la variable. Pero al efectuar la salida del texto tengo un problema... NO SALE NADA!!! xD

La variable "$lang" esta definida por el contenido de la cookie, el contenido de la cookie es correcto (confirmado). Si substituyo la variable $lang por cualquiera de sus valores validos, tampoco me imprime el texto... asi que el problema debe de estar ..... AQUI

Código PHP:
echo $texto[$lang][1]; 
Estoy convencido que sera una tonteria, pero la verdad es que ... NO LO VEO!

Gracias y saludos!

Última edición por popobcn; 27/11/2007 a las 17:37 Razón: Errorç
  #2 (permalink)  
Antiguo 27/11/2007, 17:48
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Problema con array multidimensional

Pues el detalle estaria en porque usas el indice 1? cuando la información se encuentra en el indice 0

es decir

Código PHP:
echo $texto[$lang][0]; 
  #3 (permalink)  
Antiguo 27/11/2007, 18:27
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Problema con array multidimensional

Hola Mauled,

HA sido un error de transcripción. El indice [0] contiene valores, al igual que el [1]. Pero me parece que el error esta en otro lugar... Acabo de cambiar lo siguiente:

Código PHP:
$texto["es"][0]="Pordada"
por --->

Código PHP:
$texto[10][0]="Pordada"
Y ahora funciona correctamente.... Por qué? Lo desconozco aún la verdad.

Gracias y saludos
  #4 (permalink)  
Antiguo 27/11/2007, 18:53
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: Problema con array multidimensional

Seria cuestion de que mostraras como inicializas tu variable $lang.

Saludillos.
  #5 (permalink)  
Antiguo 27/11/2007, 19:08
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 17 años, 5 meses
Puntos: 1142
Re: Problema con array multidimensional

Creo que me estoy liando yo solo... a ver si puedes echarme un cable! Estoy traspasando el valor de la variable $lang mediante un enlace de selección de idioma tipo

Código HTML:
<a href="index.php?&lang=es">Español<a> 
E intento controlar el contenido de la variable según se traspase o no en la carga de cualquier página, con el fin de mostrar el contenido en el idioma correspondiente. Para ello, almaceno en una cookie el valor traspasado de ·$lang y en caso contrario, capturo el valor de $lang en la cookie de tal manera:

Código PHP:
if(isset($HTTP_COOKIE_VARS["lang"])){
    
$lang2=$HTTP_COOKIE_VARS["hostal_lang"];
    if(
$lang!=$lang2){
        if(
$lang=="es"){$lang=10;}if($lang=="ca"){$lang=11;}if($lang=="en"){$lang=12;}if($lang=="fr"){$lang=13;}if($lang=="ar"){$lang=14;}
        unset(
$_COOKIE['lang']);
        
setcookie("lang",$lang,time()+7776000);
    }else{
        
$lang=$HTTP_COOKIE_VARS["lang"];
    }
}else{
    if(
$lang==""){
        
$lang=10;
        
setcookie("lang",$lang,time()+7776000);
    }else{

        if(
$lang=="es"){$lang=10;}if($lang=="ca"){$lang=11;}if($lang=="en"){$lang=12;}if($lang=="fr"){$lang=13;}if($lang=="ar"){$lang=14;}
        unset(
$_COOKIE['lang']);
        
setcookie("lang",$lang,time()+7776000);
    }


Si ahora parece que si mostraba el texto en llamadas directas, cuando cambio de página, al efectuar o no el cambio de idioma mediante los enlaces, me muestra algunas veces sí y otras no el contenido (cuando actualizo la página si no se mostraba el contenido, posteriormente si.)

Conclusion: Estoy más PERDIDO, ESTANCADO :s

Saludos

Saludos.
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 07:38.