Fatal error : type : 2

AirWAirW Member
18 nov. modifié dans Bogues

Bonjour à tous !
Depuis la dernière mise à jour ce message s'affiche à chaque enregistrement d'un article :

Fatal error :
type : 2
message : Use of undefined constant can_view - assumed 'can_view' (this will throw an Error in a future version of PHP)
file : /core/admin/article.php(325) : eval()'d code
line : 4

See https://www.php.net/manual/en/errorfunc.constants.php about type of error
============================================================
User : 001
Profil : 0
PluXml version : 5.8.16
PLX_DEBUG : false
PHP version : 7.4.33
============================================================
About this server :
HTTP_USER_AGENT : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0
HTTP_ACCEPT : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE : fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
HTTP_ACCEPT_ENCODING : gzip, deflate
HTTP_REFERER : /core/admin/article.php?a=0049
SERVER_SOFTWARE : Apache
SCRIPT_FILENAME : /core/admin/article.php
SERVER_PROTOCOL : HTTP/1.1
REQUEST_METHOD : GET
QUERY_STRING : a=0049
REQUEST_URI : /core/admin/article.php?a=0049
SCRIPT_NAME : /core/admin/article.php
PHP_SELF : /core/admin/article.php

Que doas-je faire ?
Merci de votre aide !

Mots clés:

Réponses

  • Bonjour,

    Cela est du à un plugin .
    L'erreur se déclenche ligne 325 sur le hook <?php eval($plxAdmin->plxPlugins->callHook('AdminArticleTop')) # Hook Plugins ?>

    L'un de tes plugins, coté administration , utilise une constante can_view qui n'est pas initialisée.
    dans le fichier principal de ce plugin, tu retrouvera le hook AdminArticleTop et une fonction du même nom (ou associée) et en ligne 4 de la partie injectée par cette fonction, cette variable/constante can_view. Si ce n'est pas une variable, alors tu as peut-être une typo dans le code.

    Pour t'aider et mettre à jour ce plugin pour la communauté, il faudrait identifier ce plugin (sa version et l'origine/url de l'archive) .

    Ce n'est probablement pas grand chose si il n'y a que ça ;)


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    Sinon rechercher les plugins qui utilise le hook AdminArticleTop. C'est normalement dans les premières lignes des fichiers du plugins.

    Si par hasard tu as l'utilitaire grep installé, se placer à la racine du site et faire grep -n can_view plugins//.php

    @gcyrillus-nomade ,
    Je crois qu'il va falloir afficher automatiquement la liste des plugins actifs dans la fenêtre fatal_error.
    Et virer quelques lignes pas trop utiles dans "about this server" :

    • HTTP_ACCEPT
    • SERVER_PROTOCOL
    • QUERY_STRING
    • SCRIPT_NAME
    • PHP_SELF

    T'en penses quoi ?

  • @bazooka07 ,

    Oui pour l'ensemble :) C'est aussi déroutant pour un débutant qui met en ligne le site lui même.
    Peut-être aussi indiquer le nom du thème.

    Je pense que la majorité des erreurs proviennent de ressources ajoutées et majoritairement des plugins, les thèmes peuvent aussi embarqués leur lot d'erreurs ou de scripts obsolètes/incompatibles.

    cdt


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Commit #839.

    Pour le nom du thème utilisé, c'est plus compliqué.
    La fonction qui gère l'affichage en cas d'erreur fatale est intégrée à plxPlugins::_construct(). Elle n'a donc pas accès à plxMotor::aConf['style'].
    Cela peut être modifié mais cela oblige à faire des tests et donc y passer un temps de temps.
    Il est assez rare qu'un thème déclenche un bug en PHP. Par contre cela est fréquent avec des plugins (obsolète, non maintenu, incompatible avec PHP 8.0.0+)

  • @bazooka07 , merci :)

    honnêtement et jusqu'alors avec mes différents tests et bricoles, je trouve cette fonctionnalité peut pertinente car elle cache souvent d'autres warning ou message d'erreur en amont difficile à voir dessous(dans la page rendue). Elle me semble être plus une entrave au pistage de bugs et de typo dans les scripts. J'avoue carrément retirer cette portion du code de PluXml pour avoir tous les messages d'erreurs de PHP. Si j'ai une typo, j'ai le fatal error sans le message correspondant à l'endroit et le fichier d'où la typo déclenche l'avalanche d'erreur. De plus, si la typo provient d'un plugin, il n'est pas exclu par un renommage. J'avoue aussi ajouter un display:none!important; au fatal-error qui me cache les messages d'erreur complet afficher dans la page , ou faire unview-source:la_page_qui_bugue`.

    Je n'ai pas les compétence ni d'idées pour faire que php nous signale aussi la source initiale d'un bug dans cette fonctionnalité de Pluxml.

    Cdt


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @gcyrillus-nomade ,

    Cette fonctionnalité s'adresse d'abord aux utilisateurs qui remontent des bogues sur le forum. En général, ils ne donnent que peu d'informations sur le contexte où arrivent ces problèmes.
    La plupart du temps cela arrive avec des plugins anciens, orphelins, ou incompatibles avec PHP 8.0.
    Maintenant on peut en savoir un peu plus sur la ligne de code et les plugins installés sources des problèmes.

    Depuis 2 mises à jour, il est possible de masquer la fenêtre popup qui détaille l'erreur en cliquant sur la croix rouge en haut et à droite. Le dossier du plugin fautif n'est maintenant pas renommé si un administrateur est connecté afin de faciliter sa mise au point.

    Pour les erreurs de typo, il y a des éditeurs de code qui les mettent en évidence sans avoir à afficher la page html correspondante.
    VScode fait bien le taf pour cela.
    Pour des erreurs plus compliquées ou intrinsèques, un déboggueur PHP comme xdebug aide beaucoup et fonctionne très bien avec VScode sous Linux. Il existe aussi phpdbg mais je ne l'ai jamais testé.

    Je vais publier la version 5.8.17 avec les 2 derniers commits #838 et #839 dans la semaine.

    Bien cordialement

  • Merci

    Depuis 2 mises à jour, il est possible de masquer la fenêtre popup qui détaille l'erreur en cliquant sur la croix rouge en haut et à droite. Le dossier du plugin fautif n'est maintenant pas renommé si un administrateur est connecté afin de faciliter sa mise au point.

    Je n'avais pas remarqué , comme quoi "toutes les fenêtres se ressemblent si on y regarde pas de prés" :)


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Connectez-vous ou Inscrivez-vous pour répondre.