Jump to content
php.lv forumi

Ja mājas lapa ir 3 valodās: LV,RUS,ENG. Redirect


Recommended Posts

Posted (edited)

Īss scripts, kā, atkarībā no IP adreses, redirektot uz īsto valodu.

 

Īsumā ideja, kā darbojas:

Viņš pārbauda, vai klienta IP ir sarakstā, kurā ir IP adreses no šādām valstīm:

Latvijas - LV; Krievijas - RU; Ukrainas - UA; Kazakstānas - KZ; Kirgistānas - KG; Baltkrievijas - BY.

 

Ja klients ir no LV, tad pāradresē uz LV lapu,

ja klients ir no RU, UA, KZ, KG, BY, tad pāradresē uz RU lapu,

ja klients ir no kādas citas valsts, tad pāradresē uz ENG lapu.

 

<?php
/*
* LvRusEng PHP Redirect Class
* Version: 1.0
* Ameriks@gmail.com
*
* Don't delete this.
* Thanks to [url="http://www.phpclasses.org/browse/file/9684.html"]http://www.phpclasses.org/browse/file/9684.html[/url]
*/

class CountryFromIP {
// thanks to phpclasses.com
private function GetIP() {
	if ($_SERVER['HTTP_X_FORWARDED_FOR']) {
				$ip=explode(', ', $_SERVER['HTTP_X_FORWARDED_FOR']);
				return long2ip(ip2long(array_pop($ip)));		
	} else return $_SERVER['REMOTE_ADDR'];		
}
public function Country() {
	$ip = sprintf("%u", ip2long($this->GetIP()));	
	$cs = file('ip_lv_rus.txt');	
	for($i=0; $i<count($cs); $i++) {
		$arr = explode(' ', $cs[$i]);			
		if($ip >= $arr[0] && $ip <= $arr[1] ) return $arr[2];			
	}
	return "EN";
}	
}
$c = new CountryFromIP();
$countryName =  $c->Country();
switch (trim($countryName)) {
case "LV":
header('Location: [url="http://www.ameri.lv/lv/');"]http://www.ameri.lv/lv/');[/url]
break;
case "RU":
case "KZ":
case "KG":
case "BY":
case "UA":
header('Location: [url="http://www.ameri.lv/rus/');"]http://www.ameri.lv/rus/');[/url]
break;
default:
header('Location: [url="http://www.ameri.lv/eng/');"]http://www.ameri.lv/eng/');[/url]
break;
}
?>

 

IP datubāze atrodas - http://www.ameri.lv/ip_lv_rus.txt

 

Realizēts dzīvē šeit - www.ameri.lv

 

 

Īpaši daudz neesmu testējis, līdz ar to nemāku teikt, vai darbojas 100% pareizi.

 

Cerams, ka kādam noderēs ;)

Edited by Ameriks
Posted

Nu tu taču tur kodu esi copy-paste arī izmantojis. Lai nu kā - varēji jau tad vismaz atstāt oriģinālo autora vārdu iekšā (norādot arī uz oriģinālo kodu).

Posted
Nu tu taču tur kodu esi copy-paste arī izmantojis. Lai nu kā - varēji jau tad vismaz atstāt oriģinālo autora vārdu iekšā (norādot arī uz oriģinālo kodu).

 

Atvainojos par pārpratumiem - info pielikta.

×
×
  • Create New...