anoniem Geplaatst: 14 oktober 2003 Delen Geplaatst: 14 oktober 2003 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] Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2003 Auteur Delen Geplaatst: 14 oktober 2003 Eerst checken op "opera" en daarna pas op "MSIE". Opera zal als eerste door de mand vallen (de MSIE tekst bij opera doet er niet toe). Mocht het wel IE zijn dan wordt "MSIE" gevonden. Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2003 Auteur Delen Geplaatst: 14 oktober 2003 Dus volgorde wijzigen van if statements (ben nog een regelrechte n00b wat betreft php)? Ga het meteen proberen, als ik wat meer tijd heb. Jochem Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2003 Auteur Delen Geplaatst: 14 oktober 2003 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] Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2003 Auteur Delen Geplaatst: 14 oktober 2003 Op Devedge stond vorig jaar een interessant artikel over [url=http://devedge.netscape.com/viewsource/2002/browser-detection/]Browser Detection & Cross Browser Support[/url]. - Bas Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2003 Auteur Delen Geplaatst: 14 oktober 2003 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 ;) Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2003 Auteur Delen Geplaatst: 14 oktober 2003 Bedankt! Ook voor die 2 links. Jochem Quote Link naar reactie
anoniem Geplaatst: 15 oktober 2003 Auteur Delen Geplaatst: 15 oktober 2003 Netscape is dood... check voor Mozilla ;) (of Firebird, meer gebruikt denk ik) Anne Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen