400 PHP i MySQL dla każdego
♦ BROWSER_NETSCAPE — o wartości 3; oznaczającą, że użytkownik wykorzystuje przeglądarkę Netscape Navigator;
♦ BROWSER_MOZILLA—o wartości 4; oznaczającą, że użytkownik wykorzystuje przeglądarkę Mozilla (lub kompatybilną);
♦ BROWSER_MSIE — o wartości 5; oznaczającą, że użytkownik wykorzystuje przeglądarkę Internet Explorer;
♦ BROWSERJDPERA — o wartości 6; oznaczającą, że użytkownik wykorzystuje przeglądarkę Opera;
♦ SYSTEMJJNKNOWN — o wartości 0; oznaczającą, że nie udało się rozpoznać wykorzystywanego przez użytkownika systemu operacyjnego;
♦ SY$TEM_LINUX — o wartości 1; oznaczającą, że użytkownik wykorzystuje system operacyjny Linux;
♦ SYSTEM_MACOS — o wartości 2; oznaczającą, że użytkownik wykorzystuje system operacyjny MacOS;
♦ SYSTEM_WINDOWS — o wartości 3; oznaczającą, że użytkownik wykorzystuje system operacyjny Windows.
Pracę zacznijmy od procedur rozpoznających system operacyjny i rodzaj przeglądarki użytkownika. Dane te uzyskamy odczytując ciąg znaków zapisany w tablicy $_SERVER pod indeksem 'HTTP_USER_AGENT'. Postać tego ciągu jest zależna od systemu operacyjnego i przeglądarki; przykładowe wartości to:
Mozilla/5.0 (Windows: U: Windows NT 5.0: en-US: rv:1.7) Gecko/20031007 Mozilla/4.0 (compatible: MSIE 6.0: XII: Linux i686) Opera 7.23 [en]
Mozilla/5.0 (Windows: U: Windows NT 5.0: en-US: rv:1.4) Gecko/20030624 Netscape/7.1 (ax) Mozilla/4.0 (compatible: MSIE 6.0; Windows NT 5.0: .NET CLR 1.0.3705)
Mozilla/5.0 (compatible: Konqueror/3.1: Linux)
Mozilla/5.0 (Macintosh: U: PPC Mac OS X Mach-0: en-US; rv:1.6) Gecko/20041126 Firefox/1.0
Bliższe przyjrzenie się tym napisom pozwoli nam szybko odkryć, że pierwszy ciąg to Mozilla 1.7 działająca w systemie Windows, ciąg drugi to Opera 7.23 działająca pod Linuxem, ciąg trzeci to Netscape 7.1 działający w systemie Windows, ciąg czwarty to Internet Explorer działający pod Windows, ciąg piąty Konqueror 3.1 działający pod Linuxem, a ciąg szósty to FireFox 1.0 działający w systemie MacOS.
Największy problem w identyfikacji sprawi nam Mozilla, gdyż jak widać większość przeglądarek zgłasza się jako Mozilla compatible. Przyjmiemy zatem następujące założenie —jeśli odnajdziemy ciąg znaków Mozilla, ale nie znajdziemy ciągów FireFox, Konqueror, MSIE, Nestcape, Opera, to najprawdopodobniej mamy do czynienia z przeglądarką Mozilla. Drugim problemem jest to, że niektóre przeglądarki pozwalają na zmianę sposobu swojej identyfikacji (np. Opera). Na szczęście żadna zmiana nie powoduje usunięcia ciągu znaków charakterystycznego dla danego produktu (Opera, FireFox, Netscape itp.). Wystarczy zatem odpowiednia kolejność identyfikowania przeglądarek, aby pozbyć się wymienionych problemów.