【问题标题】:How to Block a browser after detecting it with php on my website?在我的网站上使用 php 检测到浏览器后如何阻止浏览器?
【发布时间】:2021-09-14 02:00:06
【问题描述】:
<?php
function get_the_browser()    //browser detection
{
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false)
   return 'Internet explorer';
 elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== false)
    return 'Internet explorer';
 elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== false)
   return 'Mozilla Firefox';
 elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== false)   //the only browser that i want to allow
   return 'Google Chrome';
 elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false)
   return "Opera Mini";
 elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== false)
   return "Opera";
 elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') !== false)
   return "Safari";
 else
   return 'Other';
}
?>

我想知道我是否可以在 php 中使用此代码阻止浏览器你能帮我吗?

【问题讨论】:

  • 阻止是什么意思?不显示任何内容?就die("Unauthorized")
  • @AndreaOlivato 你能给我看一些代码吗?我在 exit(); 之间感到困惑和或死它显示错误
  • 您可以使用此代码检测用户的浏览器,但是它并不可靠。网上有很多文章展示了如何欺骗浏览器类型。

标签: php google-chrome browser conditional-statements detection


【解决方案1】:

我用这个解决了它

    <?php

class Browser
{
    public static function detect()
    {
        $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
        if ((substr($_SERVER['HTTP_USER_AGENT'], 0, 6) == "Opera/") || (strpos($userAgent, 'opera')) != false) {
            $name = 'opera';
        } elseif ((strpos($userAgent, 'chrome')) != false) {
            $name = 'chrome';
        } elseif ((strpos($userAgent, 'safari')) != false && (strpos($userAgent, 'chrome')) == false && (strpos($userAgent, 'chrome')) == false) {
            $name = 'safari';
        } elseif (preg_match('/msie/', $userAgent)) {
            $name = 'msie';
        } elseif ((strpos($userAgent, 'firefox')) != false) {
            $name = 'firefox';
        } else {
            $name = 'unrecognized';
        }
        if (preg_match('/.+(?:me|ox|it|ra|ie)[\/: ]([\d.]+)/', $userAgent, $matches) && $browser['name'] == 'safari') {
            $version = $matches[1];
        }
        if (preg_match('/.+(?:me|ox|it|on|ra|ie)[\/: ]([\d.]+)/', $userAgent, $matches) && $browser['name'] != 'safari') {
            $version = $matches[1];
        } else {
            $version = 'unknown';
        }

        return array(
            'name' => $name,
            'version' => $version,
        );
    }
}

$browser = Browser::detect();
echo 'You browser is ' . $browser['name'] . ' version ' . $browser['version'];
echo "<br />";
?>

我在this thread找到了解决方案。

此外,您可以添加条件并使用 die()。

【讨论】:

  • 谢谢,这真的很有帮助,其他一些浏览器呢,比如勇敢,yandex 或者 waterfox。我该怎么办?
猜你喜欢
  • 2013-12-22
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 2018-10-21
  • 2012-08-25
  • 2013-03-03
  • 2010-09-12
  • 2012-06-20
相关资源
最近更新 更多