Toon posts:

[ASP] Browser detectie- bug

Pagina: 1
Acties:

Verwijderd

Topicstarter
Geachte tweakers, onlangs heb ik na mijn mening de volgende bug ontdekt.

Wat was ik aan het doen:

Ik probeer met browser- client detectie te detecteren welke browser mijn klanten gebruiken, omdat ik dan weet of ik ze kan ondersteunen ( ik ondersteun alleen IE gebruikers ).

Hoe doe ik dat:

Ik doe dit door middel van de volgende ASP code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    <%
    ' create the IIS Browser Capabilities ob
    '     ject
    'this will allow us to detect the browse
    '     r type
    Set browserdetect = Server.CreateObject("MSWC.BrowserType")
    ' get the properties of the browser
    browser=browserdetect.Browser
    version=browserdetect.Version
    platform=browserdetect.Platform
    frames=browserdetect.Frames
    cookies=browserdetect.Cookies
    javascript=browserdetect.JavaScript
    tables=browserdetect.Tables
    majorver=browserdetect.Majorver
    minorver=browserdetect.Minorver
    'Lets see what we have got!
    response.write "Browser: " & browser & "<BR>"
    response.write "Version: " & version & "<BR>"
    response.write "Majorver: " & majorver & "<BR>"
    response.write "Minorver: " & minorver & "<BR>"
    response.write "Platform: " & platform & "<BR>"
    response.write "Supports frames?: " & frames & "<BR>"
    response.write "Supports cookies?: " & cookies & "<BR>"
    response.write "Supports JavaScript?: " & javascript & "<BR>"
    response.write "Supports tables?: " & tables & "<BR>"
    response.write "HTTP_USER_AGENT: " & Request.ServerVariables("HTTP_USER_AGENT") & "<BR>"
    %>

Wat is nou het probleem?:

Microsoft heeft IE6 uitgegeven. En als ik een klant met IE6 tegenkom, dan geeft bovenstaande code aan dat de klant Netscape Navigator gebruikt, een nogal concurent van Microsoft.

Wat is nou mijn discussiepunt?:

Ik zou graag willen weten of bij jullie dit probleem ook al is opgetreden, en hoe jullie dit oplossen, want ik ondersteun geen netscape, en heb dus geen mogelijkheid om een IE user van een Netscape user te onderscheiden.

Ook vraag ik me af hoe Microsoft zo'n mega blunder heeft kunnen maken, dit zou de naam toch zeker geen goed doen, na hun zeggen de beste browser wordt dus als een browser van de concurent herkent... Ik ben zelf niet tegengekomen of microsoft dit probleem al heeft onderkent.

Graag jullie reacties...

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

das een betere vraag :)
btw gebruik nog ff de code tags :)

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Op vrijdag 25 januari 2002 16:53 schreef D2k het volgende:
das een betere vraag :)
btw gebruik nog ff de code tags :)
Thnx, voor de code- tip ( en het omhoog schoppen van m'n topic *D ).

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 25 januari 2002 16:54 schreef apottjewijd het volgende:
Thnx, voor de code- tip ( en het omhoog schoppen van m'n topic *D ).
ik ben de rotste niet :)
maar je ziet nu zelf het verschil met je eerste topic
</offtopic>

Doet iets met Cloud (MS/IBM)


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
apottjewijd: Microsoft heeft IE6 uitgegeven. En als ik een klant met IE6 tegenkom, dan geeft bovenstaande code aan dat de klant Netscape Navigator gebruikt, een nogal concurent van Microsoft.
Ik begrijp nog steeds niet waarom deze bewering volgt uit je verhaal :) . Laat eens wat output zien?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Jah, save 'm ergens, ik heb IE6, dan kunnen we ff controleren :)

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Kun je niet gewoon simpel naar de HTTP_USER_AGENT string kijken die meegestuurd wordt in de header?

Deze heb ik in ieder geval met m'n IE 6:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)
En deze met NS 6.2:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1

Verwijderd

Topicstarter
Op vrijdag 25 januari 2002 16:56 schreef mbravenboer het volgende:

[..]

Ik begrijp nog steeds niet waarom deze bewering volgt uit je verhaal :) . Laat eens wat output zien?
Joepie, we raken weer een beetje on- topic. Is voor iedereen met IE6 uit te proberen als ze deze code als ASP op een server draaien, zegt ie bij de response.write onder de browsernaam gewoon dat je een Netscape browser hebt draaien. Ik hoop dat iedereen dit gewoon zelf gaat testen, en ziet dat er zeker iets fout is met het object of de IE browser. Ik kan wel gewoon de output neertikken, maar dat gelooft toch niemand. Trying = believing... *D

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op vrijdag 25 januari 2002 16:59 schreef apottjewijd het volgende:
Ik kan wel gewoon de output neertikken, maar dat gelooft toch niemand. Trying = believing... *D
Ok, ik neem de proef op de som:
http://gathering.tweakers.net/~acm/test/test.asp

*kuch* :P
Nahja, ik heb geen ASP-host ;)
Wie wel?


Lijkt me trouwens inderdaad een erg lame bug van ze, met een nogal foute controle op de USER_AGENT string, die ze ongetwijfeld uitpluizen.

Welke IIS draai je?

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op vrijdag 25 januari 2002 17:03 schreef ACM het volgende:

[..]

Ok, ik neem de proef op de som:
http://gathering.tweakers.net/~acm/test/test.asp

*kuch* :P
Nahja, ik heb geen ASP-host ;)
Wie wel?
:D

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
apottjewijd: ziet dat er zeker iets fout is met het object of de IE browser
Kijk, das een belangrijk uitgangspunt ;) . Bovendien kan er ook nog iets mis zijn met de manier waarop je de resultaten leest...

Ik draai geen ASP (en geen IE) dus kan het ook niet uitproberen :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Ik ga hem even op de webserver van ons zetten, moet hem daar alleen voor het weekend vanaf halen, dus is maar effies beschikbaar, ga nu bezig met neerdumpen. Momentje...

Verwijderd

Topicstarter
Done, tot half 6 kon iedereen ergens met IE6 de grote fout zien. Nu helaas al niet meer, maar dump de code in dit topic op een webserver die ASP ondersteunt en zie wat ik bedoel.

Het resultaat is ook door enkele users hier aangetoond.

Verwijderd

Topicstarter
Op vrijdag 25 januari 2002 16:58 schreef Nielsz het volgende:
Jah, save 'm ergens, ik heb IE6, dan kunnen we ff controleren :)
Please check m'n site dan eventjes... en plaats je bevindingen a.u.b.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Traaaaaaaaaag :)


Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; c't-nl)



:D
(win2kproff, ie6.0.2600.nogwat)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Voor de vergelijking, ik krijg met Mozilla 0.9.7 dit:
code:
1
2
Browser: Default
HTTP_USER_AGENT: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.7) Gecko/20011221

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Arnim
  • Registratie: Juni 2001
  • Laatst online: 04-09 15:49
Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

En toch gebruik ik IE6

Team ColdFusion


Verwijderd

Topicstarter
Op vrijdag 25 januari 2002 17:11 schreef Nielsz het volgende:
Traaaaaaaaaag :)


Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; c't-nl)



:D
(win2kproff, ie6.0.2600.nogwat)
Conclussies / restpunten:

1. Ik ben niet gek.
2. Microsoft wel?
3. Waar zit de fout nou?
4. Mijn punt is bewezen
5. Code kan weer van de site af...

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Netscape 6:
code:
1
2
3
4
5
6
7
8
9
10
Browser: Default
Version: 0.0
Majorver: 0
Minorver: 0
Platform: unknown
Supports frames?: False
Supports cookies?: False
Supports JavaScript?: False
Supports tables?: True
HTTP_USER_AGENT: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1

IE 6 (XP standaard)
code:
1
2
3
4
5
6
7
8
9
10
Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)

Gewoon checken op MSIE dus

Verwijderd

Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.2914)

Knap :?

  • waslijn
  • Registratie: Januari 2000
  • Laatst online: 10-09 05:52
Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Je kunt toch gewoon die HTTP_USER_AGENT gebruiken voor het bepalen van de browser.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op vrijdag 25 januari 2002 17:14 schreef apottjewijd het volgende:

[..]

Conclussies / restpunten:
Het is gewoon een baggerobject :)

  • GiLuX
  • Registratie: Juni 1999
  • Laatst online: 12-11-2025
lynx gaat goed:
code:
1
HTTP_USER_AGENT: Lynx/2.8.3dev.18 libwww-FM/2.14

"I disagree with what you are saying, but I will defend to the death your right to say it." -- not clear who


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
apottjewijd: 1. Ik ben niet gek.
Zonder twijfel ;) .
2. Microsoft wel?
Wellicht ;) .
3. Waar zit de fout nou?
In het server-side component, niet in de browser :)
4. Mijn punt is bewezen
Nee, jij zei namelijk dat het een fout in IE6 is :+ .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Bedankt voor jullie replies allemaal, ik vraag me dus alleen af of MS dit ook al heeft ontdekt. Ik kwam ineens voor nogal wat grote problemen in elk geval, zeurende klanten "Weeee, ik heb IE6, en jij zegt dat ik netscape heb, vervelende programmeur!"

Zou er dan een soort ID in IE6 zitten die aangeeft dat het van Netscape is, of heeft MS netscape overgekocht en is IE eigenlijk Netscape?

Of zou iemand gewoon een hekel aan MS hebben en deze bug er in hebben geplaatst?

Verwijderd

Topicstarter
Mag ik er even op wijzen dat het object
MSWC.BrowserType ook van Microsoft is, en dat daarmee is bewezen dat MS niet eens weet wat zijn eigen software is :?

Verwijderd

Topicstarter
Sorry, ik moet weekend vieren, moet ook de browser asp weer weghalen, maar het resultaat was bekend...

Bedankt voor de reacties allemaal O+

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op vrijdag 25 januari 2002 17:18 schreef apottjewijd het volgende:
Mag ik er even op wijzen dat het object
MSWC.BrowserType ook van Microsoft is
Mag ik er even op wijzen dat een object
geen browser is

;) dus het is iig geen bug in ie :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
apottjewijd: Mag ik er even op wijzen dat het object MSWC.BrowserType ook van Microsoft is, en dat daarmee is bewezen dat MS niet eens weet wat zijn eigen software is :?
Dat is inderdaad vrij matig ja...

(en je had dus wel een beetje gelijk ;) ).

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Op vrijdag 25 januari 2002 17:20 schreef Nielsz het volgende:

[..]

Mag ik er even op wijzen dat een object
geen browser is

;) dus het is iig geen bug in ie :)
Weet ik nog steeds niet, dat object kijkt toch naar een bepaald gegeven van de browser ( persoonlijke denk modus ), dus het zou best kunnen dat die browser verkeerde info meestuurt, hoeft het niet de schuld van het object te zijn dat die gewoon maar uitleest wat ie van de browser ontvangt...

Het hangt er dus nog om of het object of IE fout is, maar beide is MS, dus het blijft een blamage *D

[weekend vier modus]tot maandag[/weekend vier modus]

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 09-09 17:22
Ik heb ook het probleem.

Op IE6
Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

en IE5 (Server bak)
Browser: IE
Version: 5.0
Majorver: 5
Minorver: 0
Platform: WinNT
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

  • Edd
  • Registratie: Januari 2001
  • Laatst online: 15-09 10:44

Edd

Welke IIS versie gebruik je?
Ik draai hem net op XP(IIS 5.1, als ik me niet vergis) en hij zegt toch echt netjes dat ik IE6 draai.
code:
1
2
3
4
5
6
7
8
9
10
11
Browser: IE
Version: 6.0
Majorver: 6
Minorver: 0
Platform: WinNT
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0;
 Windows NT 5.1; Q312461; .NET CLR 1.0.3705)

-


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op vrijdag 25 januari 2002 17:23 schreef apottjewijd het volgende:

[..]

Weet ik nog steeds niet, dat object kijkt toch naar een bepaald gegeven van de browser ( persoonlijke denk modus ), dus het zou best kunnen dat die browser verkeerde info meestuurt, hoeft het niet de schuld van het object te zijn dat die gewoon maar uitleest wat ie van de browser ontvangt...

Het hangt er dus nog om of het object of IE fout is, maar beide is MS, dus het blijft een blamage *D

[weekend vier modus]tot maandag[/weekend vier modus]
De useragent pakt hij wel goed. Dus ik denk echt dat het een object fout is wat een stuk minder mooi erg is :)

