Foros del Web » Programando para Internet » PHP »

Lenguaje Según País

Estas en el tema de Lenguaje Según País en el foro de PHP en Foros del Web. Buen día a todos, estoy diseñando un código el cual asigna un idioma según el país del visitante. Tengo esta primera base de dátos que ...
  #1 (permalink)  
Antiguo 14/09/2010, 12:21
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Buen día a todos, estoy diseñando un código el cual asigna un idioma según el país del visitante.

Tengo esta primera base de dátos que contiene los paises actuales y los idiomas que iré agregando a medida que expanda la web:

Cita:

CREATE TABLE `Login`(
`IDLogin` INT NOT NULL AUTO_INCREMENT,
`Pais` VARCHAR(300) NOT NULL Unique,
`Extencion` VARCHAR(300) NOT NULL Unique,
`Lenguaje` VARCHAR(300) NOT NULL,
`HostDB` VARCHAR(300) NOT NULL,
`UsuaDB` VARCHAR(300) NOT NULL,
`ContDB` VARCHAR(300) NOT NULL,
`NombDB` VARCHAR(300) NOT NULL,
`Banderita` VARCHAR(300),
`LogoSup1` VARCHAR(300),
`LogoSup2` VARCHAR(300),
`LogoInf1` VARCHAR(300),
`LogoInf2` VARCHAR(300),
`Otro1` VARCHAR(300),
`Otro2` VARCHAR(300),
`Otro3` VARCHAR(300),
`Otro4` VARCHAR(300),
`Otro5` VARCHAR(300),
`Otro6` VARCHAR(300),
`Otro7` VARCHAR(300),
`Otro8` VARCHAR(300),
`Otro9` VARCHAR(300),
`Otro10` VARCHAR(300),
PRIMARY KEY (`IDLogin`)
);
Pais - Contiene el nombre del País Completo
Extencion - Es la extención otorgada por nic
Lenguaje - Es el idioma (puede usarse un idioma para más de un país)
HostDB y Todos los valores que vienen despues son cosas definidas para mi sitio web, cada lenguaje tiene su propia Base de dátos, idioma e imágenes particulares (LogoSup1, LogoSup2, etc)


Acontinuación, tengo el siguiente código que conecta con la base de dátos, almacena en cookies y demás:

Código PHP:

<?


// Conectarse a la Database
$dbh mysql_connect("localhost""usuario""contraseña") or die("Could not connect: " mysql_error());
mysql_select_db("base_de_datos");

// Verificar si la Cookie Existe
if($_COOKIE["LenguajeMiWeb"] != ''){
$MiGalleta $_COOKIE["LenguajeMiWeb"];
//Descomponer la Galleta para Obtener las Variables
$MiGalleta_Descompuesta explode('##@##',$MiGalleta);
// Quitar Espacios en Blanco
$Galleta_Lenguaje trim($MiGalleta_Descompuesta[0]);
$Galleta_País trim($MiGalleta_Descompuesta[1]);
$wea2 mysql_query("SELECT HostDB,UsuaDB,ContDB,NombDB,LogoSup1,LogoSup2,LogoInf1,LogoInf2 FROM Login where Lenguaje = '$Galleta_Lenguaje' and Pais = '$Galleta_País'");
$row2 mysql_fetch_row($wea2);
$Idioma $Galleta_Lenguaje;
$ArraEnviar $row2[HostDB]."##@##".$row2[UsuaDB]."##@##".$row2[ContDB]."##@##".$row2[NombDB];
define('URLLogoSup1',$row2[LogoSup1]);
define('URLLogoSup2',$row2[LogoSup2]);
define('URLLogoInf1',$row2[LogoInf1]);
define('URLLogoInf2',$row2[LogoInf2]);
//FIN
}else{
// Detectar Dominio (No existe la Cookie)
$host gethostbyaddr($REMOTE_ADDR); 
$dominio substr$host, (strrpos$host,".")+1));
// Varificar las Variables Indicadas en la Database
$wea mysql_query("SELECT Lenguaje,Pais,HostDB,UsuaDB,ContDB,NombDB,LogoSup1,LogoSup2,LogoInf1,LogoInf2 FROM Login where Extencion ='$dominio'");
$row mysql_fetch_row($wea);

