Ga naar inhoud

[PHP] Probleem met browser detectie


anoniem

Aanbevolen berichten

Hoi, Ik ben op dit moment bezig een [url=www.jochem.elixant.com]site[/url] op te zetten (gaat over het spel [url=www.cantr.net]Cantr[/url]. En nee, ik heb cantr.net niet gemaakt). Mijn gratis webhost bied de mogelijk om php te gebruiken, dus dat gebruik ik dan ook maar ;). Heb me verdiept in de materie, en ben wat leuke dingetjes tegen gekomen, die ik gelukkig ook nog begrijp. Nu wilde ik rechts boven, naast de banner wat kleine dingetjes maken. Als de tijd op de plaats waar de server staat en hoeveel mensen de pagina bekijken (die 2 dingen heb ik nu). Ook wil ik dat de pagina zoiets zegt als "I see you are using Internet Explorer" of "I see you are using Netscape" of "I see you are using Opera" of "I see you are using some other browser that isn't IE, Netscape or Opera...". De code lukt me wel (zie onderaan), alleen het probleem is, is dat opera wordt gedecteerd als IE. Dit komt omdat de browser in Opera als volgt heet: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.11 [nl] Er komt dus ook MSIE in voor, en eerder als Opera (ik laat het php scriptje zoeken naar Opera). Hoe kan ik er nu voor zorgen dat het niet gezien wordt als IE maar als Opera? Jochem http://www.jochem.elixant.com/browser.php [code:1:818cbea065]<p> <?php if(strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { ?> I see you are using Internet Explorer <br /> <?php echo "{$_SERVER["HTTP_USER_AGENT"]}";?> <?php } elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Netscape")) { ?> I see you are using Netscape <br /> <?php echo "{$_SERVER["HTTP_USER_AGENT"]}";?> <?php } elseif (strstr($_SERVER["HTTP_USER_AGEN"], "Opera")) { echo "{$_SERVER["HTTP_USER_AGENT"]}"; ?> I see you are using Opera <br /> <?php echo "{$_SERVER["HTTP_USER_AGENT"]}";?> <?php } else { ?> I see you are using some other browser that isn't IE, Netscape or Opera... <br /> <?php echo "{$_SERVER["HTTP_USER_AGENT"]}";?> <?php } ?> </p>[/code:1:818cbea065]
Link naar reactie
Werkt helaas niet. Nog steeds wordt Opera als IE gezien. M'n nieuwe code staat onderaan. Door het gedeelte waarin er naar "MSIE" wordt gezocht eruit te halen, werd Internet Explorer niet herkend (logisch), maar ook werd Opera niet herkend! Hieruit trek ik dus de conclusie dat óf het gedeelte waarin naar "Opera" wordt gezocht niet klopt, óf dat Opera iets niet toe laat... Jochem code: [code:1:4efecaa06c]<p> <?php //Browser detector if (strstr($_SERVER["HTTP_USER_AGEN"], "Opera")) { ?> I see you are using Opera <br /> <?php echo "{$_SERVER["HTTP_USER_AGENT"]}";?> <?php } elseif (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { ?> I see you are using Internet Explorer <br /> <?php echo "{$_SERVER["HTTP_USER_AGENT"]}";?> <?php } elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Netscape")) { ?> I see you are using Netscape <br /> <?php echo "{$_SERVER["HTTP_USER_AGENT"]}";?> <?php } else { ?> I see you are using some other browser that isn't IE, Netscape or Opera... <br /> <?php echo "{$_SERVER["HTTP_USER_AGENT"]}";?> <?php } ?> </p>[/code:1:4efecaa06c]
Link naar reactie
Klein (maar desastreus) typefoutje in je code: if (strstr($_SERVER["HTTP_USER_AGEN[b:c0811ff7a3][color=red:c0811ff7a3]T[/color:c0811ff7a3][/b:c0811ff7a3]"], "Opera")) Dan meteen nog wat PHP-tips: - Je kunt met PHP je PHP- en HTML-code door elkaar gebruiken. Je hoeft dus niet iedere keer PHP af te sluiten ?> om HTML te tonen [code:1:c0811ff7a3]<?php //Browser detector if (strstr($_SERVER["HTTP_USER_AGENT"], "Opera")) { echo "I see you are using Opera<br>"; } elseif (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) { echo "I see you are using Internet Explorer<br>"; } elseif (strstr($_SERVER["HTTP_USER_AGENT"], "Netscape")) { echo "I see you are using Netscape<br>"; } else { echo "I see you are using some other browser that isn't IE, Netscape or Opera... "; } echo "{$_SERVER["HTTP_USER_AGENT"]}"; ?>[/code:1:c0811ff7a3] - Verder is het altijd oppassen in stringvergelijkingen met hoofd/kleine letters. Als opera zich identificeerd als 'opera' of 'OPERA' zal het script niet meer goed werken. Vergelijk dus met hoofd- of kleine letters, of gebruik stristr() ipv strstr() (stristr is hoofdletterongevoelig). - Op [url]http://www.php.net/manual/nl/function.get-browser.php[/url] is nog wat extra info te vinden over browser-informatie. Puur om wat meer te weten te komen ;)
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...