Bonjour,
Si header() est placée après du code, ça provoque une erreur, peut-on désactivé cela dans php.ini ?
merci
Bonjour,
Si header() est placée après du code, ça provoque une erreur, peut-on désactivé cela dans php.ini ?
merci
Salut,
ce n'est pas tellement après du <code>, mais plutôt après le premier octet envoyé au buffer de sortie, par la force des choses aux serveur web, et donc au client.
Au niveau du php.ini, je ne pense pas que tu puisses utiliser une option particulière, cependant, dans ton code tu peux contrôler le moment où tu envoies le contenu du buffer au client.
De telle sorte qu'avec cette méthode tu peux construire ton code comme bon te semble, avec un session_start en fin d'exécution si cela te plaît, sans provoquer la moindre erreur.
Pour faire cela il faut utiliser les fonctions qui commencent par le préfixe ob_* pour OutputBuffering_*.
Pour démarrer la mise en cache, car c'est le principe utilisé, il faut faire un appel à ob_start(); <http://fr2.php.net/ob_start> en tout début de script [strike]de préférence[/strike] nécessairement.
En fin de script, tu pourras ajouter un ob_end_flush(); <http://fr2.php.net/manual/fr/function.ob-end-flush.php> cependant, php n'étant pas trop mal fait, cet appel est facultatif et sera plutôt utiliser pour véritablement contrôler le flux de données.
Cet appel provoquera deux actions, l'arrêt de la mise en cache, et l'envoi au navigateur. L'arrêt de la mise en cache signifie que si tu fais un écho par la suite, tu ne pourras plus en contrôler la sortie.
L'envoi des données au navigateur quand à lui signifie que tu à envoyés tes premiers octets, et que donc tu n'as plus droit de déclarer de nouvelles sessions.
Précisons que ces fonctions sont géniales, et il est regrettable que ce mécanisme ne soit pas utiliser par défaut dans tous développements php.
a plus
Dans le fichier php.ini tu met ON la variable output_buffering. mais je ne peut pas te garantir que sa ne te pose pas des problèmes latéraux , je ne l'ai jamais essayé.
Utilise ob_start() et ob_end_flush() à la place et tu n'auras pas à modifier la config.
Bonjour, je sais que tu proposes cela souvent, (je te lis réguliérement )
Mais vraiment cette méthode me parait dangeureuse, ou bien il faut parfaitement maitriser sa génération de page HTML et que ce soit trés justifié !
Pamis mes sites web, j'en ais un qui fait plus de 3000 pages dont un générateur de jeux d'échecs sur lequel tu peux jouer. Ors jamais je n'ais eu a recourir a du bufuring
Mais aprés tout tu as sans doute trouvé des cas ou cette méthode est justifiée ?
Bonne journée
Cela ne change rien que le site fasse 3000 pages ou 2 pages, si le besoin est de bufferiser, il faut bufferiser !
Oui et je ne vois pas la dangerosité de la chose...
Quel est le problème selon toi ?
Ben par exemple dans le cadre de développent modulaire cela peut être extrêmement pratique.
Différents évènements vont te permettra de manipuler le flux avant qu'il ne soit livré aux clients, et pouvoir manipuler ce buffer est indispensable dans ce cas.
Un autre exemple serait par exemple de mettre en surbrillance tous les mots contenu dans la page. Une fois la page généré et contenu dans le buffer, tu l'attrapes, tu le modifies et tu le rends aux clients.
non non vraiment ces fonctions sont irremplaçable!
Whaou !! j' ais parlé trop vite
J' avoues ne jamais avoir employé cela mais tout vos témoignages prouvent que c' est parfois indispensable.
Le coup de la surbrillance est trés convaincant !!
En tout cas mille mercis a vous tous d' avoir défendu cette fonction
blueice tu me demandes pourquoi je trouves ça dangeureux , ce serait plus honéte de dire plus compliqué pour moi, , bon allez promis je testerais ça pffff... décidément ici on vous pousse dans le dos pour aller plus loin, hier c' était le PDO et voila maintenant le bufuring
Bon allez encore merci a vous de m'avoir répondu.
Merci pour vos réponses et témoignages, ils sont très interressants.
j'ai testé ce matin et ça fonctionne très bien et répond parfaitement au pb rencontré en plus je suis content de savoir que cela ne cause aucun pb de sécurité.
ce qui est curieux c'est qu'en local le pb n'apparait pas mais seulement lorsque les fichiers sont hebergé (ovh)
On peut penser que cela provient de la configuration du niveau d'erreur de ton serveur local.
Désolé, mais question administration je pense qu'OVH est bien meilleur que toi ; ) ou moi.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager