Foros del Web » Programando para Internet » PHP »

Codigo para 2 idiomas en mi web

Estas en el tema de Codigo para 2 idiomas en mi web en el foro de PHP en Foros del Web. Este codigo me funciona en firefox, pero no me funciona en IE, opera, safari y ahora vere si funciona en el chrome. Cita: <?php $idioma ...
  #1 (permalink)  
Antiguo 13/03/2011, 14:10
 
Fecha de Ingreso: diciembre-2010
Ubicación: Argentina
Mensajes: 42
Antigüedad: 13 años, 11 meses
Puntos: 0
Codigo para 2 idiomas en mi web

Este codigo me funciona en firefox, pero no me funciona en IE, opera, safari y ahora vere si funciona en el chrome.

Cita:
<?php
$idioma = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
if($idioma=="es"){
header("location: indexesp.php");
}
else
{
header("location: indexeng.php");
}
?>
Basicamente, en los exploradores que no anda el código, ingresa a index.php y se queda ahi, no va ni a indexesp.php ni a indexeng.php
Les agradecería una ayuda, ya que estoy hace casi 2 días con el problema y no encuentro solución. Gracias
  #2 (permalink)  
Antiguo 13/03/2011, 14:29
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 5 meses
Puntos: 127
Respuesta: Codigo para 2 idiomas en mi web

no todos los navegadores son iguales.
por eso las paginas tren banderitas para escoger el idioma indiferentemente del navegador
  #3 (permalink)  
Antiguo 13/03/2011, 14:45
 
Fecha de Ingreso: diciembre-2010
Ubicación: Argentina
Mensajes: 42
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Codigo para 2 idiomas en mi web

En SAFARI Y EN gOOGLE CHROME me sale este error, que es por demas interesante:

Cita:
Warning: Cannot modify header information - headers already sent by (output started at /home/setenta/domains/midominio.com/public_html/index.php:6) in /home/setenta/domains/midominio.com/public_html/index.php on line 9
Tiene algo que ver?
  #4 (permalink)  
Antiguo 13/03/2011, 14:55
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 5 meses
Puntos: 127
Respuesta: Codigo para 2 idiomas en mi web

cuando uses
Código PHP:
header 
no deve de haver ninguna salida al navegador antes de
Código PHP:
header 
seguro dejaste un espacio basio antes de
Código PHP:
 <?php
  #5 (permalink)  
Antiguo 13/03/2011, 17:48
 
Fecha de Ingreso: diciembre-2010
Ubicación: Argentina
Mensajes: 42
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Codigo para 2 idiomas en mi web

No se, ese es el código. En firefox funciona 10 puntos. En mi servidor local wamp 2.0 funcionan bien TODOS los navegadores. El tema es cuando lo subo a mi alojamiento: firefox sigue bien, pero los demas, andan mal. No se que decirte, no hay espacios ni nada.
  #6 (permalink)  
Antiguo 13/03/2011, 18:01
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 5 meses
Puntos: 127
Respuesta: Codigo para 2 idiomas en mi web

jajaja recien veo que lo subes a un server.
pues es facil el server tiene los warnings activados y al imprimir el warning el header se trunca.
trata con esto antes de todo tu codigo.

error_reporting(0);

explicacion: http://enlinea.creaelicita.cl/guia/f...reporting.html

osea
Código PHP:
Ver original
  1. <?php
  2. $idioma = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
  3. if($idioma=="es"){
  4. header("location: indexesp.php");
  5. }
  6. else
  7. {
  8. header("location: indexeng.php");
  9. }
  10. ?>
  #7 (permalink)  
Antiguo 13/03/2011, 18:19
 
Fecha de Ingreso: diciembre-2010
Ubicación: Argentina
Mensajes: 42
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Codigo para 2 idiomas en mi web

Gracias, pero si bien no hay reporte del error, el error sigue ahi: lee la pagina index.php pero no pasa a ninguna de las otras 2 paginas: ni indexeng.php ni indexesp.php. No creo que sea por seguridad sino me parece que el $_SERVER['HTTP_ACCEPT_LANGUAGE' no funciona con todos los navegadores. Eso creo, que opinas?
  #8 (permalink)  
Antiguo 13/03/2011, 18:30
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 5 meses
Puntos: 127
Respuesta: Codigo para 2 idiomas en mi web

pues puede ser mejor define si funciona en cada navegador.
y luego prueba cambiar el codigo.
  #9 (permalink)  
Antiguo 13/03/2011, 18:34
 
Fecha de Ingreso: diciembre-2010
Ubicación: Argentina
Mensajes: 42
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Codigo para 2 idiomas en mi web

Que dices enlinea777, que debería crear una funcion?
  #10 (permalink)  
Antiguo 13/03/2011, 18:53
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 5 meses
Puntos: 127
Respuesta: Codigo para 2 idiomas en mi web

en mi opinion seria mejor las opciones en el top para seleccionar el idioma.
dime que harias en el caso que un amigo te pida el pc para ver una pagina y fuera ingles.
tu navegador es español pero, si el no save nada de español y usa tu PC?

en todo caso la funcion seria asi:

Código PHP:
function detectarIdioma(){

//revisamos cabecera HTTP_ACCEPT_LANGUAGE

$idiomas explode(";"$_SERVER['HTTP_ACCEPT_LANGUAGE']);
if(
strpos($idiomas[0], "es") !== FALSE){
$idioma "es";
}
elseif(
strpos($idiomas[0], "en") !== FALSE){
$idioma "en";
}

//Ante cualquier otro idioma devolvemos "es"
if($idioma <> "es" && $idioma <> "en"){
$idioma "es";
}
return 
$idioma;

  #11 (permalink)  
Antiguo 14/03/2011, 06:59
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años, 6 meses
Puntos: 12
Respuesta: Codigo para 2 idiomas en mi web

cuando te salta el error del header deja asi el inicio de tu codigo

Código PHP:
Ver original
  1. <?php
  2.      ob_start();
  3.     //tu codigo ....
  4. ?>
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.

Etiquetas: 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 21:53.