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.