IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP8] toutes les erreurs semblent fatales


Sujet :

Langage PHP

  1. #1
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut [PHP8] toutes les erreurs semblent fatales
    Bonjour à tous,
    Désolé si je pose une question de gros noob, mais cela fait de siècles que je n'avais plus fait de PHP.

    Globalement, tout fonctionne bien, mais à la moindre erreur, la génération de ma page s'arrête et même le HTML statique qui suit l'erreur PHP n'est plus envoyé. Pire, je n'arrive pas à rattraper les erreurs avec @ ni or die().

    J'ai testé avec deux ou trois types d'erreur, le comportement est le même. Ce qui m'embête le plus c'est la connexion à MySQL. Je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $conn = @mysqli_connect($serveur, $admin, $passe, $bdd, 3306) or die('raté') ;
    Quand mes paramètres de connexion sont OK, tout se passe bien, mais si par exemple le mot de passe est mauvais, je ne vois même pas le "raté" du die.

    J'ai regardé mon phpmyinfo, voici les paramètres qui pourraient être pertinents... par contre j'avoue que je n'ai rien compris à la façon de les changer.
    PHP Version 8.2.18
    display_errors : Off
    error_log_mode : 0644
    error_reporting : 22517
    log_errors : Off
    Quelqu'un aurait-il des lumières sur mon cas ?
    En vous remerciant,
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 282
    Points : 15 599
    Points
    15 599
    Par défaut
    je pense qu'il vaut mieux éviter d'utiliser @ et de configurer l'affichage des erreurs dans le fichier php.ini avec ces directives :
    https://www.php.net/manual/fr/errorf...display-errors
    https://www.php.net/manual/fr/errorf...rror-reporting

  3. #3
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 776
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 776
    Points : 3 028
    Points
    3 028
    Par défaut
    Bonjour

    Il m'avait semblé avoir lu que le @ était devenu déprécié... Rapide recherche sur Ggle et je trouve https://php.watch/versions/8.0/fatal-error-suppression qui semble dire (lecture diagonale) que dorénavant les erreurs fatales n'étaient plus rendues silencieuses.

    +1 sur le fait que @ ne devrait plus jamais être utilisé et qu'il faut gérer les erreurs avec des blocs try catch.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2020
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2020
    Messages : 35
    Points : 119
    Points
    119
    Par défaut
    Salut,

    Pour ce qui concerne mysqli, le problème vient peut-être également du fait que le mode de rapport d'erreurs par défaut a changé depuis PHP 8.1.
    Pour le reste, je rejoins les commentaires précédents.

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut
    Bon, de mon temps on ne faisait pas comme ça , mais le try... catch fonctionne à merveille !

    merci beaucoup !
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/05/2008, 12h06
  2. [log4j] tracer les TOUTES les erreurs
    Par jaoued dans le forum Logging
    Réponses: 2
    Dernier message: 11/04/2008, 15h59
  3. [MySQL] Log de toutes les erreurs
    Par arsenik dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/11/2006, 17h00
  4. [PL/SQL] voir toutes les erreurs à la compilation
    Par ciol2.6.12 dans le forum Oracle
    Réponses: 2
    Dernier message: 14/04/2006, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo