Foros del Web » Programando para Internet » PHP »

Redireccionar según idioma

Estas en el tema de Redireccionar según idioma en el foro de PHP en Foros del Web. Quiero redireccionar a una pagina según el idioma en el que se encuentre el navegador,el problema que tengo es que en explorer me va bien ...
  #1 (permalink)  
Antiguo 15/01/2009, 10:59
 
Fecha de Ingreso: diciembre-2007
Mensajes: 200
Antigüedad: 16 años, 4 meses
Puntos: 10
Redireccionar según idioma

Quiero redireccionar a una pagina según el idioma en el que se encuentre el navegador,el problema que tengo es que en explorer me va bien pero en firefox siempre me va al default,alquien sabe porque me pasa esto?

Código PHP:
<?php
if(empty($sitelang)){ 
      
$sitelang getenv("HTTP_ACCEPT_LANGUAGE"); 
      }
switch(
$sitelang){ 
         
         case 
"en" //en = ingles 
             
header ('location:en/index.php');
             break;
         case 
"es" //es = español 
            
$sqls="SELECT * FROM languajes WHERE id_languaje=2";
            
$resultados=mysql_query($sqls,$idcon);
            
$filas=mysql_fetch_assoc($resultados);
            if(
$filas['activo']=='si'){
            
header ('location:es/index.php');
            }else{
            
header ('location:en/index.php');
            }
             break;
         case 
"it" //it = italiano 
            
$sqls="SELECT * FROM languajes WHERE id_languaje=3";
            
$resultados=mysql_query($sqls,$idcon);
            
$filas=mysql_fetch_assoc($resultados);
            if(
$filas['activo']=='si'){
            
header ('location:it/index.php');
            }else{
            
header ('location:en/index.php');
            }
             break;
         case 
"ch-cn" //ch-cn = chino 
             
$sqls="SELECT * FROM languajes WHERE id_languaje=4";
            
$resultados=mysql_query($sqls,$idcon);
            
$filas=mysql_fetch_assoc($resultados);
            if(
$filas['activo']=='si'){
            
header ('location:cn/index.php');
            }else{
            
header ('location:en/index.php');
            }
             break;
          default :
              
header ('location:en/index.php'); 
             break;
       } 

?>
  #2 (permalink)  
Antiguo 15/01/2009, 11:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Redireccionar según idioma

Mmmm en lugar de getenv, trata de usar $_SERVER, creo por ahi puede ir el problema

Saludos.
  #3 (permalink)  
Antiguo 15/01/2009, 11:21
 
Fecha de Ingreso: diciembre-2007
Mensajes: 200
Antigüedad: 16 años, 4 meses
Puntos: 10
Respuesta: Redireccionar según idioma

He reemplazado conforme me has dicho usando $_server,pero me sigue pasando lo mismo en firefox se va a version en/
Código PHP:
$sitelang $_SERVER['HTTP_ACCEPT_LANGUAGE']; 
  #4 (permalink)  
Antiguo 15/01/2009, 12:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Redireccionar según idioma

Mmm creo el problema es este:
Código php:
Ver original
  1. if(empty($sitelang)){
  2.       $sitelang = getenv("HTTP_ACCEPT_LANGUAGE");
  3.       }
  4. switch($sitelang){

Cuando entras a la pagina, donde defines $sitelang? si no siempre se va a ir por adentro del if, tambien trata de hacer un var_dump($_SERVER) para que veas que variables te da Firefox y que variables IE.

Saludos
  #5 (permalink)  
Antiguo 16/01/2009, 09:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 200
Antigüedad: 16 años, 4 meses
Puntos: 10
Respuesta: Redireccionar según idioma

Creo que voy mas perdido que todas las cosas,imprimo los datos que me ha dado del server
en explorer
Código PHP:
["HTTP_ACCEPT_LANGUAGE"]=> string(2"es" 
en firefox
Código PHP:
["HTTP_ACCEPT_LANGUAGE"]=>  string(35"es-es,es;q=0.8,en-us;q=0.5,en;q=0.3" 
Me da distintos español e ingles pero no se porque me da ingles el firefox.

No defino $sitelang porque quiero que la coja podria quitar el if y dejarlo directamente en

Código PHP:
$sitelang getenv("HTTP_ACCEPT_LANGUAGE"); 
Pero no se como plantearlo,para hallar la solución
  #6 (permalink)  
Antiguo 18/01/2009, 11:23
 
Fecha de Ingreso: diciembre-2007
Mensajes: 200
Antigüedad: 16 años, 4 meses
Puntos: 10
Respuesta: Redireccionar según idioma

uhmm no se como solucionarlo
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 17:56.