Foros del Web » Programando para Internet » PHP »

Guardar idioma de inicio en una cookie

Estas en el tema de Guardar idioma de inicio en una cookie en el foro de PHP en Foros del Web. Hola amigos del foro, quiero hacerles una consulta a ver si alguien sabe decirme como hacer. Supongo que lo que necesito hacer es simple, pero ...
  #1 (permalink)  
Antiguo 20/05/2011, 20:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Guardar idioma de inicio en una cookie

Hola amigos del foro, quiero hacerles una consulta a ver si alguien sabe decirme como hacer.
Supongo que lo que necesito hacer es simple, pero no logro descifrar como hacerlo.
Lo que quiero hacer es simplemente esto, estoy haciendo una web en la cual el index esta en ingles, pero quiero que si el usuario clickea en español, en su proxima visita se cargue automaticamete la pagina en español sin que tenga que clickear cada vez que ingrese, y obviamente lo mismo pero a la inversa.
Desde ya muchas gracias, saludos, Ariel
  #2 (permalink)  
Antiguo 20/05/2011, 21:55
 
Fecha de Ingreso: mayo-2011
Ubicación: Guadalupe, N.L, México
Mensajes: 45
Antigüedad: 13 años
Puntos: 6
Respuesta: Guardar idioma de inicio en una cookie

Código PHP:
Ver original
  1. $lenguaje="español";
  2. setcookie("lenguaje",$lenguaje,time()+7776000);