Verwijderd

Topicstarter
Hee, maar nou wordt het weer interessant, waar zou het probleem nou liggen, er zijn 3 kandidaten:

-IE6
-Het object
-IIS

Allemaal MS overigens *D, dus denk dat Bill best wel kan janken ( hee, dat zou een leuke titel zijn geweest *D )

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op vrijdag 25 januari 2002 17:27 schreef apottjewijd het volgende:
Allemaal MS overigens *D, dus denk dat Bill best wel kan janken ( hee, dat zou een leuke titel zijn geweest *D )
:+
ma goed wat heb je nou geleerd?
met een duidelijke vraag komen er duidelijke antwoorden :)

Doet iets met Cloud (MS/IBM)


  • Edd
  • Registratie: Januari 2001
  • Laatst online: 15-09 10:44

Edd

Denk het object.... oude versie van het object kent geen IE6... Ziet Mozilla/4.0 staan en gaat er dan vanuit dat het Netscape 4.00 is

-


Verwijderd

Topicstarter
Op vrijdag 25 januari 2002 17:27 schreef Edd het volgende:
Denk het object.... oude versie van het object kent geen IE6... Ziet Mozilla/4.0 staan en gaat er dan vanuit dat het Netscape 4.00 is
Verklaart dan niet waarom iemand met een andere IIS wel ineens een juiste reactie krijgt...

D2K, ik geef je wel helemaal gelijk, ben ook erg blij dat ik nou toch m'n topicje heb kunnen houden :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
apottjewijd: Verklaart dan niet waarom iemand met een andere IIS wel ineens een juiste reactie krijgt...
Nieuwe versie van het component :?

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Edd
  • Registratie: Januari 2001
  • Laatst online: 15-09 10:44

Edd

Draai net die asp op een W2K machine met IIS5 en die geeft het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1; Q312461; .NET CLR 1.0.3705)

Het lijkt mij echt aan de versie van je object te liggen.

-


  • waslijn
  • Registratie: Januari 2000
  • Laatst online: 10-09 05:52
De nieuwste versie van IIS bevat natuurlijk de laatste versie van het component, lijkt me duidelijk.

Het is echt niet de browser die de fout veroorzaakt, kan je namelijk zien aan de HTTP_USER_AGENT string die wel ok is.

  • TheOneLLama
  • Registratie: Oktober 2000
  • Laatst online: 20-01-2022

TheOneLLama

A llama like no llama before

Op vrijdag 25 januari 2002 17:23 schreef apottjewijd het volgende:

[..]

Weet ik nog steeds niet, dat object kijkt toch naar een bepaald gegeven van de browser ( persoonlijke denk modus ), dus het zou best kunnen dat die browser verkeerde info meestuurt, hoeft het niet de schuld van het object te zijn dat die gewoon maar uitleest wat ie van de browser ontvangt...
De browser geeft gewoon een beetje info mee over zichzelf, in dit geval:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Hiermee zegt ie, dat ie Mozilla 4.0 compatible is, z'n "naam" MSIE 6.0, en z'n Operating System Windows NT 5.1 (mooie omschrijving van XP idd). De browser doet dus niks "fout" (hooguit zichzelf als Mozilla compatible omschrijven ;)). Degene die de grootste fout maakt hier is de designer van de site :) die er maar vanuit gaat dat je een website kan maken voor slechts 1 browser, en ook nog toekomstige browsers. En dat object gaat de fout in door alles maar Netscape te noemen als ie denkt dat het niet IE is.. (bv als ik er met Opera heen ga die zich voordoet als IE zegt ie dat het Netscape is.. :? )

Verschil tussen bv IE 5 en IE 6 is dat IE 6 geen ingebouwde JAVA support heeft op XP.. en wie weet wat er weer anders gaat zijn in IE 7. Dat object is geschreven om jou te vertellen of iets IE 5.x is kennelijk, en de rest is Netscape..

Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
TheOneLLama: Verschil tussen bv IE 5 en IE 6 is dat IE 6 geen ingebouwde JAVA support heeft op XP..
Dat is nog maar 1 van de positieve (ja, je leest het goed ;) ) tussen IE5 en IE6.