// Verificar si Existe una Extención Así
if ($row[Lenguaje] != ''){
// Crear Cookie
setcookie("LenguajeMiWeb"$row[Lenguaje]."##@##".$row[Pais], time() + 432000); // 432.000 Segundos, son 5 Días
$Idioma $row[Lenguaje];
$ArraEnviar $row[HostDB]."##@##".$row[UsuaDB]."##@##".$row[ContDB]."##@##".$row[NombDB];
define('URLLogoSup1',$row[LogoSup1]);
define('URLLogoSup2',$row[LogoSup2]);
define('URLLogoInf1',$row[LogoInf1]);
define('URLLogoInf2',$row[LogoInf2]);
//FIN
}else{
// PONERLE LENGUAJE EXISTENTE Y LOGUITOS EXISTENTES PREDETERMINADOS, AGREGAR CARTEL DE ADVERTENCIA SOBRE ELLO USANDO UN DEFINE EN LA PARTE SUPERIOR DE SP.PHP
}

mysql_close($dbh);


// Conectar la DB Correspondiente al País
function Conectarse($Recibidas_Array){
$DBInfo explode('##@##',$Recibidas_Array);
// Quitar Espacios en Blanco
$HostDB trim($DBInfo[0]); $Usuari trim($DBInfo[1]); $Cont trim($DBInfo[3]); $NombreDB trim($DBInfo[3]);
global 
$link; if (!($link=mysql_connect($HostDB,$Usuari,$Cont))){exit();}if (!mysql_select_db($NombreDB,$link)){exit();}return $link;}
Conectarse($ArraEnviar);

if (
$Idioma == 'Español'){
///////////////////////////////////////
///////// DEFINE ESPAÑOL LENGUAJE
///////////////////////////////////////
}elseif ($Idioma == 'Ingles'){
///////////////////////////////////////
///////// DEFINE INGLES LENGUAJE
///////////////////////////////////////
}else{
///////////////////////////////////////
///////// DEFINE DEFAULT LENGUAJE
///////////////////////////////////////
}


?>

Y este es un diagrama de lo que quiero programar:





Bien, aquí mi consulta:

1. Cuando ayan muchos visitantes, no se pondrá muy lento?
2. Me sale un error cuando lo pruebo con el código que les indiqué antes, dice que $end no está definido en la ultima linea
3. ¿Que errores hay en el código, o cosas que puedo mejorar para aumentar el rendimiento?

Gracias desde ya.


Aclaro que este archivo es un include que va en cada página.

Última edición por GatorV; 14/09/2010 a las 13:41
  #2 (permalink)  
Antiguo 14/09/2010, 13:09
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Lenguaje Según País

De rendimiento no tengo mucha idea, pero del $end al final, es un corchete mal cerrado.
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #3 (permalink)  
Antiguo 14/09/2010, 13:10
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 14 años, 6 meses
Puntos: 10
Respuesta: Lenguaje Según País

Código PHP:
<? 


// Conectarse a la Database 
$dbh mysql_connect("localhost""usuario""contraseña") or die("Could not connect: " mysql_error()); 
mysql_select_db("base_de_datos"); 

