Sa presupunem ca realizezi un site in mai multe limbi si, atunci cand un vizitator soseste pe siteul tau, doresti sa ii afisezi informatia in functie de tara din care provine. Daca e din Romania, in romana, daca e din SUA, in engleza, daca e din Franta, in franeza, etc…
Nu e complicat insa ai nevoie de urmatorul script car, teoretic, ar trebuie sa functioneze pe orice site:
$conectare = mysql_connect(‘servar_mysql’, ‘utilizator’, ‘parola’);
if (!$conectare)
{
echo ‘Eroare.Conectarea la baza de date nu a putut fi realizatata’;
exit;
}
//citesc ip-ul vizitatorului si il convertesc intr-un numar
$ip=$_SERVER[‘REMOTE_ADDR’];
$ipzip = Dot2LongIP($ip);
$ro=FALSE;
//verific ip-ul vizitatorului sa vad daca e din Romania
$result_ip = mysql_query(„SELECT * FROM ip”);
while ($row = mysql_fetch_row($result_ip))
{
$ip1 = $row[‘1’];
$ip2 = $row[‘2’];
if ( ($ipzip>=$ip1)&&($ipzip<=$ip2) ) {$ro=TRUE;} // l-am prins, e din Romania
else {$ro=FALSE;} // deci nu e din Romania, norocul lui
}
if ($ro==true)
{
// daca e din Romania il trimit pe varianta siteului in romana
Header("Location: http://www.siteultau.ro/index-ro.php");
}
else
{
// daca nu e din Romania il trimit pe varianta siteului in engleza
Header("Location: http://www.siteultau.ro/index-en.php");
}
function Dot2LongIP ($IPaddr)
{
if ($IPaddr == "")
{
return 0;
}
else
{
$ips = split ("\.", "$IPaddr");
return ($ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256);
}
}
Momentan nu functioneaza decat pentru Romania, pentru care va afisa pagina in romana vs Restul lumii, pentru care va afisa pagina in engleza. Cu mici modificari se pot adauga mult mai multe Tari/limbi de afisare.
Si, bineinteles ca e neutilizabil fara baza de date ce contine ip-urile romanesti. Download.