Maison  >  Article  >  développement back-end  >  Pourquoi mon erreur PHP 404 génère-t-elle une page vierge ?

Pourquoi mon erreur PHP 404 génère-t-elle une page vierge ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-13 14:53:02158parcourir

Why Does My PHP 404 Error Result in a Blank Page?

Évasion d'erreur 404 PHP : démasquer le défaut de communication caché

Lorsque vous essayez d'envoyer une erreur 404 avec PHP, vous pouvez rencontrer un résultat inattendu : une page blanche. Pour comprendre pourquoi cela se produit, examinons le code que vous avez fourni :

if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
    header('HTTP/1.0 404 Not Found');
}

Bien que techniquement correct, ce code définit uniquement l'en-tête HTTP sur "404 Not Found". Cependant, le serveur Web a déjà commencé à traiter la page PHP avant que cet en-tête puisse être intercepté.

Le flux normal d'une erreur 404 ressemble à ceci :

  • Utilisateur : "Est-ce que vous avez-vous quelque chose à cet URI ?"
  • Serveur Web : "Non, 404 Voici une erreur 404 ! page."

Cependant, avec votre code PHP :

  • Utilisateur : "Avez-vous quelque chose à cet URI ?"
  • Serveur Web : "Oui , c'est une page PHP. Elle vous indiquera le code d'état."
  • PHP : "OMG 404!"
  • Serveur Web : "Oups, la page d'erreur que les gens ont laissée, je vais donc simplement envoyer ce que PHP m'a donné."

Par conséquent, malgré l'en-tête 404, le navigateur reçoit toujours la sortie PHP et affiche une page vierge. Pour résoudre ce problème, PHP doit également fournir la page d'erreur 404. Par exemple, vous pouvez utiliser le code suivant :

header('HTTP/1.0 404 Not Found');
echo '<html><head><title>404 Not Found</title></head><body><h1>404 Error</h1></body></html>';

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn