Foros del Web » Programando para Internet » PHP »

Redireccionar Sitio Web segun idioma

Estas en el tema de Redireccionar Sitio Web segun idioma en el foro de PHP en Foros del Web. Luego de haber visto las distintas opciones de redireccion del sitio, y perdido el rumbo del Script LangRedirect, que no lo encontre por ningun lado, ...
  #1 (permalink)  
Antiguo 12/01/2010, 20:28
Avatar de Sirio-Astaroth  
Fecha de Ingreso: noviembre-2007
Mensajes: 88
Antigüedad: 16 años, 5 meses
Puntos: 0
Redireccionar Sitio Web segun idioma

Luego de haber visto las distintas opciones de redireccion del sitio, y perdido el rumbo del Script LangRedirect, que no lo encontre por ningun lado, elegi una que posiblemente me convenga. Lo que quiero hacer es lo siguiente:

1- Un Sitio Web Principal y varios subdominios
2- Un index.php para redireccionar segun el idioma del navegador, al sitio en cuestion
3- Mediante esto utilice condicionales, como se muestra a continuacion:
Código PHP:
<?php
var $idioma substr ($HTTP_ACCEPT_LANGUAGE02);
var 
iniciales idioma.substring(0,2);
if(
iniciales=="de")
{
     
Header(Location"http://deu.sitio.net"); //redirigir al sitio en Aleman
}
else if(
iniciales=="en")
{
     
Header(Location"http://eng.sitio.net"); //redirigir al sitio en Ingles
}
else(
iniciales=="fr")
{
     
Header(Location"http://fra.sitio.net"//redirigir al sitio en Frances
}
else(
iniciales=="es")
{
     
Header(Location"http://esp.sitio.net"); //redirigir al sitio en Español
}
else(
iniciales=="it")
{
     
Header(Location"http://ita.sitio.net"); //redirigir al sitio en Italiano
}
else(
iniciales=="ja")
{
     
Header(Location"http://jap.sitio.net"); //redirigir al sitio en Japones
}
else(
Location:"http://sitio.net/index.html"); //redirigir al sitio internacional
?>
Como veran en el codigo, el PHP y el HTML del Sitio general estan en el dominio principal, de modo que no se produscan conflictos.

• Incluso, si funciona igual el script metido en el html, solo quedara el index.html, que lea el script y ejecute segun las instancias, si todas las condicionales son falsas, continuar leyendo el archivo mostrandolo al usuario.

Aun no lo he probado, pero quisiera saber si en teoria esto funciona, para modificarlo y depurarlo antes de subirlos al servidor.

Saludos.

Última edición por Sirio-Astaroth; 21/07/2010 a las 12:53
  #2 (permalink)  
Antiguo 12/01/2010, 20:53
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: Redireccionar Sitio Web segun idioma

deberias testearlo primero para que salgas de dudas sobre tu codigo.

saludos.
  #3 (permalink)  
Antiguo 12/01/2010, 20:56
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Redireccionar Sitio Web segun idioma

¿pones un codigo aqui y preguntas si esto funciona antes de probarlo tu mismo?

Te dejo una busqueda que te puede servir: http://www.google.es/#hl=es&q=+site:...f470dbb2a9f3ee
  #4 (permalink)  
Antiguo 12/01/2010, 23:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 102
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Redireccionar Sitio Web segun idioma

una biblioteca de geoposicionamiento y un diccionario a eso lo sumas unos condicionales y obtienes lo que quieres saludos
__________________
█ Luis Toscano - CodeMaster
Codigolandia.com
Foros Del Hosting
  #5 (permalink)  
Antiguo 13/01/2010, 00:07
Avatar de Sirio-Astaroth  
Fecha de Ingreso: noviembre-2007
Mensajes: 88
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Redireccionar Sitio Web segun idioma

Talcualvip, IP2Location, tiene varios Bin para hacer eso, pero usa SQL para verificar los archivos, la aplicacion es complicada.

El PHP probado:
Código PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        
// XSS Protection
        
function safe ($value){
            
htmlentities ($valueENT_QUOTES'utf-8')
                    return 
$value;
        }
        
$title $_POST['title'];
        
$message $_POST['message'];
        print 
'<h1>' .safe ($title) . '<h1>'
        '<p>' 
.safe ($message) . '<p>';

        
// Others Security Layout
        
Disable allow_url_fopen for security reasons
        allow_url_fopen 
'off'
        
Lower memory_limit for security reasons
        memory_limit 
8M
        
Disable register_globals for security reasons
        register_globals 
'off'

        
// Redirection Website
        
var $idioma substr ($HTTP_ACCEPT_LANGUAGE02);
        var 
iniciales idioma.substring(0,2);
        if(
iniciales=="de"){
            
Header(Location"http://deu.sitio.net"); //redirigir al sitio en Aleman
        
}
        else if(
iniciales=="en"){
            
Header(Location"http://eng.sitio.net"); //redirigir al sitio en Ingles
        
}
        else if(
iniciales=="fr"){
            
Header(Location"http://fra.sitio.net"); //redirigir al sitio en Frances
        
}
        else if(
iniciales=="es"){
            
Header(Location"http://esp.sitio.net"); //redirigir al sitio en Español
        
}
        else if(
iniciales=="it"){
            
Header(Location"http://ita.sitio.net"); //redirigir al sitio en Italiano
        
}
        else if(
iniciales=="ja"){
            
Header(Location"http://jap.sitio.net"); //redirigir al sitio en Japones
        
}
        else 
Header(Location"index.html"); //redirigir al sitio internacional
        
}
        
