Foros del Web » Programando para Internet » PHP »

Multilenguaje con cookies

Estas en el tema de Multilenguaje con cookies en el foro de PHP en Foros del Web. Hola a todos, Se que lo que os voy a preguntar lo he visto por el foro, pero no exactamente como yo lo quiero hacer. ...
  #1 (permalink)  
Antiguo 05/03/2007, 05:37
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Multilenguaje con cookies

Hola a todos,

Se que lo que os voy a preguntar lo he visto por el foro, pero no exactamente como yo lo quiero hacer. Quiero que mi web sea multilenguaje mediante cookies. Tengo en cada pantalla 2 imágenes que según las que pulses, te lo pondrá todo en castellano o en inglés. Por defecto, lo tengo en castellano. Todo eso bien.

En home.php si cambias de idioma te lo hace bien. El problema es en el resto de las páginas, que si pulsas en cualquier imagen te vuelve a la inicial (antes de validarse los usuarios) y eso es lo que no quiero. Quiero que se quede en la misma pag. Sé donde está el fallo pero es que no se me ocurre otra idea. Aquí os pongo lo que tengo. Por cierto, NO quiero controlarlo con variables por cabecera, sólo con cookies.

2 ficheros con variables en español y en inglés. Hasta aquí correcto.

En home.php:

Cita:
<?php
if (!$_POST["lang"]) {
$idioma = "ES";
} else {
$idioma = $_POST['lang'];
}

if (empty($_COOKIE["lang"]) || !$_COOKIE["lang"]) {
setcookie("lang", $idioma, time() + 5000);
}

$cook = $_COOKIE["lang"];

if ($cook == "ES") {
include "lang/ES/lang.php";
} else
if ($cook == "EN") {
include "lang/EN/lang.php";
}
?>

<html>
....
....
// En las imágenes, tengo esto:

<a href=" <?php $_SESSION['idioma']= 'ES'; ?> espaniol.php"><img src="../../imagenes/bandera_sp2.jpg" width="26" height="16"></a>

<a href=" <?php $_SESSION['idioma']= 'EN'; ?> english.php"><img src="../../imagenes/bandera_en2.jpg" width="26" height="16"></a>

....
</html>
Y mi problema esta en english.php y en espaniol.php que tengo esto y no se como solucionarlo:

Cita:
english.php
<?php
setcookie("lang", "EN");
header ("location: home.php");
?>

espaniol.php
<?php
setcookie("lang", "ES");
header ("location: home.php");
?>
Alguna idea ??
  #2 (permalink)  
Antiguo 05/03/2007, 05:56
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Multilenguaje con cookies

Para obtener la página actual tienes que servirte del array superglobal $_SERVER. Puedes utilizar el valor HTTP_REFERER para saber de qué pagina has llegado a la actual. Tambien hay otros valores para saber la página actual que no recuerdo ahora mismo. Haz pruebas haciendo un print_r($_SERVER).

Por otro lado, esto que pones aquí no lo entiendo:
Código HTML:
<a href=" <?php $_SESSION['idioma']= 'ES'; ?> espaniol.php"> 
Ese código php se ejecutará siempre. No sólo cuando se pulse el enlace.

Un saludo
  #3 (permalink)  
Antiguo 05/03/2007, 06:07
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Multilenguaje con cookies

Mmmmm me puedes explicar cómo funciona eso de la variable $_SERVER y el valor HTTP_REFERER?? No tengo ni idea, y por otro lado, gracias por decirme eso, porque yo pensaba que sólo se ejecitaba cuando pulsabas.... Entonces, como hago para que sólo se ejecute cuando pulsa??
  #4 (permalink)  
Antiguo 05/03/2007, 06:17
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Multilenguaje con cookies

Cita:
Iniciado por Vane_ Ver Mensaje
Mmmmm me puedes explicar cómo funciona eso de la variable $_SERVER y el valor HTTP_REFERER??
Con $_SERVER["HTTP_REFERER"] obtienes la url de la página de donde vienes (no la actual).
Con $_SERVER["PHP_SELF"] obtienes el nombre de archivo del script ejecutándose actualmente, relativo a la raíz de documentos.
Ya te miraste el enlace que te pasé? Allí sale todo bien documentado.

Cita:
Iniciado por Vane_ Ver Mensaje
Entonces, como hago para que sólo se ejecute cuando pulsa??
Pues haciendo lo que quieras en la url destino. O sea, poner $_SESSION['idioma']= 'ES'; en espaniol.php
  #5 (permalink)  
Antiguo 05/03/2007, 06:29
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Multilenguaje con cookies

hola jerkan !!

De qué enlace me hablas?? Bueno de todos modos voy a probar con lo que me dices y te cuento ok??
  #6 (permalink)  
Antiguo 05/03/2007, 07:03
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Multilenguaje con cookies

Muchas gracias Jerkan !!! Esto ya me funciona !!!
  #7 (permalink)  
Antiguo 05/03/2007, 07:15
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Multilenguaje con cookies

Cita:
Iniciado por Vane_ Ver Mensaje
De qué enlace me hablas??
En mi primer post, hay un $_SERVER con enlace incluido en la primera línea.

Cita:
Iniciado por Vane_ Ver Mensaje
Muchas gracias Jerkan !!! Esto ya me funciona !!!
Me alegro
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 07:26.