PHP browser erkennung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
agent
aufruf
browser
ding
erkennen
falle
gleiche art
host
http
interne name
meinung
monopol
nummer
opus
richtigen vergleich
string
text
wahrscheinlichkeit
windows
zugreifen
-
Ja ich such nen kleines php-script, welches den Browser des userers erkennt und je nach Browsertype eine bestimmte CSS datei einbindet.
M?ste doch irgendwie ?ber die Umgebungsvariable HTTP_USER_AGENT, oder get_browser(); und dann mit einer switch/if die richtige einbinden.
Aber wie klappt das genau kann mir da wer helfen ? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo zusammen.
Das geht nicht. PHP ist Serverseitig. Das hei?t, dass PHP nicht auf den Client zugreifen kann. Die IP-Adresse und den Host kann PHP herausfinden,[IP: $REMOTE_ADDR, Host (glaub ich): $REMOTE_HOST]
Das ginge aber mit JavaScript. Am besten wird dieser Thread nach "HTML & JavaScript" verschoben. Dort bekommst du sicher mehr antworten, als hier!
bis dann,
scripter -
Na klar geht das.
Eigentlich genau wie du gesagt hast. Zeigt doch mal deinen Code bis jetzt.
Aber sehr elegant ist es nicht das so zu machen.
Wahrscheinlich hast du das problem das der ie das css anders als die anderen darstellt, dann kannst du einmal mit "conditional comments" machen
<style type="text/css">
<!--[if IE]>
@import url(/ie.css);
<![endif]-->
@import url(/normal.css);
</style>
oder du benutzt ie7 http://dean.edwards.name/IE7/ die meiner Meinung beste L?sung da man dann nur ein css f?r alle browser benutzten kann. -
Wenn der User-Agent den UA-String mitsendet, findest du ihn unter:
$_SERVER['HTTP_USER_AGENT']
Allerdings tun das nicht alle User-Agents (es gibt nicht nur Web-Browser). Au?erdem l?sst sich dieser String leicht f?lschen, in diversen Browsern ver?ndern oder einstellen, in Proxies filtern/?ndern (z.B. WebWasher).
Die Wahrscheinlichkeit, dass der Browser ehrlich ?ber sich sagt, wer er ist, ist allerdings trotzdem recht hoch, da die meisten Leute sowieso keine Ahnung haben, wie man die Kennung einstellt/ver?ndert.
Wichtig: Nicht alle Browser geben sich als das aus, was sie sind. Wenn du also eine Browserstatistik erstellen willst, dann pr?fe auch richtig nach, ob z.B. mein Opera erkannt wird. Der meldet sich n?mlich je nach meiner Laune als Mozilla5 oder MSIE und gibt sich erst weiter hinten im String als Opera zu erkennen:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [de]
oder
Mozilla/5.0 (Windows NT 5.1; U) Opera 7.54 [de]
Aber du willst ja nureine CSS-Weiche erstellen. Da kann ich dir nur viel Spa? w?nschen, denn an Hand des UA-Strings zu erkennen, welche CSS-F?higkeiten und Bugs ein Browser hat, ist eine Sysyphus-Arbeit.
Beitrag ge?ndert am 22.01 13:04 von alopex -
Also ich wei? nicht warum so viele der meinung sind das man des ned mit PHP k?nnte und das das NUR mit JS geht. naja wenigstens gibts auch welche die erkannt haben das es mit geht.
HTTP_USER_AGENT kenn ich, aber wie stelle ich da am besten den vergleich an? die ausgabe ist dann ja ein string, und bei mir steht da am anfang immer mozilla, auch wenn ich mit IE aufrufe. Wie soll ich da jetzt enen richtigen vergleich anstellen ????
und mit get_browser(); da krigt man ein object raus oder? und damit kenn ich mich noch weniger aus.
naja und wie is des mit den conditional coments ?????
<style type="text/css">
<!--[if IE]>
@import url(/ie.css);
<![endif]-->
@import url(/normal.css);
</style>
Klappt des gut ?
ie7 ? wie meinst du das? es geht ja ned drumm das ich die HP richtig sehe sondern alle anderen... -
zuerst speicherst du die dings da wo das alles gespeichert is in ner variable und dann machst nen paar if abfragen
if(ereg($dings_da,'mozilla')) { echo "wow nen mozilla browser ^^"; }
blabla
wobei du noch ma gucken musst ob das ereg heisst, damit wird im string nach mozilla gesucht, wenn es gefunden wird gibt es true zur?ck und gibt dann den text da aus
ich wei? aber wie gesagt nich genau wie diese funktion heisst und auch nich welche namen die browser ?bergeben!
aber ich wei? das es so geht wie ich es denke -
Ich w?rde f?r Stringvergleiche eher die preg_...-Befehle von PHP benutzen, die ereg-Dinger sind fehlerhaft und nicht ganz so performant.
Zum Thema User-Agent-String-Erkennung:
http://de.selfhtml.org/diverses/clients.htm
Zum Thema Mozilla:
Mozilla ist nun mal der interne Name des ersten relativ weit verbreiteten Webbrowsers. Und als die Firma Microsoft noch nicht das Monopol ?ber die Desktop-Browser hatte, meldete sich der Internet Exploiter kleinlaut als "Mozilla ... compatible ... MSIE ...", eben um bei eventuell vorhandenen Browserweichen nicht durchs Raster zu fallen und als unf?higer Browser nur minimalst-kompatible Seiten ausgeliefert zu bekommen. Mittlerweile hat sich das ge?ndert. MS bem?ht sich nach Kr?ften, Benutzer anderer Browser, die wesentlich leistungf?higer sind als der MSIE, auf die gleiche Art zu verprellen:
http://www.opera.com/pressreleases/en/2003/02/14/index.dml
Lange Rede, schwacher Sinn:
Eine m?gliche Regular-Expression f?r den MSIE k?nnte lauten:
preg_match("/(compatible)[;\s]{1,}(MSIE)[;\s]{1,}(\d{1,}\.\d{1,})/", ...)
Erste Klammer: compatible
Zweite Klammer: MSIE
Dritte Klammer: Versions-Nummer
Beitrag ge?ndert am 22.01 14:16 von alopex -
ich kann bei http["user_agent"] blo? zustimmen, aber die browser geben sich manchmal auch nich als diss eigene aus! bei fast allen steht erstma mozilla drin!
also such erst ma nach andern begriffen und dann erst nachm mozilla! -
ie7 ? wie meinst du das? es geht ja ned drumm das ich die HP richtig sehe sondern alle anderen...
du hast wahrscheinlich nicht den link angeschaut. ie7 ist kein Browser sonderen eine sammlung von js die dem normalen ie ordentliches css beibringt. Schau dir den link an.
http://dean.edwards.name/IE7/
naja und wie is des mit den conditional coments ?????
<style type="text/css">
<!--[if IE]>
@import url(/ie.css);
<![endif]-->
@import url(/normal.css);
</style>
Klappt des gut ?
Das ist eine sache die nur der IE versteht, f?r alle anderen ist es ein Kommentar. So kann man dem ie (sogar einzelen Versionen) eigene Sachen zuweisen. z.B. kann man auch texte nur im ie zeigen oder ?hnliches -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage