Gå til innhold

IF nettlesar = Internet Explorer


Anbefalte innlegg

Skrevet

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! :w00t:

Videoannonse
Annonse
Skrevet

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 :)

Skrevet

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. :p

Skrevet (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 :cool:

Endret av objorkum
Skrevet (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 av objorkum
Skrevet
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!

Skrevet

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.

 

:w00t:

Skrevet

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;

?>

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...