2010-06-26 11 views
0

Si l'ID (c'est-à-dire l'utilisateur) n'existe pas, j'envoie le header("Status: 404 Not Found"); au navigateur mais PHP envoie également le reste de la page. Ensuite, je l'ai fait pour rien envoyer, mais alors il a montré une page blanche vierge. Je veux qu'il montre la page d'erreur par défaut. Comment je vais le laisser faire?Comment je vais laisser PHP afficher la page d'erreur par défaut du serveur?

+4

Vous devez utiliser 'header ('HTTP/1.1 404 Not Found')' - http: // fr .wikipedia.org/wiki/List_of_HTTP_status_codes – TheDeadMedic

Répondre

1
header("Status: 404 Not Found"); 
readfile ($_SERVER['DOCUMENT_ROOT']."/404.html"); 
exit; 

? ou vous avez besoin d'une solution universelle?

+0

Que voulez-vous dire par universel? Je veux l'apprendre aussi. – ilhan

+0

@ilhan je veux dire sans connaître le nom réel du fichier de la page d'erreur. Je ne sais pas la solution si :) –

2

Ajoutez également die; après l'appel d'en-tête.

1

Je pense que dans ce cas, si vous ne définissez que l'en-tête, vous obtiendrez la page d'erreur par défaut de votre navigateur et non de votre serveur Web. Le problème est que la page existe pour le serveur Web. Donc, si vous savez où la page d'erreur de votre serveur est stockée, lisez-la à partir de là. Et assurez-vous que votre réponse est plus longue que (je pense que c'était) 512 octets, sinon le navigateur (en particulier IE) vous donnera sa propre page d'erreur.

2

vous pouvez définir via htaccess aussi,

ErrorDocument 500 http://foo.example.com/500.php 
ErrorDocument 404 /404.php 
ErrorDocument 401 /401.php 
ErrorDocument 403 /403.php 

selon la réponse d'état http