Browserweiche in PHP !?

  • Themenstarter Themenstarter dPo2000
  • Beginndatum Beginndatum
D

dPo2000

habe bei drweb.de einen interessanten artikel über browserweichen mit SSI gefunden. nun meine frage: ist das auch mit php zu realisieren ? zB. useragent abfrage: MSIE => der quelltext
useragent abfrage: Netscape (wie is die kurzform eigentlich dafür ? "MOZILLA" ?) => jener quelltext !


is das irgendwie zu realisieren und wie könnte das aussehen ?



mFg
dPo
 
na klar geht sowas :)

in der Variablen $HTTP_USER_AGENT steht der Browser, den der Besucher verwendet (z.B. Mozilla/4.0 (compaible; MSIE5.0; Windows NT).

mit einer einfachen IF-Abfrage kann man dann im Script verzweigen:

PHP:
if (strstr($HTTP_USER_AGENT,"MSIE")) {
   //hier der Teil für den IE
}
elseif (strstr($HTTP_USER_AGENT,"Netscape")) {
   //hier der Teil für Netscape
}
else {
   //hier für alle anderen Browser
}

hoffe, das hilft.

Gruß
Dunsti
 


also füge ich dann theoretisch mit

PHP:
include bla.txt

nach der if - Abfrage den Quellcode für den IE ein und so weiter ?
 
jo, entweder so:

PHP:
if (strstr($HTTP_USER_AGENT,"MSIE")) {
   //hier der Teil für den IE
   include("ie.html");
}
elseif (strstr($HTTP_USER_AGENT,"Netscape")) {
   //hier der Teil für Netscape
   include("netscape.html");
}
else {
   //hier für alle anderen Browser
   include("alleanderen.html");
}

oder so:

PHP:
<?PHP
if (strstr($HTTP_USER_AGENT,"MSIE")) {
   //hier der Teil für den IE
   ?>
   <HTML>
   ...
   </HTML>
<?PHP }
elseif (strstr($HTTP_USER_AGENT,"Netscape")) {
   //hier der Teil für Netscape
   ?>
   <HTML>
   ...
   </HTML>
<?PHP }
else {
   //hier für alle anderen Browser
   ?>
   <HTML>
   ...
   </HTML>
<?PHP }
?>


Gruß
Dunsti
 
Hallo,
ich habe eure Hinweise hier für einen Styleswitcher benutzt und war ganz glücklich, weil alles zu funktionieren schien. Jetzt ist mir aber doch ein Problem aufgefallen. Ich habe wie ihr es oben beschrieben habt die Unterscheidung gemacht nach:

if (strstr($HTTP_USER_AGENT,"MSIE")) { IE
}
else { andere Browser }

!aber Opera zeigt dasselbe CSS-Script an wie der IE. Sonst scheint es in allen anderen Browsern zu funktionieren. Ich habe versucht:

elseif (strstr($HTTP_USER_AGENT,"OPERA")) { }

dazwischenzuschalten, aber das funktioniert auch nicht. Hat jemand ne Idee? Was mache ich falsch?
wenco
 
Hi,
Opera manipuliert den User-Agent und gibt sich standardmäßig als IE aus. Infolgedessen wird auch deine IE-CSS geladen. ;)
 
Ich weiß ja nicht, was du mit der Brwoserweiche alles anstellen willst.
Wenn du damit nur einige CSS-Macken vom IE ausbügeln willst, gibt es da noch einige andere Möglichkeiten. (Verschiedene Hacks, "auskommentierte Bedingungen, die nur der IE versteht", usw.)

Da leg ich dir mal http://www.css4you.de ans Herz. Dort werden einige dieser Browserweichen näher und vor allem auch anhand von Beispielen erklärt.

Edit:
Hier die komplette Adresse: http://www.css4you.de/wsbw/index.html
 
Ja, so habe ich angefangen, mit *html für IE-Ausnahmen in der CSS-Datei und soweiter. Irgendwann fand ich es dann lohnenswert ne eigene CSS-Datei anzulegen und hab folgende Browserweiche benutzt:

<!--[if gt IE 5]>
<link rel="Stylesheet" href="css/layout_ie.css" type="text/css" />
<![endif]-->

die übrigens auch für Opera funktionierte, dh. Opera zeigte nicht die Stylesheets des IE. Dann brauchte ich aber noch einen Styleswitcher auf Knopfdruck für Normal und Kontrastansicht. Dieser verstand sich aber nicht mit der Browserweiche, weshalb ich auf die PHP-Browserweiche hier zurückgriff. Fast alles wäre jetzt gut, aber irgendein Browser spackt wohl immer ab :-).

wenco
 
Zurück