Autor Zpráva
adamico
Profil
Dobrý deň.

Chcem sa opýtať na spôsob, ako presmerovávať užívateľov stránok na stránky v ich jazyku.
Ide o to, že zákazník predáva produkt do celého sveta a teda aj stránky sú v 4 rôznych jazykoch. Je možné užívateľa automaticky hodiť na stránku s jeho jazykovou mutáciou, aby som obchádzal ten klasický language choose ? (Teda Angličana na napr. en.example.sk, slováka na sk.exmaple.sk atd. ?)
Robí sa to na základe IP ?

Hosting u websupport.

Ďakujem za rady.

EDIT: Už som niečo také našiel, pripájam, keby to tiež niekto potreboval.
<?php
  /**
   * Original code from svn://hostip.info/hostip/api/trunk. Optimized & enhanced by Quang Pham @ Saoma, 06.01.07.
   */   
  function isPrivateIP($ip) {
    list($a, $b, $c, $d) = sscanf($ip, "%d.%d.%d.%d");
    return  $a === null || $b === null || $c === null || $d === null ||
            $a == 10    ||
            $a == 239   ||
            $a == 0     ||
            $a == 127   ||
           ($a == 172 && $b >= 16 && $b <= 31) ||
           ($a == 192 && $b == 168);
  }   
   
  function getIP() {
    $default = false;
    
    if (isset($_SERVER)) {
      $default_ip = $_SERVER["REMOTE_ADDR"];      
      $xforwarded_ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
      $client_ip = $_SERVER["HTTP_CLIENT_IP"];    
    } else {
      $default_ip = getenv('REMOTE_ADDR');
      $xforwarded_ip = getenv('HTTP_X_FORWARDED_FOR');
      $client_ip = getenv('HTTP_CLIENT_IP');
    }
    
    if ($xforwarded_ip != "") {
      $result = $xforwarded_ip;
    } else if ($client_ip != "") {
      $result = $client_ip;
    } else {
      $default = true;
    }
    
    if (!$default) { // additional check for private ip numbers 
      $default = isPrivateIP($result);
    }
    
    if ($default) {
      $result = $default_ip;
    }
    
    return $result;
  }
  
  function showUSContent() {
    // show US content here, for ex. Yahoo! ads  
    echo "US CONTENT";
  }
  
  function showSKContent() {
    // show SK content here, for ex. Yahoo! ads  
    echo "SK CONTENT";
  }
  function showCZContent() {
    // show CZ content here, for ex. Yahoo! ads  
    echo "CZ CONTENT";
  }
  
  function showInternationalContent() {
  echo "international";
    // show international content here, for ex. Google ads
  }
  
  function showGeoTargetContent() {
    // make a valid request to the hostip.info API  
    $url = "http://api.hostip.info/country.php?ip=".getIP();
  
    // fetch with curl
    $ch = curl_init();
  
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $country = curl_exec($ch);
  
    curl_close ($ch);
  
                     
    
               if ($country == "US") {
    showUSContent();
} elseif ($country == "SK") {
    showSKContent();
}   elseif ($country == "CZ") {
    showCZContent();
} 
else {
    showInternationalContent();
}

    

  }  
  

  showGeoTargetContent();
?>
Davex
Profil
adamico:
Robí sa to na základe IP ?
Před otazníkem se nepíše mezera.

Jazyková verze se obvykle servíruje podle preferovaného jazyka v prohlížeči $_SERVER['HTTP_ACCEPT_LANGUAGE']. Můžeš vyzkoušet funkci z tématu Zjištění jazyku.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: