Böngésző és "USER_AGENT" adatok
2011-10-07T19:33:06+02:00
2011-10-08T21:51:33+02:00
2022-06-30T10:31:41+02:00
  • Az a jó a "Társalgó"-ban, hogy jól el lehet kalandozni az eredetileg felvetett témától.

    Eredetileg az volt a kérdésem, hogy a böngészők névjegyében lévő nevet hogyan lehetne "szakszerűbben/jobban/szebben" és pontosabban lekérdezni PHP-val,
    ---mivel erre lenne szükségem valamilyen őrült ötlet miatt---
    annál, mint ahogy a példa-linken látható, általam próbált megoldással.
    Ehhez képest már a jövő "okos-telefonjainak" kiszolgálásáról szól az eszmecsere.


    Az már más kérdés, hogy hidegrázásom van mivel a csapból is az
    OKOS-TELEFON, OKOS_KÖLCSÖN... folyik BUTA-EMBEREK számára...
    Mutasd a teljes hozzászólást!
  • Ez esetben éppen nem az user-agent a kérdés, hanem a képernyőméret. Erre viszont egy kétsoros JS lekérdezés használhatóbb, mint az user-agent - lásd iPhone3 és 4 esetében az user-agent nem túl informatív, pedig a 4-esnek dupla képernyőfelbontása van.

    Ezen felül - bár gondolom találkoztál ezzel a problémával - a ma forgalomban levő okostelefonok nagyjából 16 féle képernyőmérettel vannak megáldva, ennyiféle optimalizációra normális fejlesztő nem vállalkozik.
    A megoldás - és egyelőre nincs még ennél jobb - a rugalmas szélességű tárolóelemek használata.

    Amúgy Csabóka már leírta a tutit: jóval fontosabb az eszköz képességeit tesztelni (feature detect) mint az user-agent-tel bíbelődni.
    Én legalább is nem tenném...
    Mutasd a teljes hozzászólást!
  • ilyen esetekre egy redirt szoktak használni szokás szerint a http://m.*** vagy http://****/m oldalakra
    a gugli például simán bannol azért, ha ugyanazon az url-en többféle tartalmat szolgálsz ki. Ezért raknak pl. többnyelvű oldalaknál is nyelvi kódot az url-be (http://***/en/***)
    Mutasd a teljes hozzászólást!
  • A világ hála az égnek arrafelé mozog, hogy ne kelljen böngészőtől függően más-más tartalmat szolgáltatni.


    Viszont az okos telefonok elterjedése indokolttá teheti a useragent vizsgálatát, ugyanis ezzel el lehet dönteni, hogy milyen eszközre optimalizált lapot generáljon a szerveroldal.
    Mutasd a teljes hozzászólást!
  • Nem vitatkozni akarok, de a témám felvetésekor csak a linkelt topic-ban(remélem végig olvastad) a kérdező által felvetett kérdésre kerestem a választ, nem pedig "browserfüggő szolgáltatás" megoldásának lehetőségeire.
    Meg ne sértődj, de ezért nem értettem a válaszod "jellegét", mert nagyon hasonlít arra amikor egy kérdező megkérdezi hogyan tudná egy adott tartalom szövegszínét megváltoztatni mouseover/mouseout eseménnyel és JQUERY-is csili-vili plugin-ek linkjét kapja válaszul egy egyszerű JS-es megoldás helyett.
    Mutasd a teljes hozzászólást!
  • Harmadszor nem valószínű, hogy az én életemben megtörténik, "hogy ne kelljen böngészőtől függően más-más tartalmat szolgáltatni".


    Hát nem tudom, a jelenlegi munkám webes fejlesztés (a HTML markup nem, csak a mögötte levő kód). Sehol nem láttam olyan kódot nálunk, ami szerver oldalon nézegeti a user-agent headert, és különböző tartalmat szolgál ki ez alapján. Minden böngészőnek ugyanaz a tartalom megy ki, max a CSS-ben vannak hack-ek bizonyos böngésző kedvéért.

    Negyedszer a JS-es detektálás sem az igazi., figyelembe véve a linkelt topic-ban elhangzottakat: "A böngésző neve Firefox és Netscape Navigator esetében".


    Nem böngésződetektálást írtam, hanem böngésző feature detektálást. Azt kell detektálni, hogy teszem azt tud-e Web Storage-ot vagy WebGL-t, nem azt, hogy mi a neve.
    Mutasd a teljes hozzászólást!
  • Először is köszi a linket.
    Másodszor csak kíváncsiság és "nem kell semmire igazából", nincs vele semmilyen (hátsó) szándékom.
    Harmadszor nem valószínű, hogy az én életemben megtörténik, "hogy ne kelljen böngészőtől függően más-más tartalmat szolgáltatni".
    Negyedszer a JS-es detektálás sem az igazi., figyelembe véve a linkelt topic-ban elhangzottakat: "A böngésző neve Firefox és Netscape Navigator esetében". Ha nem hiszed nézd meg a következő LINKEN a "Browser Name:" értéket az említett két böngésző alatt.
    Mind a kettőnél -> Browser Name: Netscape/Browser Name: Netscape, azaz nem a kérdező által elvárt Firefox/(Netscape)Navigator.
    Mutasd a teljes hozzászólást!
  • Egyrészt ezt a munkát megcsinálták már mások.

    Másrészt, mire kell ez neked igazából? A világ hála az égnek arrafelé mozog, hogy ne kelljen böngészőtől függően más-más tartalmat szolgáltatni. Ha browserfüggő szolgáltatást akarsz használni, akkor a javascriptes feature detektálást javasolják manapság, nem a user agent vizsgálatát.
    Mutasd a teljes hozzászólást!
  • Üdvözlet mindenkinek!
    Egy a "Tudástár"-ban feltett kérdés
    Böngésző neve
    kapcsán kicsit végig bogarásztam, hogy az általam elérhető böngészők esetében milyen INFO-t kapok vissza és abból hogyan lehet egy függvénnyel hívásával a kérdést megoldani(Netscape/Navigator/Firefox).
    A kapott eredmény a következő TESZT-en látható.
    A kérdésem, hogyan lehetne szakszerűbben/jobban/szebben megoldani.
    A kérésem pedig, hogy aki a TESZT-en látható böngészőktől eltérőnél is tudja próbálni a függvényt, az juttassa el hozzám a "$_SERVER['HTTP_USER_AGENT']" lekérdezés eredményét(a kapott stringet).
    Köszönet mindenkinek, aki hozzászól...
    A függvény forráskódja:
    <?php function get_user_browser() { $infok = array(); $user_agent = $_SERVER['HTTP_USER_AGENT']; $known = array('webkit', 'gecko', //Google és Netscape Navigaor miatt 'firefox', 'opera', 'chrome', 'safari', 'navigator', 'msie', //általam vizsgáltak 'netscape','konqueror', 'camino', 'seamonkey', 'flock', 'amaya', 'lynx', 'omniweb', 'avant'); //nem vizsgáltak preg_match_all( '#(?<browser>'.join("|", $known).')[/ ]+(?<version>[0-9]+(?:\.[0-9]+)?)#', strtolower($user_agent), $browser ); if($browser['browser'][0]=='msie') { $infok['name'] = ucfirst($browser['browser'][0]); $infok['version'] = ucfirst($browser['version'][0]); } else if($browser['browser'][0]=='opera') { $infok['name'] = ucfirst($browser['browser'][0]); $infok['version'] = ucfirst($browser['version'][0]); } else if(isset($browser['browser'][2]) && $browser['browser'][2]=='navigator' ) { $infok['name'] = ucfirst($browser['browser'][2]).'(Netscape)'; $infok['version'] = ucfirst($browser['version'][2]); } else { $infok['name'] = ucfirst($browser['browser'][1]); $infok['version'] = ucfirst($browser['version'][1]); } /* A teljes tömb megjelenítése csak a teszt miatt */ echo '<h5 style="text-align:center;">Aktuális böngésző "USER_AGENT" adatok tömbbe:</h5>'; echo '<div id="browser" style="text-align:center;margin:0;padding:0;color:white;font-weight:700;">'; echo '<pre style="width:400px;margin: 0 auto;text-align:left;background-color:gray;border:1px solid white;">'; print_r($browser); echo '</pre></div>'; echo '<h4 style="text-align:center;background-color:gray;font-size:14px;padding:10px 0;">Függvény kimenete: '; /* A teljes tömb megjelenítése csak a teszt miatt */ return $infok; } $adat = get_user_browser(); echo '<span style="color:white;">"'.$adat['name'].'-'.$adat['version'].'"</span></h4>'; ?>
    Mutasd a teljes hozzászólást!
abcd