Detekcia prehliadača

Programovacie jazyky, rady, poradňa...
atlox
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 230
Registrovaný: 15 aug 2006, 0:31
Bydlisko: Poprad
Kontaktovať používateľa:

Detekcia prehliadača

Príspevok od používateľa atlox »

Zdravím borci! :wink:
Snažím sa urobiť presne to, čo je v názve témy. Ani neviem, či na to idem správnym spôsobom, tak preto sa obraciam na vás, aby ste mi to skritizovali, poprípade mi pomohli. Asi by som sa tu ani neozýval, len som narazil na jeden problém. No ale pekne poporiadku.

Takže PHP skriptom získam $_SERVER['HTTP_USER_AGENT']. Táto premenná obsahuje reťazec (čo sa týka jeho obsahu hádam každý vie). No a ja som šiel na detekciu prehliadača spôsobom:

funkcia strpos() zistí výskyt určitého reťazca v inom reťazci a vráti hodnotu na ktorej bol hľadaný reťazec nájdený. Čiže ak zisťujem či je prehliadačom Firefox tak hľadám reťazec "Firefox" v premennej user_agent. Ak mi funkcia strpos() vráti číslo, je to Firefox. Ak nevráti nič tak to nie je Firefox. Funguje mi to celkom fajn.

A teraz problém. Ak zisťujem či prehliadačom bola Opera, funkcia strpos() vráti hodnotu 0 (pretože user_agent v opere je "Opera/9.63 (Windows NT 6.0..."). Tá 0 sa potom v podmienke správa ako keď funkcia strpos() nevráti hodnotu.

Kód: Vybrať všetko

if (strpos($_SERVER['HTTP_USER_AGENT'],"Opera") != "") {
  echo ('je to Opera');
}
Dúfam, že ma chápete o čo mi ide a tak vás prosím o radu ako to vyriešiť poprípade ako by ste na detekciu prehliadača (v PHP!) išli vy. Vopred vďaka. :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

"J"
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1019
Registrovaný: 13 mar 2007, 17:10

Príspevok od používateľa "J" »

Ak retazec nie je najdeny, vracia false, cize:

Kód: Vybrať všetko

if (strpos($_SERVER['HTTP_USER_AGENT'],"Opera") !== false) {
  echo ('je to Opera');
}
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: Detekcia prehliadača

Príspevok od používateľa chrono »

atlox napísal:...
A aký zmysel to má? Zmeniť identitu prehliadača je jednoduché (prípadne môže byť odosielanie identity zakázané), takže spoliehať sa na to nie je najrozumnejšie.
awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Príspevok od používateľa awtt »

ja pouzivam toto

Kód: Vybrať všetko

  
if(eregi("opera", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Opera";
}
else if(eregi("msie.4", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "MS IE 4.0";
}
else if(eregi("msie.5\.0", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "MS IE 5.0";
}
else if(eregi("msie.5\.5", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "MS IE 5.5";
}
else if(eregi("msie.6", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "MS IE 6.0";
}
else if(eregi("MSIE 7.0", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "MS IE 7.0";
}
else if(eregi("msie", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "MS IE 3.0";
}
else if(eregi("konqueror", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Konqueror";
}
else if(eregi("lynx", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Lynx";
}
else if(eregi("links", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Links";
}
else if(eregi("netscape", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Netscape";
}
else if(eregi("mozilla/5", $_SERVER['HTTP_USER_AGENT'])) {
$browser = "Mozilla";
}
else {
$browser = "Ostatné";
}

echo $browser;
atlox
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 230
Registrovaný: 15 aug 2006, 0:31
Bydlisko: Poprad
Kontaktovať používateľa:

Re: Detekcia prehliadača

Príspevok od používateľa atlox »

chrono napísal:A aký zmysel to má? Zmeniť identitu prehliadača je jednoduché (prípadne môže byť odosielanie identity zakázané), takže spoliehať sa na to nie je najrozumnejšie.
No to má len informatívny zmysel. Nič iné ani hlbšie za tým nehľadám, v podstate je to pre mňa len "prieskum" kto aký prehliadač používa. Ale vďaka páni za vaše odpovede. Pomohli ste mi :)
Napísať odpoveď