Benutzerdefinierte Fehlermeldungen bei fehlgeschlagenem mysqli_connect
Beim Versuch, eine Verbindung zu einer Datenbank herzustellen, zeigte mysqli_connect früher Fehlermeldungen an, die von der Sprache generiert wurden, aber Dieses Verhalten hat sich mit PHP 8.1 geändert. Jetzt löst mysqli bei Fehlern Ausnahmen aus, sodass keine manuelle Fehlerbehandlung mehr erforderlich ist.
Benutzerdefinierte Fehlermeldungen sind kontraproduktiv
Die Verwendung benutzerdefinierter Fehlermeldungen für Verbindungsfehler wird nicht empfohlen. Die Fehlererkennung und -behandlung sollte automatisch von mysqli oder PDO durchgeführt werden, ohne dass manuelle Überprüfungen erforderlich sind. Das Anzeigen benutzerdefinierter Fehlermeldungen kann die Benutzersicherheit gefährden und unnötige Details anzeigen.
Best Practices für die Fehlerbehandlung
Um Fehlermeldungen vor Benutzern zu verbergen, legen Sie display_errors Konfigurationsoption auf 0 in php.ini oder Ihrem PHP-Code:
<code class="php">ini_set('display_errors', 0);</code>
<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>
HTTP 500-Fehler
Wenn eine Seite aufgrund eines Serverfehlers keinen Inhalt liefern kann, sollte sie mit einem HTTP 500-Code antworten. Dies ist für die ordnungsgemäße Fehlerbehandlung erforderlich und sollte nicht unterdrückt werden.Verbindungsfehler für bestimmte Szenarien abfangen
In manchen Fällen kann es notwendig sein, sie abzufangen Verbindungsfehler explizit. Dies kann mithilfe eines try..catch-Blocks um den Verbindungsversuch herum erreicht werden, wenn das Handhabungsszenario über die Fehlerberichterstattung hinausgeht.Verbindungsanmeldeinformationen ausblenden
Um vertrauliche Datenbankkennwörter zu verhindern Um zu verhindern, dass sie in Stack-Traces offengelegt werden, aktualisieren Sie PHP auf Version 8.2 oder höher, wodurch solche Informationen verborgen bleiben.Das obige ist der detaillierte Inhalt von## Umgang mit Datenbankverbindungsfehlern in PHP 8.1 und höher: Best Practices und Sicherheitsüberlegungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!