Foros del Web » Programando para Internet » PHP »

problemas al escoger idiomas

Estas en el tema de problemas al escoger idiomas en el foro de PHP en Foros del Web. Hola, tengo una página a la que quiero poner un menú para que los usuarios escogan su idioma. En la página de cabecera tengo esto ...
  #1 (permalink)  
Antiguo 09/08/2011, 10:28
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
problemas al escoger idiomas

Hola, tengo una página a la que quiero poner un menú para que los usuarios escogan su idioma.
En la página de cabecera tengo esto
Código PHP:
<center>
<a href="index.php?lang=es"><img src="images/espa.jpeg"></a>
<a href="index.php?lang=en"><img src="images/eng.jpeg"></a>
</center>
<?
session_name
("sesiondirh");
session_start();
if(isset(
$_GET['lang']))
  {
  
$lang=$_GET['lang'];
  }
  else
    {
    if(isset(
$_COOKIE['lang']))
      {
      
$lang=$_COOKIE['lang'];
      }else {
            
setcookie("lang""en"time() + 31536000);
            
$lang=$_COOKIE['lang'];
            }
    }

$lang="lang/".$lang.".php";
include 
"$lang";
y luego incluyo la página de cabecera en todos los archivos así
Código PHP:
include ("cabecera.php"); 
cuando pulsan en la imagen, los lleva a index.php, y al cargar index se carga la cabecera, que cambiará el idioma.
Pues en el index si me funciona, pero después de cambiarlo por ejemplo a español, abro la página login(que también contiene el archivo de cabecera) y no me aparece en español sino en inglés.

No encuentro el problema, en la cabecera, si no hay la cookie lang, la crea con idioma inglés, pero si la hay, ¿por que al ir a login no la reconoce?
Gracias
  #2 (permalink)  
Antiguo 09/08/2011, 11:46
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: problemas al escoger idiomas

ya he encontrado la solución.

en index me funciona, porque la variable lang si contiene el idioma escogido.
Pero solo creaba una cookie cuando no existia, y si el usuario cambiaba de idioma no se creaba la cookie, por eso siempre se me cambiaba a inglés.

Así que solo con ponerlo así
Código PHP:
if(isset($_GET['lang']))
  {
  
$lang=$_GET['lang'];
 
setcookie("lang""$lang"time() + 31536000);
  }
  else
    {
    if(isset(
$_COOKIE['lang']))
      {
      
$lang=$_COOKIE['lang'];
      }else {
            
setcookie("lang""en"time() + 31536000);
            
$lang=$_COOKIE['lang'];
            }
    }

$lang="lang/".$lang.".php";
include 
"$lang"
y listo.
Un saludo a todos

Etiquetas: idiomas, usuarios
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 06:16.