En tentant d'établir une connexion à la base de données, vous avez rencontré un problème où le message d'erreur personnalisé que vous avez défini n'était pas affiché lorsque la connexion a échoué. Vous recherchez également une méthode pour supprimer les messages d'erreur du point de vue de l'utilisateur.
À partir de PHP 8.1, l'extension mysqli lève désormais automatiquement des exceptions en cas d'erreur. erreur, éliminant ainsi le besoin d'une gestion manuelle des erreurs comme cela se faisait dans les versions précédentes de PHP.
Messages d'erreur personnalisés, comme celui que vous définis, ne sont plus recommandés pour la gestion des erreurs. PDO et mysqli ont la capacité de générer automatiquement des erreurs, comme n'importe quelle autre commande PHP. Par conséquent, la vérification manuelle des erreurs, comme vous avez tenté de le faire avec le segment if (!$conn), est obsolète.
Pour empêcher les messages d'erreur d'atteindre l'utilisateur , vous devez utiliser l'option de configuration display_errors, qui peut être définie sur 0 pour supprimer toutes les sorties d'erreur. Cela peut être configuré dans le fichier php.ini ou directement dans votre code PHP :
ini_set('display_errors', 0);
Au lieu d'afficher des messages d'erreur énigmatiques, il est conseillé de présenter une page d'erreur conviviale aux visiteurs du site. Ceci peut être réalisé en configurant un gestionnaire d'erreurs, tel que celui ci-dessous, qui détectera toutes les erreurs irrécupérables :
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>\nAn internal server error has been occurred.<br>\nPlease try again later.";
}
});
Si vous devez gérer spécifiquement les erreurs de connexion à la base de données, vous pouvez utiliser un script de test de connexion distinct enveloppé dans un bloc try-catch, distinct de votre script habituel code de connexion.
Pour une sécurité renforcée, mettez à jour votre version de PHP vers la version 8.2 ou ultérieure, ce qui empêche les mots de passe de base de données d'apparaître dans la pile. tracer.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3