Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/09/2011, 14:05
bruno911
 
Fecha de Ingreso: mayo-2004
Mensajes: 102
Antigüedad: 20 años
Puntos: 5
Pregunta Problemas con cookies,multilenguaje y GET

Hola a tod@s!!
No se, tal vez sea porque llevo ya mas de 16 horas programando, que no logro ver el error en este codigo.
Practicamente, tengo una pagina en 5 idiomas, una parte de la traduccion esta en la base de datos, digamos la parte dinamica mientras que la parte estatica esta en files, con define('','')

Este es el script:

Código PHP:
if(isset($_GET['lang'])){
$elidiomamanual $_GET['lang'];
switch(
$elidiomamanual){
case 
"es" //es = español 
         
$elidioma "es";
             
setcookie('md4s_idioma'$elidioma);
             include(
"lang/es.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
          
break;
          case 
"en" //en = ingles 
          
$elidioma "en";
                       
setcookie('md4s_idioma'$elidioma);
              include(
"lang/eng.php");
          break;
          case 
"it" //it = italiano 
                       
setcookie('md4s_idioma'$elidioma);
          
$elidioma "it";
             include(
"lang/it.php");
          break;
           case 
"fr" //it = italiano 
           
$elidioma "fr";
                        
setcookie('md4s_idioma'$elidioma);
             include(
"lang/fr.php");
          break;
          case 
"pt" //pt = portugues 
                       
setcookie('md4s_idioma'$elidioma);
          
$elidioma "pt";
             include(
"lang/pt.php");
          break;
             
          default :
          
$elidioma "en";
               
setcookie('md4s_idioma'$elidioma);
             include(
"lang/eng.php"); //cargamos un idioma por defecto si no se encontro algun idioma 
             
break;
    }
//define lenguaje
if(isset($_COOKIE['md4s_idioma'])){
$elidiomita $_COOKIE['md4s_idioma'];
    switch(
$elidiomita){
case 
"es" //es = español 
$elidioma "es";
include(
"lang/es.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
break;
      
case 
"en" //en = ingles 
$elidioma "en";
include(
"lang/eng.php");
break;

case 
"it" //it = italiano 
$elidioma "it";
include(
"lang/it.php");
break;

case 
"fr" //it = italiano 
$elidioma "fr";
include(
"lang/fr.php");
break;
         
case 
"pt" //pt = portugues 
$elidioma "pt";
include(
"lang/pt.php");
break;
             
default :
$elidioma "en";
include(
"lang/eng.php"); //cargamos un idioma por defecto si no se encontro algun idioma 
break;
}
}else{
    if(empty(
$elidiomita)){        
    
$sitelang getenv("HTTP_ACCEPT_LANGUAGE"); // si esta vacia sacamos el lenguage del visitante y lo ponemos en la variable $sitelang
    
$sitelang substr($sitelang02);
    
session_start(setcookie('md4s_idioma'$sitelang));//guarda la cookie automaticamente con el idioma
    
switch($sitelang){
             case 
"es" //es = español 
             
$elidioma "es";
             include(
"lang/es.php"); //ahora cargamos el archivo que contiene las variables y sus palabras
          
break;
          case 
"en" //en = ingles 
          
$elidioma "en";
              include(
"lang/eng.php");
          break;
          case 
"it" //it = italiano 
          
$elidioma "it";
             include(
"lang/it.php");
          break;
           case 
"fr" //it = italiano 
           
$elidioma "fr";
             include(
"lang/fr.php");
          break;
          case 
"pt" //pt = portugues 
          
$elidioma "pt";
             include(
"lang/pt.php");
          break;
             
          default :
          
$elidioma "en";
             include(
"lang/eng.php"); //cargamos un idioma por defecto si no se encontro algun idioma 
             
break;
    }    
    }    
    }

    
//guarda la cookie segun selecciona el usuario con el idioma
    

Entonces que hace este script?
-Si llega el lenguaje por GET, crea una cookie, incluye el file del idioma que se y le da el valor a una variable con el idioma ejemplo es, it, fr,en o pt.
-Si el cookie existe toma el valor del cookie y incluye el file del idioma y le da el valor a la variable.
-Encambio si no llega por GET y la cookie no existe, lo toma automaticamente seleccionando los dos primeros caracteres del idioma del navegador, agrega el file y crea la cookie.

Entonces el problema: al iniciar la web no carga nada, si clicko y envio por get se carga el idioma pero al cambiar de pagina en las siguientes no hay ningun idioma definido. No se si el problema seran los if, o la creacion de la cookie.
Alguien tiene idea de que puede ser?
Desde ya muchas gracias por cualquier ayuda!
__________________
Bruno Quintana