IE6 heeft bijvoorbeeld ook eindelijk standaard een XSLT implementatie naar de W3C Recommendation (en niet een of andere vage working-draft).

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • TheOneLLama
  • Registratie: Oktober 2000
  • Laatst online: 20-01-2022

TheOneLLama

A llama like no llama before

Op vrijdag 25 januari 2002 17:45 schreef mbravenboer het volgende:

[..]

Dat is nog maar 1 van de positieve (ja, je leest het goed ;) )
Ja ik weet het ;) :)

Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com


  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Heb je IE 6 toegevoegd aan je browsercap.ini? Zie o.a. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q311227.

Bij mij werkt het dus wel:
code:
1
2
3
4
5
6
7
8
9
10
Browser: IE
Version: 6.0
Majorver: 6
Minorver: 0
Platform: WinNT
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; DVD Owner; .NET CLR 1.0.3328)

(Als je IIS 6.0 of hoger hebt, dan heb je al de juiste browsercap)

  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
Heb je IE 6 toegevoegd aan je browsercap.ini? Zie o.a. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q311227.
hehe :) dat slaat tenminste ergens op. hoe zou een oudere versie van IIS nou kunnen weten dat er in 2001 versie 6 van IE wordt uitgebracht en welke functies die ondersteunt..
daarom bevat IIS al sinds jaar en dag het bestandje Browscap.ini. de objecten die je in ASP kunt aanspreken om browsereigenschappen op te vragen raadplegen gewoon dit bestandje. en je kan ook gewoon op de microsoft site een recente versie van dit bestandje downloaden en op je webserver gooien. probleem opgelost.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Als je het eenmaal weet is het ook zo lullig simpel he... >:) :P

Verwijderd

Zie ook http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/comp3xx0.asp

Het verhaal is dus als volgt:

Het MSWC component is een add-on op de IIS server. Het wordt wel standaard geinstalleerd met IIS maar maakt er geen wezelijk deel vanuit. Zie het bijvoorbeeld als de GL lib die je kan installeren op een server en vervolgens vanuit PHP kunt gebruiken. Als er iets niet goed gaat heeft dat dus niets met de webserver of de browser te maken, maar alleen met het component.

Het component identificeerd de browser aan de hand van de HTTP_USER_AGENT string uit de HTTP request header, door deze string te matchen aan een configuratiefile, "Browscap.ini". Aangezien er telkens nieuwe browsers uitkomen is het de verantwoordelijkheid van de beheerder van de website om deze 'up to date' te houden.

HTTP_USER_AGENT strings zijn een 'free form' string, dus er staat nergens vastgelegd wat erin moet komen te staan. Bij mijn weten is er ook geen RFC voor. Daardoor is de maker van de browser volledig vrij te kiezen hoe deze string eruit moet gaan zien. De opbouw van de string is redelijk afgekeken van elkaar waardoor ze gelukkig wel op elkaar lijken en ongeveer dezelfde informatie verschaffen, maar er zijn dus geen garanties.

Microsoft heeft vanaf hun eerste browsers al een wat merkwaardige vorm gekozen voor hun HTTP_USER_AGENT string, door feitelijk eerst te zeggen dat de browser Mozilla (oftewel Netscape) is, met daarachter date het MSIE is, en feitelijk alleen Mozilla compatible.

De reden hierachter is dat in de tijd dat MS browsers ging maken Netscape de defacto standaard was. Om compatibiliteitsproblemen te voorkomen heeft MS toen de HTTP_USER_AGENT string van Netscape zoveel mogelijk gebruikt, zodat websites die deze string gebruikten feitelijk zouden denken dat de broser Netscape was.

Jammer genoeg is hier nooit wat aangedaan, zijn er nooit beslissingen genomen om de situatie te verbeteren. Het is natuurlijk achteraf altijd moeilijk om standaarden te wijzigen, omdat je dan de backwards compatability verliest.

Het uiteindelijke gevolg is dat MSWC.BrowserType, bij gebrek aan een juiste configuratie, IE6 aanziet voor Mozilla/4.0, oftwel Netscape 4.0.