Cokie para 90 días.
¿como designar valores?:
setcookie("aqui pones como se llama el cookie",$ruta de donde se recoje la info,time()+aqui pones tiempo en segundos;
Para reconocer el cookie basta con este codigo:
Código PHP:
Ver original
  1. $HTTP_COOKIE_VARS["lenguaje"];
Un ejemplo de como reconocer la cookie si está en español:
Código PHP:
Ver original
  1. if($HTTP_COOKIE_VARS["lenguaje"]!="español"){
  2. //Si $HTTP_COOKIE_VARS no es igual a español, mostramos este mensaje
  3. echo "Lenguaje en inglés:";}else{
  4. //Si $HTTP_COOKIE_VARS es igual a español, mostramos este mensaje
  5. echo "lenguaje en español:";
  6. }
¿entendido?
Pagina de ayuda por si acaso:
http://www.original-design.es/tutoriales/Crear_usar_cookies_php.php
EJEMPLO:
index.php
Código PHP:
Ver original
  1. <?php
  2. echo "<a href='español.php'>Español</a>";
  3. if($HTTP_COOKIE_VARS["lenguaje"]!="español"){
  4. //Si $HTTP_COOKIE_VARS no es igual a español, mostramos este mensaje
  5. echo "Lenguaje en inglés:";}else{
  6. //Si $HTTP_COOKIE_VARS es igual a español, mostramos este mensaje
  7. echo "lenguaje en español:";
  8. }
  9. ?>

español.php
Código PHP:
Ver original
  1. <?php
  2. //damos valor a $lenguaje a ESPAÑOL
  3. $lenguaje="español";
  4. //Creamos la cookie de 90 dias segun los segundos.
  5. setcookie("lenguaje",$lenguaje,time()+7776000);
  6. //lo redireccionamos
  7. header("Location:index.php");
  8. ?>

Y si es sencillo, verdad que si. Solo falta practica en esto......
Los codigos ya fueron probados y me funcionaron. Las cookies se guardan en la PC pero si cambias de PC entonces tendras que dar clic otra vez en ESPAÑOL para declararlas otra vez.

Última edición por tete_de; 20/05/2011 a las 22:11
  #3 (permalink)  
Antiguo 21/05/2011, 12:34
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Guardar idioma de inicio en una cookie

antes que nada mil gracias por toda la explicacion detallada y por tomarte el tiempo en hacerlo
despues me siento tranqui a ponerlo en practica y te cuento ke onda, como va eso.
un abrazo y muchas gracias
ariel
Cita:
Iniciado por tete_de Ver Mensaje
Código PHP:
Ver original
  1. $lenguaje="español";
  2. setcookie("lenguaje",$lenguaje,time()+7776000);
Cokie para 90 días.
¿como designar valores?:
setcookie("aqui pones como se llama el cookie",$ruta de donde se recoje la info,time()+aqui pones tiempo en segundos;
Para reconocer el cookie basta con este codigo:
Código PHP:
Ver original
  1. $HTTP_COOKIE_VARS["lenguaje"];
Un ejemplo de como reconocer la cookie si está en español:
Código PHP:
Ver original
  1. if($HTTP_COOKIE_VARS["lenguaje"]!="español"){
  2. //Si $HTTP_COOKIE_VARS no es igual a español, mostramos este mensaje
  3. echo "Lenguaje en inglés:";}else{
  4. //Si $HTTP_COOKIE_VARS es igual a español, mostramos este mensaje
  5. echo "lenguaje en español:";
  6. }
¿entendido?
Pagina de ayuda por si acaso:
http://www.original-design.es/tutori...ookies_php.php
EJEMPLO:
index.php
Código PHP:
Ver original
  1. <?php
  2. echo "<a href='español.php'>Español</a>";
  3. if($HTTP_COOKIE_VARS["lenguaje"]!="español"){
  4. //Si $HTTP_COOKIE_VARS no es igual a español, mostramos este mensaje
  5. echo "Lenguaje en inglés:";}else{
  6. //Si $HTTP_COOKIE_VARS es igual a español, mostramos este mensaje
  7. echo "lenguaje en español:";
  8. }
  9. ?>

español.php
Código PHP:
Ver original
  1. <?php
  2. //damos valor a $lenguaje a ESPAÑOL
  3. $lenguaje="español";
  4. //Creamos la cookie de 90 dias segun los segundos.
  5. setcookie("lenguaje",$lenguaje,time()+7776000);
  6. //lo redireccionamos
  7. header("Location:index.php");
  8. ?>

Y si es sencillo, verdad que si. Solo falta practica en esto......
Los codigos ya fueron probados y me funcionaron. Las cookies se guardan en la PC pero si cambias de PC entonces tendras que dar clic otra vez en ESPAÑOL para declararlas otra vez.
  #4 (permalink)  
Antiguo 21/05/2011, 13:23
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Guardar idioma de inicio en una cookie

sabes que estuve probando de la forma que me dijiste y no funciona, o sea, primero ingreso al index, que esta en ingles, y clickeo en el link español y cierro el explorer y cuando abro nuevamente la pagina abre de nuevo en el index que esta en ingles.
tambien probe poniendo este codigo, pero no funciono:

Código PHP:
<?php 
session_start
();
$_COOKIE['neighbors'];
$_COOKIE['español']; // llamo a la cookie en español
$_COOKIE['english']; // llamo a la cookie en ingles

if (isset($_COOKIE['english'])) //si existe la cookie en ingles que haga esto
{
echo 
"english";
}
else 
// si existe anteriormente una cookie en español que haga esto
{
echo 
"español";
}

$lenguaje"english";

setcookie("english",$lenguaje ,time()+31536000"/"); //creo la cookie en ingles
unset($_COOKIE['español']); // borro la cookie en español


?>
Cita:
Iniciado por tete_de Ver Mensaje
Código PHP:
Ver original
  1. $lenguaje="español";
  2. setcookie("lenguaje",$lenguaje,time()+7776000);
Cokie para 90 días.
¿como designar valores?:
setcookie("aqui pones como se llama el cookie",$ruta de donde se recoje la info,time()+aqui pones tiempo en segundos;
Para reconocer el cookie basta con este codigo:
Código PHP:
Ver original
  1. $HTTP_COOKIE_VARS["lenguaje"];
Un ejemplo de como reconocer la cookie si está en español:
Código PHP:
Ver original
  1. if($HTTP_COOKIE_VARS["lenguaje"]!="español"){
  2. //Si $HTTP_COOKIE_VARS no es igual a español, mostramos este mensaje
  3. echo "Lenguaje en inglés:";}else{
  4. //Si $HTTP_COOKIE_VARS es igual a español, mostramos este mensaje
  5. echo "lenguaje en español:";
  6. }
¿entendido?
Pagina de ayuda por si acaso:
http://www.original-design.es/tutori...ookies_php.php
EJEMPLO:
index.php
Código PHP:
Ver original
  1. <?php
  2. echo "<a href='español.php'>Español</a>";
  3. if($HTTP_COOKIE_VARS["lenguaje"]!="español"){
  4. //Si $HTTP_COOKIE_VARS no es igual a español, mostramos este mensaje
  5. echo "Lenguaje en inglés:";}else{
  6. //Si $HTTP_COOKIE_VARS es igual a español, mostramos este mensaje
  7. echo "lenguaje en español:";
  8. }
  9. ?>

español.php
Código PHP:
Ver original
  1. <?php
  2. //damos valor a $lenguaje a ESPAÑOL
  3. $lenguaje="español";
  4. //Creamos la cookie de 90 dias segun los segundos.
  5. setcookie("lenguaje",$lenguaje,time()+7776000);
  6. //lo redireccionamos
  7. header("Location:index.php");
  8. ?>

Y si es sencillo, verdad que si. Solo falta practica en esto......
Los codigos ya fueron probados y me funcionaron. Las cookies se guardan en la PC pero si cambias de PC entonces tendras que dar clic otra vez en ESPAÑOL para declararlas otra vez.
  #5 (permalink)  
Antiguo 21/05/2011, 13:33
 
Fecha de Ingreso: mayo-2011
Ubicación: Guadalupe, N.L, México
Mensajes: 45
Antigüedad: 13 años
Puntos: 6
Respuesta: Guardar idioma de inicio en una cookie

mmm, no entiendo por que el error de el por que. Pero buscaré una solución rápida.
Verifica si el internet explorer acepta las cookies, yo tengo mi internet explorer con cookies aceptables, es que el internet explorer trata de evitar los VIRUS pero en realidad estas cookies no son malas.

Prueba con el navegador de mozilla firefox y si este navegador funciona (que conmigo si funcionó) entonces, pon en tu web el requerimiento de usar mozilla firefox.

Esta es mi unica solución por que conmigo si funcionan los códigos....

Te dejo mi pagina en donde funciona con los codigos que yo te puse.
http://nextersforo.webcindario.com/bienvenido.php

funciona con el navegador de mozilla firefox, no lo he probado con internet explorer.
Espero que sirva :)

Última edición por tete_de; 21/05/2011 a las 13:38
  #6 (permalink)  
Antiguo 21/05/2011, 15:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Guardar idioma de inicio en una cookie

moviendo un poco las neuronas logre resolver el problema!! jeje
te paso mi solucion por si te sirve o para cualquiera que desee utilizarla en el foro:
lo que hice fue lo siguiente, cree una tabla en la base de datos llamada "idioma" con tres campos= id, ip, idioma (ingrese como valor de inicio, la palabra ingles, en el campo idioma)
entonces, tengo dos paginas index x separado una llamada index_1 (la cual esta en ingles) y la otra index_2 (la cual esta en español)
y un tercer index.php (que es el principal) que es el que va a redireccionar a una u otra pagina
entonces en el index.php realizo una consulta a la db de la siguiente forma:

Código PHP:
<?php 
session_start
(); //opcional
include "BASE.php";
$conexiondb();

mysql_select_db("_usuarios");
$ip$_SERVER['REMOTE_ADDR'];

$idioma"ingles";
$idioma1"español";

$consulta"select * from idioma where ip= '".$ip."' and idioma= '".$idioma."'";
$resultadomysql_query($consulta) or die (mysql_error());
$nummysql_num_rows($resultado);


$consulta1"select * from idioma where ip= '".$ip."' and idioma= '".$idioma1."'";
$resultado1mysql_query($consulta1) or die (mysql_error());
$num1mysql_num_rows($resultado1);

if (
$num>0)
{
header ("Location: index_1.php");
exit;
}


if (
$num1>0)
{
header ("Location: index_2.php");
exit;
}
?>
y en cada una de las subpaginas index, ya sea index_1 y index_2 hago la siguiente consulta a la db

Código PHP:
<?php 
session_start
();


include 
"BASE.php";
$conexion=db();

$ip$_SERVER['REMOTE_ADDR'];
$idioma"ingles";
$idioma1"español";

mysql_select_db("_usuarios");

$consulta"insert into idioma values ('$id' , '".$ip."' , '".$idioma."')";
$resultadomysql_query($consulta) or die (mysql_error());

$consulta1"delete from idioma where ip= '".$ip."' and idioma= '".$idioma1."'";
$resultado1mysql_query($consulta1) or die (mysql_error());


?>
y la misma consulta en el index_2 pero a la inversa
y problema resuelto!!
cuando el usuario ingresa nuevamente el index principal lo redirecciona al idioma que ya habia elegido en su anterior visita sin necesidad de que tenga que pulsar el link de idioma!!
espero les sea de utilidad como me fue a mi.
saludos cordiales, y como siempre gracias x la invaluable ayuda que prestan los usuarios del foro.

Cita:
Iniciado por tete_de Ver Mensaje
mmm, no entiendo por que el error de el por que. Pero buscaré una solución rápida.
Verifica si el internet explorer acepta las cookies, yo tengo mi internet explorer con cookies aceptables, es que el internet explorer trata de evitar los VIRUS pero en realidad estas cookies no son malas.

Prueba con el navegador de mozilla firefox y si este navegador funciona (que conmigo si funcionó) entonces, pon en tu web el requerimiento de usar mozilla firefox.

Esta es mi unica solución por que conmigo si funcionan los códigos....

Te dejo mi pagina en donde funciona con los codigos que yo te puse.
http://nextersforo.webcindario.com/bienvenido.php

funciona con el navegador de mozilla firefox, no lo he probado con internet explorer.
Espero que sirva :)

Última edición por apustilnik; 23/05/2011 a las 18:45

Etiquetas: cookie, inicio, idiomas
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 02:41.