web-dev-qa-db-fra.com

La directive Ini Browscap n'est pas définie

J'utilise la fonction get_browser() pour essayer d'avertir les gens que leur navigateur ne prend pas en charge Javascript. En fait, je l'utilise pour leur dire qu'ils peuvent utiliser certaines parties d'une application Web que je construis. J'ai décidé d'utiliser correctement Javascript parce que je suis fatigué d'écouter les développeurs qui ont peur de l'utiliser et j'ai vu un grand potentiel dans le langage. Je m'égare, voici l'erreur.

la directive Ini Browscap n'est pas définie

Maintenant, j'imagine que cela signifie que j'ai besoin de quelque chose pour le php.ini. Quelqu'un peut-il me donner des indications sur celui-ci?

41
Robert Hurst

Je ne pense pas que ce soit la "meilleure" solution à détecter si un navigateur prend en charge ce dont vous avez besoin pour votre site Web:

  • tout d'abord, les navigateurs peuvent mentir - ils peuvent envoyer tout ce qu'ils veulent comme User-Agent
    • Et même si une version donnée d'un support doit prendre en charge ce dont vous avez besoin, Javascript peut toujours être désactivé.
  • deuxièmement, il existe un moyen plus "approprié" de détecter ce qu'un navigateur peut faire ou non, lorsqu'il s'agit de Javascript.

Pour le deuxième point, vous devez tester si le navigateur prend réellement en charge ce dont vous avez besoin - et ne pas compter sur une liste telle que celle du navigateur.


Pourtant, pour répondre à votre question sur browscap : il y a une note en bas de la page de manuel pour get_browser qui dit (citation):

Remarque: Pour que cela fonctionne, votre paramètre de configuration browscap dans php.ini doit pointer vers l'emplacement correct du browscap.ini fichier sur votre système. browscap.ini n'est pas fourni avec PHP, mais vous pouvez trouver une mise à jour "php_browscap.ini fichier ici.
Tandis que browscap.ini contient des informations sur de nombreux navigateurs, il s'appuie sur les mises à jour des utilisateurs pour maintenir la base de données à jour. Le format du fichier est assez explicite.

Vous devez donc:

  • téléchargez le fichier de navigation,
  • et définissez la directive browscap dans votre php.ini fichier, donc il pointe vers le fichier que vous avez téléchargé.
73
Pascal MARTIN

Je sais que ce sujet est ancien, mais vous pouvez utiliser quelque chose comme:

<noscript>JavaScript must be enabled</noscript>

à afficher si JavaScript n'est pas activé.

17
Jeremy Harris

Vous pouvez vérifier le navigateur en utilisant la classe Browser, téléchargez-le depuis Github

Configuration

      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

Il y a un bug dans PHP qui peut également entraîner cette erreur lorsque le vrai problème est que le serveur Web ne peut pas lire le fichier de navigation (par exemple, s'il appartient à root au lieu de www- Voir https://bugs.php.net/bug.php?id=74501

0
David Patterson