Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Czy użytkownik spoza polski., funkcje Ip2country mają zbyt dużą baze krajów..:/
kukix
post
Post #1





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam.

Potrzebuje rozpoznac, czy dany użytkownik jest spoza Polski, czy z Polski.

Przegladałem funkcje ip2country, mają one jednak bazy po kilkaset tysięcy wpisów, nie chce tak obciażać systemu.

Czy jest jakiś łatwy sposób na rozpoznanie, czy dany user jest spoza polski?

Można odczytac język systemu/przegladarki z którego wchodzi user? Czy tylko po IP? (baza adresów IP jest ogromna, chciałbym uniknąć operacji na tej bazie)

Bede wdzięczny za wszelkie wypowiedzi.

Ten post edytował kukix 15.02.2010, 12:30:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(kukix @ 15.02.2010, 12:18:24 ) *
Przegladałem funkcje ip2country, mają one jednak bazy po kilkaset tysięcy wpisów, nie chce tak obciażać systemu.

Jak skorzystasz z bazy danych i założysz odpowiednie indexy to nie będzie problemu

Cytat
Można odczytac język systemu/przegladarki z którego wchodzi user? Czy tylko po IP? (baza adresów IP jest ogromna, chciałbym uniknąć operacji na tej bazie)


google -> php accept language


--------------------
Go to the top of the page
+Quote Post
kukix
post
Post #3





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Znalazłem coś takiego:

  1. /*Function that does language negotiation based on the Accept-Language
  2. header, a cookie or host name*/
  3.  
  4. <?php
  5.  
  6. $supported_languages = array(
  7. "no" => 1, /* Norwegian */
  8. "en" => 1 /* English */
  9. );
  10.  
  11. $default_language = "en";
  12.  
  13. /* Try to figure out which language to use.
  14. */
  15. function negotiate_language($lang) {
  16. global $supported_languages, $HTTP_ACCEPT_LANGUAGE;
  17.  
  18. if (isset($supported_languages[$lang])) {
  19. return $lang;
  20. }
  21.  
  22. /* If the client has sent an Accept-Language: header,
  23.   * see if it is for a language we support.
  24.   */
  25. if ($HTTP_ACCEPT_LANGUAGE) {
  26. $accepted = explode( ",", $HTTP_ACCEPT_LANGUAGE);
  27. for ($i = 0; $i < count($accepted); $i++) {
  28. if ($supported_languages[$accepted[$i]]) {
  29. return $accepted[$i];
  30. }
  31. }
  32. }
  33.  
  34. /* One last desperate try: check for a valid language code in the
  35.   * top-level domain of the client's source address.
  36.   */
  37. if (eregi( "\\.[^\\.]+$"", $REMOTE_HOST, &$arr)) {
  38. $lang = strtolower($arr[1]);
  39. if ($supported_languages[$lang]) {
  40. return $lang;
  41. }
  42. }
  43.  
  44. global $default_language;
  45. return $default_language;
  46. }
  47.  
  48. ?>


Niebardzo wiem, czy tutaj jest rozpoznawany język systemu, czy lokalizacja przegladarki?
Na ile procent móżna wierzyć tej funkcji?

Ten post edytował kukix 15.02.2010, 12:49:22
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Zwraca listę akceptowanych języków. Powoduje to to, że jak pojedziesz do Francji to nie pokaże Ci wersji francuskiej tylko polską (bo tak masz ustawioną przeglądarkę). Numery oznaczają wagę danego języka.


--------------------
Go to the top of the page
+Quote Post
kukix
post
Post #5





Grupa: Zarejestrowani
Postów: 600
Pomógł: 2
Dołączył: 1.09.2002
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Cytat(wookieb @ 15.02.2010, 14:51:00 ) *
Zwraca listę akceptowanych języków. Powoduje to to, że jak pojedziesz do Francji to nie pokaże Ci wersji francuskiej tylko polską (bo tak masz ustawioną przeglądarkę). Numery oznaczają wagę danego języka.


Zastanawiam się tylko po co w funkcji negotiate_language($lang) potrzebny jest parametr $lang, nie rozumie tego dry.gif


Jak dla mnie jest to rozwiązanie idealne, poniewąz nie interesuje mnie kto skąd wchodzi do strony, ale w jakim jezykiem posluguje sie na codzien w komputerze.

Ten post edytował kukix 15.02.2010, 13:05:23
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:18