août
2008
J’ai finalement pris le temps de relire mon tutoriel sur les formulaires HTML avec PHP. J’y ai corrigé quelques détails, notamment le type de redirection HTTP à utiliser en réponse à une requête POST : il ne faut pas utiliser un code 204 No content mais plutôt un code de redirection.
En recevant un code 204, le client (le navigateur) n’a aucune raison de suivre les indications du serveur. Il n’y a pas de contenu, voilà tout. Utiliser un code 204 peut sembler correct puisqu’il n’y a effectivement pas de contenu à l’adresse demandée, mais les navigateurs qui suivent la RFC à la lettre ne suivront aucune redirection. Or cela casse tout le site…
En revanche, en utilisant un code de redirection 3xx, le navigateur a plus de chances de suivre la redirection demandée par le serveur. Mais là encore, il ne faut pas utiliser un code 302 comme le fait une partie des développeurs : ce status a changé de signification entre les versions 1.0 et 1.1, et aucune version ne convient pour répondre à une requête POST. Pour faire court, il est préférable d’utiliser ce code :
<?php
header('HTTP/1.1 303 See other');
header('Location: http://...');
Pour les détails, rendez-vous sur le blog de Ben Ramsey : http://benramsey.com/archives/http-status-redirection/
Oups,
Probléme du à la version de php. My mistake.
Bonjour,
J’ai lu votre article qui est très bien fait. Merci pour les internautes.
http://g-rossolini.developpez.com/tutoriels/php/cours/?page=application#LVIII-G
Par contre, je rencontre une erreur dans la class Template.php
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /mnt/132/sdc/b/f/landrogyne/Controller/Template.php5 on line 23
Est ce moi ou est ce votre script.
Merci d’avance,