// Verificar si la Cookie Existe 
if($_COOKIE["LenguajeMiWeb"] != ''){ 
$MiGalleta $_COOKIE["LenguajeMiWeb"]; 
//Descomponer la Galleta para Obtener las Variables 
$MiGalleta_Descompuesta explode('##@##',$MiGalleta); 
// Quitar Espacios en Blanco 
$Galleta_Lenguaje trim($MiGalleta_Descompuesta[0]); 
$Galleta_País trim($MiGalleta_Descompuesta[1]); 
$wea2 mysql_query("SELECT HostDB,UsuaDB,ContDB,NombDB,LogoSup1,LogoSup2,LogoInf1,LogoInf2 FROM Login where Lenguaje = '$Galleta_Lenguaje' and Pais = '$Galleta_País'"); 
$row2 mysql_fetch_row($wea2); 
$Idioma $Galleta_Lenguaje
$ArraEnviar $row2[HostDB]."##@##".$row2[UsuaDB]."##@##".$row2[ContDB]."##@##".$row2[NombDB]; 
define('URLLogoSup1',$row2[LogoSup1]); 
define('URLLogoSup2',$row2[LogoSup2]); 
define('URLLogoInf1',$row2[LogoInf1]); 
define('URLLogoInf2',$row2[LogoInf2]); 
//FIN ******
}else{ 
// Detectar Dominio (No existe la Cookie) 
$host gethostbyaddr($REMOTE_ADDR);  
$dominio substr$host, (strrpos$host,".")+1)); 
// Varificar las Variables Indicadas en la Database 
$wea mysql_query("SELECT Lenguaje,Pais,HostDB,UsuaDB,ContDB,NombDB,LogoSup1,LogoSup2,LogoInf1,LogoInf2 FROM Login where Extencion ='$dominio'"); 
$row mysql_fetch_row($wea); 
//El Else de ahí arriba, que tiene unos asteriscos, no se cerraría aquí?
// Verificar si Existe una Extención Así 
if ($row[Lenguaje] != ''){ 
// Crear Cookie 
setcookie("LenguajeMiWeb"$row[Lenguaje]."##@##".$row[Pais], time() + 432000); // 432.000 Segundos, son 5 Días 
$Idioma $row[Lenguaje]; 
$ArraEnviar $row[HostDB]."##@##".$row[UsuaDB]."##@##".$row[ContDB]."##@##".$row[NombDB]; 
define('URLLogoSup1',$row[LogoSup1]); 
define('URLLogoSup2',$row[LogoSup2]); 
define('URLLogoInf1',$row[LogoInf1]); 
define('URLLogoInf2',$row[LogoInf2]); 
//FIN 
}else{ 
// PONERLE LENGUAJE EXISTENTE Y LOGUITOS EXISTENTES PREDETERMINADOS, AGREGAR CARTEL DE ADVERTENCIA SOBRE ELLO USANDO UN DEFINE EN LA PARTE SUPERIOR DE SP.PHP 


mysql_close($dbh); 


// Conectar la DB Correspondiente al País 
function Conectarse($Recibidas_Array){ 
$DBInfo explode('##@##',$Recibidas_Array); 
// Quitar Espacios en Blanco 
$HostDB trim($DBInfo[0]); $Usuari trim($DBInfo[1]); $Cont trim($DBInfo[3]); $NombreDB trim($DBInfo[3]); 
global 
$link; if (!($link=mysql_connect($HostDB,$Usuari,$Cont))){exit();}if (!mysql_select_db($NombreDB,$link)){exit();}return $link;} 
Conectarse($ArraEnviar); 

if (
$Idioma == 'Español'){ 
/////////////////////////////////////// 
///////// DEFINE ESPAÑOL LENGUAJE 
/////////////////////////////////////// 
}elseif ($Idioma == 'Ingles'){ 
/////////////////////////////////////// 
///////// DEFINE INGLES LENGUAJE 
/////////////////////////////////////// 
}else{ 
/////////////////////////////////////// 
///////// DEFINE DEFAULT LENGUAJE 
/////////////////////////////////////// 



?>
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #4 (permalink)  
Antiguo 14/09/2010, 15:14
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Respuesta: Lenguaje Según País

Gracias, ahora lo arreglo.
  #5 (permalink)  
Antiguo 14/09/2010, 19:21
 
Fecha de Ingreso: abril-2010
Ubicación: Ping: BSAS - Arg
Mensajes: 791
Antigüedad: 14 años
Puntos: 25
Respuesta: Lenguaje Según País

Hola.
Les comento, ya modifiqué el código y funciona perfectamente.
El problema es que se demora mucho en cargar, que solución puedo tener a eso?

Etiquetas: lenguaje
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 03:20.