objorkum Skrevet 28. desember 2004 Del Skrevet 28. desember 2004 Skulle gjerne hatt ein PHP-kodesnutt som sjekkar om nettlesaren til brukaren er Internet Explorer. Noko ala: if ($browser == "MSIE") { echo "MSIE"; } else { echo "Ikkje MSIE"; } Spørsmålet er vel eigentleg korleis eg skal finne ut om nettlesaren er MSIE. Takk for svar! Lenke til kommentar
Ueland Skrevet 28. desember 2004 Del Skrevet 28. desember 2004 sitat fra print_r($GLOBALS); [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.50 [en] aka $_SERVER['HTTP_USER_AGENT']; mener jeg da Lenke til kommentar
jorgis Skrevet 28. desember 2004 Del Skrevet 28. desember 2004 Men husk at både Firefox, Opera og IE gir seg ut for å være MSIE, og at alle nettlesere utgir seg for å være Mozilla. Derfor må du først sjekke om den inneholder strengen "Gecko" (som er unik for Firefox og Mozilla Suite), deretter om den inneholder strengen "Opera" (som er unik for Opera). Om den ikke inneholder noen av dem, men inneholder "MSIE", da er det IE. Hvis ingenting matcher, er det snakk om noe skummelt som du skal holde deg unna. Lenke til kommentar
objorkum Skrevet 28. desember 2004 Forfatter Del Skrevet 28. desember 2004 Jepp, men korleis skal eg sjekke om den inneheld "MSIE"? Kan ikkje så mykje PHP, berre generelle ting. Lenke til kommentar
jorgis Skrevet 28. desember 2004 Del Skrevet 28. desember 2004 (endret) strstr() er din venn. if (strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') { echo "Din opera-dott!"; } Endret 28. desember 2004 av jorgis Lenke til kommentar
objorkum Skrevet 29. desember 2004 Forfatter Del Skrevet 29. desember 2004 (endret) strstr() er din venn. if (strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') { echo "Din opera-dott!"; } Takk! No fungerar det perfekt! BTW: Du manglar ein parantest på slutten der Endret 29. desember 2004 av objorkum Lenke til kommentar
objorkum Skrevet 29. desember 2004 Forfatter Del Skrevet 29. desember 2004 Eit siste spørsmål: Ein brukar IF for å sjekke om ein variabel er noko, men om ein skal sjekke om ein variable IKKJE er noko, kva brukar ein då? Lenke til kommentar
simenss Skrevet 29. desember 2004 Del Skrevet 29. desember 2004 (endret) if($en!=$to) { print("Bla Bla Bla"); } EDIT: En grei artikkel om IF her Endret 29. desember 2004 av simenss Lenke til kommentar
objorkum Skrevet 29. desember 2004 Forfatter Del Skrevet 29. desember 2004 (endret) if($en!=$to){ print("Bla Bla Bla"); } Takk, så dette blir rett? Tenker berre på utropsteiknet. Det andre fungerar. if (!strstr($HTTP_USER_AGENT, "MSIE")) Endret 29. desember 2004 av objorkum Lenke til kommentar
simenss Skrevet 29. desember 2004 Del Skrevet 29. desember 2004 if($en!=$to){ print("Bla Bla Bla"); } Takk, så dette blir rett? Tenker berre på utropsteiknet. Det andre fungerar. if (!strstr($HTTP_USER_AGENT, "MSIE")) Jepp! Lenke til kommentar
objorkum Skrevet 29. desember 2004 Forfatter Del Skrevet 29. desember 2004 Nice Eigentleg bryr eg meg ikkje om IE-brukarane, men slik som sida vert sjåande ut med dersom ein har med <?xml?> taggen i IE er jo rimeleg stygt. Oppdaga ikkje at sidene vart heilt feil rendra i IE før det hadde gått lange tider. Har (heldigvis) ikkje tilgang på IE i Linux. Lenke til kommentar
Lokaltog Skrevet 29. desember 2004 Del Skrevet 29. desember 2004 Hvis jeg tolker situasjonen riktig så driver du med et script som sender riktig informasjon til riktige nettlesere? (Content-type-headere, XML-deklarasjon) I så fall så har jeg et script jeg har fått som fungerer glimrende til dette formålet. Sjekker etter kompatible nettlesere på flere plan. Test det ut! <?php $charset = "iso-8859-1"; $mime = "text/html"; $declaration = '<?xml version="1.0" encoding="' . strtoupper($charset) . '"?>'."\r\n"; $fetch = apache_request_headers(); function fix_code($buffer) { return str_replace(" />", "/>", $buffer); } if(eregi('MSIE[ \/]([0-9\.]+)', $fetch['User-Agent'])) { if(!stristr($fetch['User-Agent'], 'Opera')) { $declaration = ""; } } if(stristr($fetch['Accept'], "application/xhtml+xml")) { if(preg_match("/application\/xhtml\+xml;q=0(\.[1-9]+)/i", $fetch['Accept'], $matches)) { $xhtml_q = $matches[1]; if(preg_match("/text\/html;q=0(\.[1-9]+)/i", $fetch['Accept'], $matches)) { $html_q = $matches[1]; if($xhtml_q >= $html_q) { $mime = "application/xhtml+xml"; } } } else { $mime = "application/xhtml+xml"; } } if($mime == "application/xhtml+xml") { ob_start("fix_code"); } header("Content-Type: $mime; charset=$charset"); header("Vary: Accept"); echo $declaration; ?> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå