Cum sa afisezi continutul unui site in functie de tara utilizatorului

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:

//conectarea la baza de date
$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.

Add a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.