j'espère que ce billet pourra éviter à certains de perdre une aprèm pour une broutille
j'ai voulu faire un script pour uploader un fichier (via un champ de type file dans un formulaire), stocker le contenu et le type mime du fichier en BD, puis affichage via une action dédiée
rien de sorcier à priori
sauf que mon image (puisque pour le coup je testais avec une image) ne s'affichait pas et j'avais son texte alternatif à la place
les en-têtes HTPP étaient OK et je recevais bien le contenu du fichier
au bout de quelques heures j'ai vu qu'en fait, juste avant le contenu, se trouvait une ligne vide
après tests, le problème venait bien de ça
restait à savoir d'où ça venait
après différents tests, j'en ai conclu que ça venait d'un retour chariot qui se trouvait quelque part dans un fichier
j'ai donc fait le ménage dans tous les fichiers se trouvant dans "app" (oui, c'est bourrin de tout faire mais là ça faisait des heures que je bloquait sur ce truc)
=> problème réglé
conclusion, on suit autant que possible les recommandations de Zend :
ouvrir le tag php en début de fichier et... ne pas le fermer
par exemple dans le fichier bootstrap :
< ? php /* des commentaires */ ? >\n< ? php du code ? >
donc si possible, un fichier php = un seul bloc php ouvert et pas fermé
PS : je ne sais pas de quel fichier venait le problème, ça m'a soulé ce truc, pas envie de chercher, j'vais faire autre chose :p
Articles similaires
- Projets en cours, le point.
- Version 0.3.2 de Fredistrano disponible
- CakePHP 1.2 beta disponible
- Version 0.3 de Fredistrano disponible
- Comment choisir son langage/framework de développement web?
- Fredistrano - Déployez vos applications PHP en quelques clics
- Activer la coloration syntaxique pour les fichiers .thtml de CakePHP dans Eclipse
- CakePHP : validation Ajax
- Commentez vos fichiers source automatiquement grâce aux keywords Subversion
- Lancez vos sites sur orbite avec Fredistrano 1.0



Trouvé
le problème venait du fichier app/config/config.php
ce fichier n'est pas présent de base dans PHP, il me sert à stocker ma config dev ou prod (même système que dans Fredistrano)
Dia
comprends pas
c'est quoi cette histoire ?
conclusion, on suit autant que possible les recommandations de Zend :
ouvrir le tag php en début de fichier et... ne pas le fermer
je comprends pas trop ? t'as un lien ?
re:
ba l'histoire c'est que je voulais qu'une action me fasse une sortie du code correspondant à une image
qui dit action dit bousin pour l'exécuter
et y avait un retour chariot qui trainait dans le fichier de conf (inclus à chaque fois) et qui se retrouvait donc dans ma sortie, avec le code de l'image, ce qui foutait le boxon (ce retour chariot se trouvait entre 2 blocs de code PHP, entre un tag fermant et un tag ouvrant)
donc ce qui est préconisé pour éviter ça c'est d'ouvrir le tag PHP en début de fichier et de pas le fermer, comme ça tu évites ce genre de petite merdouille
Pour les fichiers contenant uniquement du code PHP, la balise de fermeture ("?>") n'est jamais permise. Il n'est pas requis par PHP. Ne pas l'inclure permet de se prémunir les problèmes liés à l'injection accidentelle d'espaces blancs dans la sortie.
http://framework.zend.com/manual/fr/coding-standard.php-file-formatting....
ce commentaire a été fait au sujet du ZF mais s'applique évidemment à toute sortie bufferisée, ce qui est le cas dans Cake
Dia