?>
    </body>
</html>
Segun Netbeans 6.8 for PHP, me salta un error de sintaxis en la linea 48, donde se produce un breakpoint (else Header).

El error:
Parse error: syntax error, unexpected T_RETURN in \\hmfsw02\web02\dtcwin012\audioestudio.net\public_ html\index.php on line 22

Quisiera ponerlo dentro del html, asi queda el index.html, que lea el script y ejecute segun las instancias, si todas las condicionales son falsas, continuar leyendo el archivo mostrandolo al usuario. Porque no me lee en php en el servidor.

Última edición por Sirio-Astaroth; 21/07/2010 a las 12:55
  #6 (permalink)  
Antiguo 13/01/2010, 04:00
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Redireccionar Sitio Web segun idioma

No se que hace esto ahi:

// Others Security Layout
; Disable allow_url_fopen for security reasons
allow_url_fopen = 'off'
; Lower memory_limit for security reasons
memory_limit = 8M
; Disable register_globals for security reasons
register_globals = 'off'


Si parece la configuracion del php.ini......
  #7 (permalink)  
Antiguo 13/01/2010, 06:59
Avatar de Sirio-Astaroth  
Fecha de Ingreso: noviembre-2007
Mensajes: 88
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Redireccionar Sitio Web segun idioma

Hey Vun, esos son operadores (creo) que saque de las sugerencias en los resultados de PhpSecInfo para mi Sitio.

El allow_url_fopen
http://phpsec.org/projects/phpsecinfo/tests/allow_url_fopen.html

El memory_limit
http://phpsec.org/projects/phpsecinfo/tests/memory_limit.html

Las register_globals
http://phpsec.org/projects/phpsecinfo/tests/register_globals.html

En verdad no se como se usa, pero puedes ver el Test aqui:
http://www.audioestudio.net/phpsecinfo/index.php

Quizas me puedan ayudar en esto, para prevenir ataques y reforzar la seguridad.
  #8 (permalink)  
Antiguo 13/01/2010, 21:07
 
Fecha de Ingreso: diciembre-2008
Mensajes: 102
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Redireccionar Sitio Web segun idioma

te sale error de sintaxis porq te falto colocar el ; al final de esta linea

htmlentities ($value, ENT_QUOTES, 'utf-8')

colocalo y vuelve a intentar
__________________
█ Luis Toscano - CodeMaster
Codigolandia.com
Foros Del Hosting
  #9 (permalink)  
Antiguo 17/01/2010, 23:31
Avatar de Sirio-Astaroth  
Fecha de Ingreso: noviembre-2007
Mensajes: 88
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Redireccionar Sitio Web segun idioma

Segun mi Hosting soporta PHP 5.3, inclui el script en PHP dentro del HTML mediante <script type="php">, supongo que esto funcionara.

Código PHP:
<script type="php">
// XSS Protection
function safe ($value){
            
htmlentities ($valueENT_QUOTES'utf-8')
                    return 
$value;
        }
        
$title $_POST['title'];
        
$message $_POST['message'];
        print 
'<h1>' .safe ($title) . '<h1>'
        '<p>' 
.safe ($message) . '<p>';
        
        
// Others Security Layout
        
Disable allow_url_fopen for security reasons
        allow_url_fopen 
'off'
        
Lower memory_limit for security reasons
        memory_limit 
8M
        
Disable register_globals for security reasons
        register_globals 
'off'
        
        
// Redirection Website
        
var $idioma substr ($HTTP_ACCEPT_LANGUAGE02);
        var 
iniciales idioma.substring(0,2);
        if(
iniciales=="de"){
            
Header(Location"http://deu.sitio.net"); //redirigir al sitio en Aleman
            
}
            else if(
iniciales=="en"){
                
Header(Location"http://eng.sitio.net"); //redirigir al sitio en Ingles
            
}
            else if(
iniciales=="fr"){
                
Header(Location"http://fra.sitio.net"); //redirigir al sitio en Frances
            
}
            else if(
iniciales=="es"){
                
Header(Location"http://esp.sitio.net"); //redirigir al sitio en Español
            
}
            else if(
iniciales=="it"){
                
Header(Location"http://ita.sitio.net"); //redirigir al sitio en Italiano
            
}
            else if(
iniciales=="ja"){
                
Header(Location"http://jap.sitio.net"); //redirigir al sitio en Japones
            
}
            else(
Location"index.html"); //redirigir al sitio internacional
            
}
</script> 

Última edición por Sirio-Astaroth; 21/07/2010 a las 12:55

Etiquetas: redireccionar, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:56.