Oftewel, apottjewijd, voordat je conclusies trekt die gebaseerd zijn op vooroordelen of afkeer van MS, begrijp hoe browsers herkend kunnen worden, ken de history van de HTTP_USER_AGENT string en lees de manual van het component dat je gebruikt.

Enjoy :)

edit:

Overigens, in de HTTP rfc's (1945 voor versie 1.0, 2068 voor versie 1.1) staat wel iets over het bestaan van de HTTP header 'user agent'.[quote]
14.42 User-Agent

The User-Agent request-header field contains information about the user agent originating the request. This is for statistical purposes, the tracing of protocol violations, and automated recognition of user agents for the sake of tailoring responses to avoid particular user agent limitations. User agents SHOULD include this field with requests. The field can contain multiple product tokens (section 3.8) and comments identifying the agent and any subproducts which form a significant part of the user agent. By convention, the product tokens are listed in order of their significance for identifying the application.

User-Agent = "User-Agent" ":" 1*( product | comment )

Example: User-Agent: CERN-LineMode/2.15 libwww/2.17b3
[/quote]

Hierin wordt verwezen naar sectie 3.8, die relevant is in dit geval:[quote]
3.8 Product Tokens

Product tokens are used to allow communicating applications to identify themselves by software name and version. Most fields using product tokens also allow sub-products which form a significant part of the application to be listed, separated by whitespace. By convention, the products are listed in order of their significance for identifying the application.

product = token ["/" product-version]
product-version = token

Examples:
User-Agent: CERN-LineMode/2.15 libwww/2.17b3
Server: Apache/0.8.4

Product tokens should be short and to the point -- use of them for advertising or other non-essential information is explicitly forbidden. Although any token character may appear in a product-version, this token SHOULD only be used for a version identifier (i.e., successive versions of the same product SHOULD only differ in the product-version portion of the product value).
[/quote]

Als ik dit zo lees heeft Microsoft in zijn keuze van user agent indetification string wel een minder gelukkige keuze gemaakt door Mozilla als productstring te kiezen, en doet het browser component het dus goed om, bij gebrek aan speciale configuratie, IE6 als Netscape 4.0 te indentificeren.

Weer wat geleerd, toch? :+

Verwijderd

Op zondag 27 januari 2002 02:21 schreef MrX een heel lang en zeer nuttig verhaal

Weer wat geleerd, toch? :+
Zeker! Dit maakt alles duidelijk. Mooie uitleg :).

Verwijderd

Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: Waar
Supports cookies?: Waar
Supports JavaScript?: Waar
Supports tables?: Waar
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461


win2k, IE 6.0.2600.0000

Verwijderd

Ik had het toevallig ook, ik gebruik IE 6

Volgens de webserver had ik echter Netscape 4.00

:(

Verwijderd

Microsoft heeft deze bug al lang gevonden, het is namelijk geen bug. Je moet gewoon een service packje draaien en wat de definitie file met user-agent strings geupdate en dan wordt IE6 gewoon herkent.

Ik ben effe kwijt hoe dat bestandje ook alweer heet, ander zou je die ook gewoon los kunnen updaten. Het was iets met browsecap.xxx of zo iets.

Verwijderd

Je moet het bestand browsercap.ini (of zo) even aanpassen.

Daar staat een lijst in van allerlei browser-strings. Als je en verse versie van vensters zou hebben, was dat bestand waarschijnlijk ook vernieuwd.

  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Op zaterdag 26 januari 2002 12:04 schreef TlighT het volgende:
Heb je IE 6 toegevoegd aan je browsercap.ini? Zie o.a. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q311227.

Bij mij werkt het dus wel:
code:
1
2
3
4
5
6
7
8
9
10
Browser: IE
Version: 6.0
Majorver: 6
Minorver: 0
Platform: WinNT
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; DVD Owner; .NET CLR 1.0.3328)

(Als je IIS 6.0 of hoger hebt, dan heb je al de juiste browsercap)
Wel even lezen heren. Het antwoord was vanmiddag al gegeven hoor. :)

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


Verwijderd

Nieuwe browscap.ini nodig?
http://www.cyscape.com/browscap/
Zo mooi hou je hem zelf niet bij.
De tool die ze op dezelfde site aanbieden is trouwens the way to go.

Verwijderd

