Stiekem ben ik benieuwd naar de reden. Want waarom wil je bezoekers uitsluiten?
Als de browser niet meewerkt, is het zinvoller om juist daarvoor een oplossing te zoeken.
<?php
$string = strripos($_SERVER['HTTP_USER_AGENT'], 'Opera');
if ($string=== false) {
// geen Opera
} else {
// wel opera
}
?>
Huh, navigator.userAgent geeft precies hetzelfde als $_SERVER['HTTP_USER_AGENT'].
Je kan dus nooit controleren of er gefaked wordt, want ze zijn nooit ongelijk van elkaar.
We kunnen wel leuke oplossingen aandragen, maar de cheat bestrijden lijkt mij zinvoller. ;-)
Aar dit lost de situatie wel degelijk op.
Javascript kijkt namelijk niet naar de extenties maar naar de werkelijke userAgent.
Ik heb dit net ook nog even getest en werkt wel degelijk.
JavaScript kijkt ook niet naar extenties maar de extentie past de useragent aan.
In Firefox zie ik met navigator.userAgent prima mijn gefakte useragent.
Edit
In Opera werkt het ook niet, en zie ik zowel met PHP als JS dezelfde gefake useragent.