Foros del Web » Programando para Internet » PHP »

PHP + IFrame + multi idioma

Estas en el tema de PHP + IFrame + multi idioma en el foro de PHP en Foros del Web. Hola a todos. Estoy armando una pagina en php, la cual tiene un index.php, un menuIzquierdo.php, bordeSuperior.php y centro.php index llama a las demás y ...
  #1 (permalink)  
Antiguo 14/01/2010, 16:12
 
Fecha de Ingreso: enero-2010
Mensajes: 14
Antigüedad: 14 años, 10 meses
Puntos: 0
PHP + IFrame + multi idioma

Hola a todos.

Estoy armando una pagina en php, la cual tiene un index.php, un menuIzquierdo.php, bordeSuperior.php y centro.php

index llama a las demás y forman una pagina en la cual tanto bordeSuperior o menuIzq, tienen enlaces que cuando los cliqueas, modifican centro.php
Eso esta hecho usando iframe

Todo eso funciona bien.

Ahora quiero hacerle multi lenguaje. Cree una pagina simple en php para probar el sistema que aprendí y funciono. Lo trate de llevar a la pagina que estoy armando y no funciona, yo creo que básicamente es por el problema de los iframes y llevar la variable a centro.php y bordeSuperior.php

bordeSuperior.php es el que tiene los botones de cambio de idioma

index.php le puse esto para el tema del lenguaje

<?php
session_start();

session_register('idioma_s');
if(isset ($lg) && $_GET['lg']){
$HTTP_SESSION_VARS['idioma_s']=$_GET['lg'];
}
$lg=$HTTP_SESSION_VARS['idioma_s'];
if($lg=="es" ||$lg=="en"){
include($lg.".inc.php");
}
else{
$lg="es";include($lg.".inc.php");
}
?>

a bordeSuperior.php le puse esto:

<?php
session_start();

session_register('idioma_s');
if(isset ($lg) && $_GET['lg']){
$HTTP_SESSION_VARS['idioma_s']=$_GET['lg'];
}
$lg=$HTTP_SESSION_VARS['idioma_s'];
if($lg=="es" ||$lg=="en"){
include($lg.".inc.php");
}
else{
$lg="es";include($lg.".inc.php");
}
?>

y para los botones uso esto
...
<td colspan="2" valign="top"><div align="left" class="idiomas"><a href="bordeSuperior.php?lg=es">ESPAÑOL</a> PORTUGUÊS <a href="bordeSuperior.php?lg=en">ENGLISH</a></div></td>
...


estoy tratando de correrlo usando WAMP, cuando busco el localhost, si bien veo la pagina, trato de cambiar el idioma y no funciona. El idioma deberia cambiar en bordeSuperior.php y centro.php
Alguna idea / sugerencia?


Gracias por su tiempo

Fran
  #2 (permalink)  
Antiguo 14/01/2010, 16:36
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: PHP + IFrame + multi idioma

creo que tiene que ver más con la forma en que estás armando tu página.

Dado que lo tienes dentro de iframes, el iframe se cargará con la url que tiene definida, sin las variables GET.

Ahora bien, si tus botones se encuentran también dentro de un iframe, al dar click solo se cargará el iframe donde están los botones y no todo lo demás mmm.

La opción más rápida que se me ocurre es que cambies index.php por esto:

Código:
<?php
session_start();

session_register('idioma_s');
if($_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);

?>
y el otro:
Código:
<?php
session_start();

session_register('idioma_s');
$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);

?>

Te agregué htmlentities para escapar tu variable (nunca sabes quien anda buscando huecos de seguridad) y file_exists para comprobar si el archivo existe en verdad y si no presentar el español como predeterminado.
  #3 (permalink)  
Antiguo 14/01/2010, 17:53
 
Fecha de Ingreso: enero-2010
Mensajes: 14
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: PHP + IFrame + multi idioma

Hola
Antes que nada, gracias por tu respuesta paynalton

me esta tirando un error en la linea

$lg=isset($HTTP_SESSION_VARS['idioma_s'])?htmlentities($HTTP_SESSION_VARS['idioma_s'])):"es";

el error es
Parse error: parse error in ....
como soluciono?

saludos y gracias

Etiquetas: iframe, multi, idiomas
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 08:56.