Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Maakohtainen ohjaus IP-osoitteen perusteella

Ilmari123 [08.01.2011 15:50:54]

#

Onko kenelläkään valmista koodia joka toimisi näin:
Jos on suomalainen IP, ohjaisi .../suomi ja jos joku muu eli ei suomalainen, ohjaisi .../english

-tossu- [08.01.2011 15:53:03]

#

Ilmari123 kirjoitti:

Jos on suomalainen IP, ohjaisi .../suomi ja jos joku muu eli ei suomalainen, ohjaisi .../english

Ohjaus kannattaisi tehdä Accept-Language-headerin eikä IP-osoitteen mukaan.

Ilmari123 [08.01.2011 15:59:46]

#

-tossu- kirjoitti:

Ilmari123 kirjoitti:

Jos on suomalainen IP, ohjaisi .../suomi ja jos joku muu eli ei suomalainen, ohjaisi .../english

Ohjaus kannattaisi tehdä Accept-Language-headerin eikä IP-osoitteen mukaan.

Minkä? Kertoisitko mulle

Grez [08.01.2011 16:04:16]

#

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

-tossu- [08.01.2011 16:08:36]

#

Ilmari123 kirjoitti:

Minkä? Kertoisitko mulle

Selain lähettää sivua pyytäessään palvelimelle Accept-Language-headerin, jossa on määritelty, mitä kieliä käyttäjä haluaa lukea. Minulla se näyttää olevan "fi,en-US;q=0.9,en;q=0.8". Kielet ovat erotettuina toisistaan pilkulla, ja q-arvoista, jotka määrittelevät kielen prioriteetin, puolipisteillä.

Jos Accept-Languagesta löytyy "fi" suuremmalla prioriteetillä kuin "en", niin anna käyttäjälle suomenkielinen sivu, muutoin englanninkielinen. Minä tuskin edes jaksaisin koodata kunnollista tarkistusta, vaan katsoisin löytyykö headerista merkkijono "fi" ja sen mukaan päättäisin, minkä kielinen sivu käyttäjälle annetaan.

Antti Laaksonen [08.01.2011 16:47:46]

#

Tuossa on muutama tieto, joista voi päätellä käyttäjän kieltä:

<?php
echo "<li>" . gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo "<li>" . $_SERVER['HTTP_ACCEPT_LANGUAGE'];
?>

Testisivu: https://www.ohjelmointiputka.net/testit/maa.php

Onkohan Accept-Language yleensä ottaen luotettava kenttä? Minulla tavallisesti asennetun selaimen Accept-Language on "en-us,en;q=0.5", eli ainakaan minun kohdallani siihen perustuva tarkistus ei toimisi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta