さて、私は会社のレポでいくつかのコードに取り組んでおり、ログインチェックでこのブラウザ検出のビットに出くわしました。それはほとんどMSIEを具体的に検索し、ブラウザのバージョンがそうである場合はログインを拒否したいと考えています<= 6
。これは現時点ではかなり欠陥のある概念です。このメソッドはユーザー エージェント文字列を取得し、バージョン番号以外のすべてを削除しますが、この場合のバージョン番号は 1 桁であり、バージョン 1 ~ 9 の検出に最適です。しかし、Internet Explorer 10 では結果が 1 になり、ロジックが壊れて役に立たなくなります。
そのため、現在、このロジックをほとんど同じに保とうとしているのですが、本質的には、10+ などの 2 桁を必要とするバージョンを補っています。
バージョン固有のブラウザ検出を行ってから長い時間が経ちました。だから、誰かが私がこれを少し調整するのを手伝ってくれるか、同じ邸宅で使用できるかもしれないより良い/新しい機能を教えてくれることを願っています.
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$ua = $_SERVER['HTTP_USER_AGENT'];
if (strstr($ua,'MSIE') && substr($ua,strpos($ua,'MSIE')+5,1) <= 6 ) {
return $this->renderMessage(
self::TEXT_LOGIN_FAILED,
'It seems that your browser is currently unsupported. We apologize for any inconveniences. Please switch to another browser and try again.'
);
}
}
上記は私が現在取り組んでいるものです。少し乱雑であることがわかりますが、最初に作成した人はあまり考えていませんでした。そして、私はそれを壊したくなくて立ち往生しています.