Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak rozpoznac przegladarke?
Forum PHP.pl > Forum > PHP
Szymon
Witam,

Czy jest mozliwosc rozpoznania przegladarki, kiedy Opera ma mozliwosc "podszywania" sie pod Mozille i IE?

Chcialbym zrobic prosty mechanizm, ktory dla IE5+ pokazuje jedna strone, dla Mozilli/Firefoxa/Netscape druga strone, a dla kazdej innej trzecia strone

Dzieki za pomoc!
bregovic
jest mozliwosc - musisz tylko poszukac slowa 'opera' najpierw w ciagu $_SERVER['HTTP_USER_AGENT'] (pamietaj zeby najpierw przepuscic go przez strtolower()).
Leezard
taka przydatna funkcyjka to akurat do sprawdzenia przgladarki wyzszej niz IE 5.5 ale mysle ze wyciagniesz stad to co potrzebujesz:

  1. <?php
  2.  
  3. function checkBrowser()
  4. {
  5. global $HTTP_SERVER_VARS;
  6.  
  7. $browser = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
  8. // check if msie
  9. if (eregi(&#092;"MSIE[^;]*\",$browser,$msie))
  10. {
  11. // get version 
  12. if (eregi(&#092;"[0-9]+.[0-9]+\",$msie[0],$version))
  13. {
  14. // check version
  15. if ((float)$version[0]>=5.5)
  16. {
  17. // finally check if it's not opera impersonating ie
  18. if (!eregi(&#092;"opera\",$browser))
  19. {
  20. return true;
  21. }
  22. }
  23. }
  24. }
  25. return false;
  26. }
  27.  
  28. ?>
bregovic
powiem tylko ze niekoniecznie trzeba uzywac eregi" title="Zobacz w manualu PHP" target="_manual - lepiej uzyc np stripos" title="Zobacz w manualu PHP" target="_manual ktora zwraca false jesli nie znalazla szukanego stringu, no i jeszcze nie wydaje mi sie ze musisz pisac global $HTTP_SERVER_VARS - bo $HTTP_SERVER_VARS juz powinno byc globalne (pozatym mozna uzyc krotszego $_SERVER).

pozatym ze skryptu Leezard'a mozna wyciagnac wszystko czego potrzebujesz winksmiley.jpg
Leezard
faktycznie z global to moze przesadzilem winksmiley.jpg a co do $HTTP_SERVER_VARS to stare przyzwyczajenie... smile.gif, ale dzieki kompatyiblnosci wstecz nadal dziala winksmiley.jpg
Kuziu
Jemu chyba chodziło o to czy da się pobrać nazwę prawdziwej przeglądarki gdy ta wysyła fałszywe informacje.

a tego sie chyba zrobić nieda.

php wysyła zapytanie o przegladarke ... a raczej otrzymuje taką informację standardowo ... i przeglądarka może wysłać co tylko chce ...
Szymon
Zrobione i nawet dziala smile.gif
Dzieki!

Opera "podszywa" sie pod IE, ale na samym koncu $_SERVER podaje, ze jest Operą smile.gif
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.