Internet Explorer 7 et les erreurs 404

Question :
Comment perdre 30 min à cause d’Internet Explorer 7 ?

Solution :
Très simple, il suffit d’avoir une page 404 personnalisé qui ne s’affiche pas sous IE7 !

Mise en situation :
J’étais entrain de développer mon contrôleur d’erreur (modèle mvc) à l’aide de Zend Framework (faudrait que je poste plein de truc la dessus d’ailleurs…).

Voulant bien faire, j’utilise des codes http (400, 500, 503, …) suivant mon exception levée et j’affiche le message d’erreur.
Je sauve, j’exécute l’affaire sous IE 7 – on me dira sans doute : t’es con ou quoi ? Prend firefox ! Je répondrai : « oui, je sais, mais IE7 était ouvert… » – et la à ma grande surprise j’ai une page 404.
Seul bémol, c’est celle d’IE.

Je me retape la doc de Zend Framework, je lis quelque trucs sur le net,… je ne vois pas mon erreur. Mais d’où cela peut-il venir ?
Je lance firefox pour voir les headers de la page et là, à ma TRES GRANDE surprise, j’ai une page 404 avec mon message d’erreur.

Quelques recherches sur google plus tard, j’apprends que si la page ne fait pas minimum 512 octets, Internet Explorer affiche son message d’erreur standard.

N’étant pas très convaincu, je me fais une petite boucle :

for($i=0; $i<200; $i++)
{
     $this->_errorMessage .=
self::$errorMessage;
}

Je relance ie7 et j’ai ma page.

Conclusion :
Donc si vous vous voulez que vos visiteurs qui utilisent IE7 aient accès à votre belle page 404 personnalisé, celle-ci doit faire plus de 512 octets.

Conclusion générale :
Rien à dire, IE 7, c’est une belle merde !

Hervé — 23 janvier 2008 @ 17:39 Filed under: Informatique,Internet,Php / mySql,Programmation Tag: , ,