web-dev-qa-db-ja.com

browscap iniディレクティブが設定されていません

私は、ブラウザがJavascriptをサポートしていないことを人々に警告するために、get_browser()関数を使用しています。実際、私はそれを使って、私が構築しているWebアプリケーションの特定の部分を使用できることを伝えています。 Javascriptを使用するのが怖い開発者の話を聞くのにうんざりしているため、Javascriptを適切に使用することに決めました。余談ですが、ここにエラーがあります。

browscap iniディレクティブが設定されていません

これは、php.iniに設定する必要があることを意味すると思います。誰かが私にこの方向性を教えてもらえますか?

41
Robert Hurst

私はこれがブラウザがあなたのウェブサイトに必要なものをサポートしていることを検出するための「最良の」ソリューションだとは思わない

  • まず第一に、ブラウザは嘘をつくことができます-彼らは好きなものをUser-Agent として送信できます。
    • また、サポートの特定のバージョンが必要なものをサポートする必要がある場合でも、Javascriptを無効にすることができます。
  • 第二に、Javascriptに関しては、ブラウザができることまたはできないことを検出するためのより適切な方法があります。

2番目のポイントでは、ブラウザーが必要なものを実際にサポートしているかどうかをテストし、browscapリストなどのリストに依存しないようにする必要があります。


それでも、 browscap についての質問に答えるために: get_browser(quoting)

注:これが機能するためには、php.iniの browscap 構成設定システム上のbrowscap.iniファイルの正しい場所を指す必要があります。 browscap.iniはPHPにバンドルされていませんが、ここで最新の "php_browscap.ini ファイルを見つけることができます。
browscap.iniには多くのブラウザに関する情報が含まれていますが、データベースを最新の状態に保つためにユーザーの更新に依存しています。ファイルの形式はかなり自明です。

だから、あなたはする必要があります:

  • browscapファイルをダウンロードし、
  • php.iniファイルにbrowscapディレクティブを設定して、ダウンロードしたファイルを指すようにします。
73
Pascal MARTIN

このトピックは古いことは知っていますが、次のようなものを使用できます。

<noscript>JavaScript must be enabled</noscript>

javaScriptが有効になっていない場合に表示します。

17
Jeremy Harris

ブラウザクラスを使用してブラウザを確認できます Github からダウンロードします

構成

      include(/your-path/Browser.php);
$browser = new Browser();
    if( $browser->getBrowser() == Browser::BROWSER_IE && $browser->getVersion() >= 8 ) 
        {
            echo "Your browser is Internet Explorer version 8";                                                                                                                                    
    }
2
Manju

PHPにはバグがあります。これは、実際の問題がWebサーバーがbrowscapファイルを読み取れないという場合にもこのエラーを引き起こす可能性があります(たとえば、www- data)。 https://bugs.php.net/bug.php?id=74501 を参照

0
David Patterson