zambesc.com RSS Feed

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.

, , ,

Comenteaza

Atentie: Momentan comentariile sunt moderate si e posibil sa apara cu o mica intarziere.

Comentariul tau este important pentru mine, insa inainte de-a posta citeste cu atentie, e posibil ca ceea ce spui tu sa se fi spus deja. Daca ai ceva de spus spune, fraze de genul : tare, super, excelent....nu ma intereseaza. Daca doar atata poti inseamna ca ai gresit blogul. Incearca sa te semnezi cu prenume sau nume, chiar nu vreau sa conversez cu obiecte gen ,, cabluri’’.....,, scari rulante’’ sau mai stiu eu ce.

*