Hvilken browser benytter min bruger?

Tags:    php

Jeg ville høre, om der fandtes en eller anden måde i PHP, der kunne fortælle hvilken browser min bruger har :)
Jeg vil nemlig gerne lave nogle forskelle i de forskellige browsere...

Hvis ikke der findes en måde med PHP, så vil jeg gerne høre, om der er nogle der kender noget javascript der kan bruges?

Mit interesseområde ligger normalt ikke inden for javascript (oversat til normalt dansk - jeg er simpelt hen en spade til javascript, og så er der det ekstra minus, at det ikke en gang sikkert at javascript virker i de gamle browsere), så det må gerne være meget let at forstå, og helst noget de gamle browsere kan forstå ;)






10 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
både JS og PHP kan bruges.

JS er dog ikke så godt til at detecte som PHP er.

kig eventuelt her: http://dk.php.net/manual/en/function.get-browser.php



http://dk.php.net/get_browser

Det er muligvis den du søger



Jeg ville nok bruge $_SERVER['HTTP_USER_AGENT'] da get_browser er virkelig elendig. Før at get_browser fungerer skal der være en liste over browsere den kan detecte, dvs. at hver eneste gang en browser skifter version såsom Firefox lige har gjort (2.0.0.1->2.0.0.2) vil get_browser ikke være istand til at finde ud af hvilken browser det er.



1. IE og FF fortolker width ens med mindre du benytter Quirks Mode. IE fejlfortolker width i Quirks Mode, men fortolker den korrekt i Standard Mode. Det lyder som om du skal slå Quirks Mode fra. (Quirks Mode betyder at browseren opfører sig som en meget gammel browser, og det bruges til meget gamle hjemmesider) Mht linjeskift, forstår jeg dig ikke. Et linjeskift fylder lige meget i alle browsere.

Det lyder som om dit problem er af få siden til at se rigtig ud i alle browsere, ikke at finde ud af hvilken browser der bruges. Får at kunne hjælpe med at rette layoutfejl, kræver det et link til siden.

2. At forlange at brugeren skal indtaste valg af browser er ikke særligt brugervenligt. Du kan som sagt tidligere i tråden bruge $_SERVER['HTTP_USER_AGENT'] til at finde browseren (men brug det kun til statistik). Desuden indeholder de fleste tilgængelige statistikværktøjer indbygget funktion til at finde browseren ud fra User-Agent.



Hvad skal det bruges til? Det er forhåbentligt statistik.

Hvis du derimod vil omgå fejl og mangler i visse browsere, skal du aldrig checke hvilken broowser det er, men derimod hvad browseren kan.



Okay, tak for alle svarene :)

Men Jesper Kristensen - det er nu faktisk både for statistik, men også for at få gjort sådan så Mozilla Firefox, Opera, Netscape og Internet Explorer får nogle forskellige funktioner... Bl.a. er der nogle linjeskift der er nødvendige for at få den korrekte afstand i Internet Explorer, mens de får teksten til at smutte alt for langt ned i andre browsere... Og et stylesheet der kun skal inkluderes i Mozilla Firefox :)

Men hvordan tjekker jeg hvad brugerens browser kan?
Skal jeg bruge getbrowser?
Og er der nogle der kan forklare lidt nærmere om det?
Føler mig lidt som en dum blondine når jeg prøver at slå det op i manualen :roll:

Jeg er tæt på at åbne min side, men det ville jo være surt hvis det kun er IE-brugere der kan få det fulde udbytte siden ;)

Så det skal faktisk bruges til begge dele... Jeg håbede dog at kunne slå to fluer med et smæk, men det går nok ikke så...


M.v.h. Clara



Eksempel:

Internet Explorer kan ikke forstå XHTML

Dårlig løsning:
if (browser er internet explorer) {
udskriv HTML side
} else {
udskriv XHTML side
}

God løsning:
if (browser kan forstå XHTML) {
udskriv XHTML side
} else {
udskriv HTML side
}

Det kræver et individuelt kig på hver af stederne for at finde ud af, hvilken kode der skal bruges.



Tilføjelse:

Fordele ved metode 2:
* Der kommer hele tiden nye browsere med nye funktioner. Bruger du browser-detection i stedet for feature-detection, skal du hele tiden opdatere scriptet.
* Da mange websider, som bruger browser-detection glemmer at opdatere, er der mange brugere, der "lyver" om hvilken browser de anvender. Derfor vil du ofte komme til fx at vise IE-stylesheet til FF. Feature-detection er en mere stabil datakilde, da der stort set ikke er nogen, der "lyver" om det.



Jeg har lige to problemer...

1. Det jeg bl.a. skal bruge det til, er at afgøre hvor mange linjeskift der skal være nogle steder i designet, samt hvilket stylesheet jeg skal inkludere (f.eks. fordi IE7 og Mozilla Firefox forholder sig forskelligt til bl.a. width: )
Og man kan jo ikke rigtig spørge:
if (det vil se pænest ud med 3 linjeskift) {
print "
<br/>
<br/>
<br/>
";
}
else {
print "<br/>";
}


2. Jeg har aldrig været særligt god til at læse manualen, men denne gang er det altså endnu slemmere... Jeg kan simpelt hen ikke forstå et kvæk, andet, end at man skal vælge i mellem to måder at få indholdet udpå, og så er der et eksempel med et array, som ikke siger mig det fjerneste...

Jeg har overvejet at lave det sådan, at første gang en bruger besøger hjemmesiden, skal den vælge hvilken browser den bruger (blandt de mest kendte), og hvis det ikke er enten Netscape, IE, FF eller Opera, (som man kan vælge i mellem), så får man et link til download af IE7 eller FF, og så kan man komme tilbage senere...
Så gemmes IP samt valg i databasen, og så kan jeg hele tiden tjekke hvilken browser de bruger, samt sikre mig at de bruger én af de 4 mest normale browsere :)
Så skal der selvfølgelig også være en 'Ændr valg af browser'-funktion :)

Eller hvad er jeres forslag?



Indlæg senest redigeret d. 03.03.2007 18:10 af Bruger #11381
Okay, tak for svarene :)
Så er der delt point ud :)

Der er lavet en ny tråd, med hensyn til at få siden til at se ens ud i alle browsere ;) Og nu fik jeg da lavet det meste af statistikken :)



t