Ako hocete da vidite kako radi - http://www.zastita.co.yu/agent1.php .
A agent.php je sama skripta, bez echo i $_SERVER...
Zasto 3.0?
Zato sto sam izbacio eregi, sada sam isao na foru da Agent string explode-ujem u Array, pa onda obicnom FOR petljom proveravam reci...
Mislim da je tako skripta mnogo brza, a i radi znatno sigurnije, i sors je citljiviji.
Tamo sam stavio komentar gde da dodajete nove browsere, veoma lako se dodaju, samo ukucate ime novog browsera, odnosno operativnog sistema.
Skripta radi punih 24h bez ijedne greske, obradila je oko 70 razlicitih Agent potpisa, i deluje mi veoma 'zdravo'.
Ako je budem slucajno update-ovao, ovde cu samo da napisem da sam to ucinio, a vi imate link za sors.
Skriptu sam napravio da bude modularna, pa je i vi tretirajte kao takvu, znaci snimite je u poseban php fajl koji cete da includujete iz vase skripte, tako da ce buduci update proci bezbolno, samo zamenite fajl.
E, i jos nesto, veoma vazno.
Nema vise $os i $browser, stvar je malo komplikovanija zbog estetike.
Naime, glavna skripta se nalazi u funkciji koja vraca jedndimenzioni Array od dva niza - u prvom je upisan OS a u drugi Browser.
Fora je u tome sto ova skripta ne koristi uopste globalne promenljive, sto znaci da MOZE da se koristi u kombinaciji sa svim mogucim skriptama, bez bojaznosti da ce nesto da poremeti.
Sada mozete cak i da birate koja promenljiva ce da sadrzi recimo ime browsera, to ne mora da bude $browser...
Dakle, da rezimiram, ovako nesto bi trebali da upisete u vasu skriptu:
include ("agent.php");
$a=detect_os_and_browser ($HTTP_USER_AGENT);
$os=$a[0];
$browser=$a[1];
Kao sto rekoh, $browser ne mora da bude $browser (kao i $os), sami krstite promenljivu...
Skripta je 'hermeticki' zatvorena, i ne ostavlja niti menja bilo kakve promenljive.