Warum erscheint meine benutzerdefinierte PHP-Fehlermeldung nicht, wenn mysqli_connect fehlschlägt?

Barbara Streisand
Freigeben: 2024-10-26 14:51:30
Original
132 Leute haben es durchsucht

Why Doesn't My Custom PHP Error Message Appear When mysqli_connect Fails?

Warum zeigt PHP meine benutzerdefinierte Fehlermeldung nicht an, wenn mysqli_connect fehlschlägt?

Den Fehlererkennungsmechanismus verstehen< ;/h3>

In der Vergangenheit erforderte die MySQL-Erweiterung von PHP eine manuelle Fehlerbehandlung. Allerdings löst die in PHP 8.1 eingeführte MySQLi-Erweiterung jetzt automatisch Ausnahmen aus, wenn Fehler auftreten, sodass keine manuelle Fehlererkennung mehr erforderlich ist.

Benutzerdefinierte Fehlermeldungsverwirrung

Ihr Der Code enthält einen if-Block (!$conn), der versucht, eine benutzerdefinierte Fehlermeldung auszugeben. Dieser Ansatz ist veraltet. mysqli löst von Natur aus Fehler aus, die automatisch behandelt werden sollten.

Fehlermeldungen von Benutzern ausblenden

Um Fehlermeldungen von Website-Besuchern auszublenden, sollten Sie die display_errors-Konfiguration verwenden Option. Wenn Sie den Wert auf 0 setzen, wird verhindert, dass PHP Fehler anzeigt. Sie können diese Option in php.ini oder im PHP-Code mit ini_set('display_errors', 0) festlegen.

Anzeige einer benutzerfreundlichen Fehlerseite

Während es wichtig ist, Systemfehler vor Benutzern zu verbergen, möchten Sie möglicherweise eine benutzerfreundliche Fehlerseite anzeigen. Dies kann mit einem Fehlerhandler wie dem folgenden erreicht werden:

<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>
              An internal server error has occurred.<br>
              Please try again later.";
    }
});</code>
Nach dem Login kopieren

Dieser Handler protokolliert den Fehler, legt einen HTTP 500-Statuscode fest und zeigt eine generische Fehlermeldung an, wenn display_errors auf 0 gesetzt ist.

Umgang mit Verbindungsfehlern

In bestimmten Szenarien müssen Sie möglicherweise Verbindungsfehler explizit behandeln. Dies kann mithilfe eines Try-Catch-Blocks erfolgen. Eine solche Handhabung sollte jedoch auf Fälle beschränkt sein, in denen bestimmte Fehlerszenarien alternative Maßnahmen erfordern.

Verstecken vertraulicher Informationen

Wenn Sie Bedenken haben, dass vertrauliche Informationen angezeigt werden Wenn Sie den Stack-Trace nicht nutzen, sollten Sie ein Upgrade auf PHP 8.2 oder höher in Betracht ziehen, wodurch Datenbankkennwörter aus dem Stack-Trace ausgeblendet werden.

Das obige ist der detaillierte Inhalt vonWarum erscheint meine benutzerdefinierte PHP-Fehlermeldung nicht, wenn mysqli_connect fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!