erhm gewoon regexpje op de HTTP_USER_AGENT en je hebt zowiezo je probleem opgelost MSIE of IE is enough to know

Verwijderd

Topicstarter
Joepie, bedankt voor het beschrijven van de oplossing, het is me nu allemaal erg duidelijk, toch vind ik het wel raar dat MS inbakt dat een niet herkende browser standaard maar Netscape wordt :?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:11

Crazy D

I think we should take a look.

Op maandag 28 januari 2002 11:47 schreef apottjewijd het volgende:
Joepie, bedankt voor het beschrijven van de oplossing, het is me nu allemaal erg duidelijk, toch vind ik het wel raar dat MS inbakt dat een niet herkende browser standaard maar Netscape wordt :?
useragent string begint met Mozilla, dus wat dat aangaat is het logisch.
Wel vreemd dat ze niet dan nog checken op MSIE en dan zeggen "MSIE version unknown" of zoiets.

Trouwens, als je puur op de waanwezigheid checkt van MSIE, denk dan ook even aan Opera (waarbij zonder patches aan het eind van de useragent string Opera staat, ongeacht welke useragent string je 'm laat sturen (ik weet niet hoe goed dat componentje dat detect).

Exact expert nodig?


Verwijderd

Topicstarter
Op vrijdag 25 januari 2002 17:41 schreef TheOneLLama het volgende:

[..]

De browser geeft gewoon een beetje info mee over zichzelf, in dit geval:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Hiermee zegt ie, dat ie Mozilla 4.0 compatible is, z'n "naam" MSIE 6.0, en z'n Operating System Windows NT 5.1 (mooie omschrijving van XP idd). De browser doet dus niks "fout" (hooguit zichzelf als Mozilla compatible omschrijven ;)). Degene die de grootste fout maakt hier is de designer van de site :) die er maar vanuit gaat dat je een website kan maken voor slechts 1 browser, en ook nog toekomstige browsers. En dat object gaat de fout in door alles maar Netscape te noemen als ie denkt dat het niet IE is.. (bv als ik er met Opera heen ga die zich voordoet als IE zegt ie dat het Netscape is.. :? )

Verschil tussen bv IE 5 en IE 6 is dat IE 6 geen ingebouwde JAVA support heeft op XP.. en wie weet wat er weer anders gaat zijn in IE 7. Dat object is geschreven om jou te vertellen of iets IE 5.x is kennelijk, en de rest is Netscape..
[schrikmodus]Ehm... heb je het hier over JAVA? Toch hopelijk niet over Javascript he?...[/schrikmodus]

  • TheOneLLama
  • Registratie: Oktober 2000
  • Laatst online: 20-01-2022

TheOneLLama

A llama like no llama before

Op dinsdag 29 januari 2002 09:12 schreef apottjewijd het volgende:

[..]

[schrikmodus]Ehm... heb je het hier over JAVA? Toch hopelijk niet over Javascript he?...[/schrikmodus]
Over JAVA ja, met WinXP/IE6 wordt standaard geen JAVA meer meegeinstalleerd (die brakke MS versie ervan). Ik heb het niet over JScript/Javascript/ECMAscript of wat dan ook :)

Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com


Verwijderd

Topicstarter
Fweeew, ik schrok al, onze pagina's zitten hier namelijk bomvol met javascript... ze moeten eens proberen dat niet meer te gaan ondersteunen :( Maar, gelukkig zijn ze dat dus ook niet van plan *D

Inderdaad met de browsercap.ini is alles op te lossen. En dat netscape standaard wordt getoond bij niet herkende browsers klinkt ook heel aannemelijk na de rede daarvoor gelezen te hebben van iemand die dat perfect omschreef op pagina 2...

Dus hier is alle paniek weer voorbij, had ik alleen nog 1 vraagje over, en dat is of de manier waarop ik het browsertype achterhaal ( dus met dit component ) een hele rare manier is, en welke manier jullie daarvoor gebruiken.

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
Browser: Netscape
Version: 4.00
Majorver: 4
Minorver: 00
Platform: unknown
Supports frames?: True
Supports cookies?: True
Supports JavaScript?: True
Supports tables?: True
HTTP_USER_AGENT: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; .NET CLR 1.0.3705)

Let vooral op .NET CLR :P :P
Pagina: 1