Messages d'erreur personnalisés avec échec de mysqli_connect
Lors de la tentative de connexion à une base de données, mysqli_connect affichait les messages d'erreur générés par le langage, mais ce comportement a changé avec PHP 8.1. Désormais, mysqli génère des exceptions en cas d'erreur, éliminant ainsi le besoin de gestion manuelle des erreurs.
Les messages d'erreur personnalisés sont contre-productifs
L'utilisation de messages d'erreur personnalisés pour les erreurs de connexion n'est pas recommandée. La détection et la gestion des erreurs doivent être gérées automatiquement par mysqli ou PDO, sans avoir besoin de vérifications manuelles. L'affichage de messages d'erreur personnalisés peut compromettre la sécurité des utilisateurs et fournir des détails inutiles.
Meilleures pratiques de gestion des erreurs
Pour masquer les messages d'erreur aux utilisateurs, définissez les display_errors option de configuration à 0 dans php.ini ou votre code PHP :
<code class="php">ini_set('display_errors', 0);</code>
De plus, implémentez un gestionnaire d'erreurs pour afficher une page d'erreur générique pour les erreurs irrécupérables :
<code class="php">set_exception_handler(function ($e) { error_log($e); http_response_code(500); if (ini_get('display_errors')) { echo $e; } else { echo '<h1>500 Internal Server Error</h1><br>An internal server error has been occurred.<br>Please try again later.'; } });</code>
Erreurs HTTP 500
Lorsqu'une page ne peut pas fournir de contenu en raison d'une erreur de serveur, elle doit répondre avec un code HTTP 500. Ceci est nécessaire pour une bonne gestion des erreurs et ne doit pas être supprimé.
Détection des erreurs de connexion pour des scénarios spécifiques
Dans certains cas, il peut être nécessaire de détecter erreurs de connexion explicitement. Ceci peut être réalisé en utilisant un bloc try..catch autour de la tentative de connexion lorsque le scénario de gestion va au-delà du rapport d'erreurs.
Masquage des informations d'identification de connexion
Pour empêcher les mots de passe confidentiels de la base de données Pour éviter d'être exposé dans les traces de pile, mettez à jour PHP vers la version 8.2 ou ultérieure, qui masque ces informations.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!