Buenas, hace mas de un día que estoy renegando con un sitio multilenguaje y las cookies sin tener resultados, así que acudo a la ayuda del foro
La cuestión es así estoy creando un sitio cuya pagina de inicio son fotos de 3 banderas:
Código HTML:
Ver original <li><a href="<?php echo 'en/'.$url->urlAmigables('index.php?controlador=inicio',1);?>" title="Enter">
<img src="<?php echo $config->get('template')?>/images/United-Kingdom.png" alt="Enter" width="78" height="78" />
</a></li> <li><a href="<?php echo 'es/'.$url->urlAmigables('index.php?controlador=inicio',1);?>" title="Entrar">
<img src="<?php echo $config->get('template')?>/images/Spain.png" alt="Entrar" width="78" height="78" />
</a></li> <li><a href="<?php echo 'fr/'.$url->urlAmigables('index.php?controlador=inicio',1);?>" title="Entre
é">
<img src="<?php echo $config->get('template')?>/images/France.png" alt="Entre
é" width="78" height="78" />
</a></li>
los link quedan asi:
http://xxxx/es/inicio.php http://xxxx/en/inicio.php http://xxxx/fr/inicio.php
la idea es que esta pagina se muestre 1 sola vez al usuario una vez que selecciona en que idioma la quiere ver, se guarda la seleccion en una cookie y cada vez que vuelve a entrar verifique si existe la cookie y lo redireccione a la version que habia seleccionado y quedo guardada en la cookie.
Bien para hacer esto intento usar el siguiente codigo:
Código PHP:
Ver original//cargo el lenguaje del sistema
if($config->get('multi')==1) {
$leng = Language::singleton();
$leng->get_session_handler();
$idiomaActual = $config->get('lenguaje');
if(!empty($_GET['leng'])){ }
$_SESSION['leng'] = $idiomaActual;
if(isset($_GET['leng']) && !isset($_COOKIE['apolo_leng'])) { $idiomaActual = $_GET['leng'];
$_SESSION['leng'] = $_GET['leng'];
}
elseif(isset($_COOKIE['apolo_leng'])) { if(file_exists($config->get('root')."/lenguajes/".$_COOKIE['apolo_leng'].".php")) { $idiomaActual = $_COOKIE['apolo_leng'];
$_SESSION['leng'] = $idiomaActual;
}
}
elseif(!isset($_COOKIE['apolo_leng']) && !isset($_GET['leng'])) { if(file_exists($config->get('root')."/lenguajes/".$_SESSION['leng'].".php")) { $idiomaActual = $_SESSION['leng'];
}
}
// Incluimos el archivo del idioma seleccionado
// o el archivo por defecto si no se seleccionó
// idioma o si no se encuentra el archivo
include $config->get('root')."/lenguajes/".$idiomaActual.".php";
}
cuando se entra por primera vez al sitio va a
http://xxx/ y me muestra las 3 banderas. El problema esta que por ejemplo entro a la versión en frances y la cookie me guarda el valor "fr", pero si vuelvo a
http://xxx/ se queda ahí como si no existiera la cookie, hago un print_r($_COOKIE) y lo unico que sale es:
Código:
Array
(
[PHPSESSID] => 388de2710adb342ab4899998f64962b0
)
el codigo de la pagina de las banderas es:
Código PHP:
Ver originalclass indexController extends Controller {
public function index(){
if(isset($_COOKIE['apolo_leng'])){ $this->Utilidades->redirect($_COOKIE['apolo_leng'].'/inicio.php');
}
else{
$this->Vistas->show('index.html',$data);
}
}
}
?>
ya estoy loco porque no se como solucionarlo, si alguien me puede dar una mano estaré eternamente agradecido.....