Ga naar inhoud

User Agents


Aanbevolen berichten

In plaats van alle verschillende UA's bij te houden kan je misschien beter kijken naar herhalende patronen in UA's. Zo zien alle Gecko-browsers (alle gebaseerd op Mozilla) er ongeveer hetzelfde uit. Met regular expressions kan je dan in één keer zien van welke familie het komt en kan je evt later opsplitsen op bijvoorbeeld versie. Wat ook zou kunnen is gewoon beginnen met een standaardset (IE, Mozilla, Opera, Safari) en uitbreiden als dit nodig blijkt. Dit vereist wel dat je alle UA's opslaat... Ga je de lijst zelf bijhouden of kijk je in je Apache access log? - Bas
Link naar reactie
1. Het zijn er idd heel erg veel. Daarom wil ik me beperken tot de gangbare browsers. Browsers waar minder dan 1 of 2 % van de bezoekers gebruik van maakt valt dan onder overig. 2. Ik was van plan dit met php en de http_user_agent te doen. (Als mn host een browsecap.ini gaat gebruiken, dan ga ik mss voor de get_browser() functie. 3. Wat zijn regular expressions??? (ik zoek al op google) 4. Dat van die standaard-set lijkt me een goed idee. Maar dan wil ik wel zoiets gaan maken dat je ook de verschillende versie kunt zien. (ook hier alleen de gangbare versies. Een of andere exotische versie hoeft natuurlijk niet). Dus als ik voor de populaire browsers een soort statistieken systeempje wil maken, moet ik daar toch wel de 'identificatie' strings hebben (als je dat zo mag noemen).
Link naar reactie
[quote:2a90ff60fb="stierenoog"]1. Het zijn er idd heel erg veel. Daarom wil ik me beperken tot de gangbare browsers. Browsers waar minder dan 1 of 2 % van de bezoekers gebruik van maakt valt dan onder overig.[/quote:2a90ff60fb]Lijkt me niet onverstandig.[quote:2a90ff60fb="stierenoog"]2. Ik was van plan dit met php en de http_user_agent te doen.[/quote:2a90ff60fb]Kan, maar denk er dan wel aan dat bijvoorbeeld Opera zich standaard identificeerd als IE.[quote:2a90ff60fb="stierenoog"]3. Wat zijn regular expressions??? (ik zoek al op google)[/quote:2a90ff60fb]Met regular expressions (regexps) kan je controleren op patronen. Van Mozilla is de UA-string van de stabiele versie altijd hetzelfde muv het versienummer. Met een regexp kan je dus controleren óf het Mozilla is en welke versie het betreft.[quote:2a90ff60fb="stierenoog"]4. Dat van die standaard-set lijkt me een goed idee. Maar dan wil ik wel zoiets gaan maken dat je ook de verschillende versie kunt zien. [/quote:2a90ff60fb]Zie voorgaand antwoord.[quote:2a90ff60fb="stierenoog"] Dus als ik voor de populaire browsers een soort statistieken systeempje wil maken, moet ik daar toch wel de 'identificatie' strings hebben[/quote:2a90ff60fb]Ik zou deze allemaal in een database oid opslaan en vervolgens de statistieken hieruit berekenen. Waarom? Stel dat je later nieuwe UA-strings toevoegt, dan kan je al je statistieken updaten! En ik zou zeker even aan je host vragen of ze leesrechten voor de Apache access log bieden, dan scheelt het je namelijk een hoop werk en moeite. Nog even iets... Het is waarschijnlijk niet onverstandig om ook te werken met client side scripting. Op deze manier kan je gegevens opvragen die niet aan de serverkant beschikbaar zijn én je kan gegevens die de server krijgt verifiëren. Zo kan je opera herkennen doordat het als enige (en altijd) [i:2a90ff60fb]window.opera[/i:2a90ff60fb] ondersteunt, dus dan heb je zekerheid. - Bas
Link naar reactie
[quote:657f773516="BasHamar"]Kan, maar denk er dan wel aan dat bijvoorbeeld Opera zich standaard identificeerd als IE.[/quote:657f773516] Niet geheel. Standaard is de user-agent 'Mozilla/4.0 (compatible; MSIE, 6.0; Windows 98) Opera 7.0 [en]' Opera staat er dus wel in ;) zie http://my.opera.com/community/dev/idopera/
Link naar reactie
Gecko is geen browser, maar een engine. Alleen browsers uit de Mozilla-familie gebruiken het. Ik zou de volgende families nemen: - IE (vreemde familie, vergelijkbaar met schoonfamilie) - Mozilla, Firefox, Camino, Netscape (doet alles zoals je dat verwacht, eigen familie) - Opera - Safari - Konqueror - Lynx (voor als je hier een sitecheck plaatst) Dit moet wel ongeveer afdoende zijn... - Bas
Link naar reactie
ik denk nu een manier gevonden te hebben zodat je opera er altijd uitpikt... [code:1:7bdc1e6ef1]if (eregi('opera/([0-9]+\.[0-9]+)', $detect, $regs)) { $browser = 'Opera ' . $regs[1]; } elseif (eregi('opera ([0-9]+\.[0-9]+)', $detect, $regs)) { $browser = 'Opera ' . $regs[1]; }[/code:1:7bdc1e6ef1] Opera kan zich namelijk als opera identificeren: opera/7.23 (windows nt 5.1; u) [en] of als een andere browser. Daar staat dan altijd opera 7.23 [en] achter.... Op deze manier controleert het eerst of opera een normale user agent string geeft, of dat het anders gedaan wordt.... Owjah...Regular expressions zijn erg handig...alleen weet ik niet al die opties...nu ken ik alleen [0-9]... (ik had ook ergens gelezen dat \d hetzelfde is, maar dat werte niet.)
Link naar reactie
[quote:b2f846e983="stierenoog"]Owjah...Regular expressions zijn erg handig...alleen weet ik niet al die opties...nu ken ik alleen [0-9]... (ik had ook ergens gelezen dat \d hetzelfde is, maar dat werte niet.)[/quote:b2f846e983] Kijk dan eens naar de [url=http://www.php.net/manual/en/ref.pcre.php]PCRE's[/url], daar moet \d wel werken. Voor Posix regular expressions gebruik je als ik me niet vergis (gebruik ze namelijk zelf nooit) [[:digit:]]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...