Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ja rozpoznać czy klient na stronie jest z poza polski?
Forum PHP.pl > Inne > Hydepark
ewaslawek5
Chciałbym żeby moja strona wyświetlała inną zawartość dla osób z naszego kraju i inną dla osób z poza kraju.
Myślę że można by osiągnąć to poprzez odczyt NR.IP osoby będącej na mojej stronie i porównać z bazą danych nr.IP z polski, bo takowe są dostępne.

Wiem o zmiennej globalnej:
CODE
$nr_ip = $_SERVER['REMOTE_ADDR']
Napiszcie jak byście poradzili sobie z tym zagadnieniem, czy w podobny sposób, a może w zupełnie inny ?
erix
Google: GeoIP, geolokalizacja.
ewaslawek5
Chciałbym żeby zawartość strony zmieniała się dynamicznie, to znaczy żeby była inna dla użytkowników z kraju i inna dla użytkowników z poza kraju...
erix
I jakie jest pytanie? Przecież to zwykły if" title="Zobacz w manualu PHP" target="_manual; problem w tym, aby zdobyć dane powiązań IP z krajem. Ale o tym napisałem post wyżej.
rugby
Postaram się odpowiedzieć bardziej wyczerpująco od poprzedników. Otóż rozpoznać kraj odwiedzającego można w PHP przynajmniej na 3 sposoby:

1. Sprawdzać $_SERVER["HTTP_ACCEPT_LANGUAGE"] - ale wtedy uzyskujemy język używany przez przeglądarkę klienta, zawodzi kiedy np. Polak ma zainstalowaną angielską wersję Windowsa i IE.

2. Sprawdzać IP w zewnętrznych serwisach geolokalizacji, np. MaxMind GeoIP - ale wtedy za każdym razem musimy łączyć się z zewnętrznym serwerem, co wydłuża ładowanie strony i może generować błędy.

3. Przechowywać lokalną bazę adresów IP oraz krajów i porównywać z nią IP klienta - ale wtedy musimy mieć miejsce na bazę danych (czasem kilkaset MB), musimy pamiętać o jej aktualizacji i wziąć pod uwagę, że danego adresu może nie być w bazie. Natomiast to jest sposób o wiele szybszy od poprzedniego. Przykładowa implementacja w PHP to IP2Country.

Jak już mamy kraj, to robimy: if(...) header('Location: ...');
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.