PHP accéder en début de script à une variable executée en fin de script ?

Répondre
Cart
le 14/06/2007 à 10:01
Cart
le header n est pas inclus avant car il a besoin de variables definies dans le module appele.
Ca permet une grande liberte pour chaque module.. par example Le module defini les fichiers CSS, javascript quil a besoin, definir les parametres HTTP (avec la function header())

Et le header (qui est appele apres mais qui est affiche avant ) peut creer le html relatif.

Et le seule solution pour faire ca sans les buffers
c d'appeller le module avant, et de mettre tous le html dans une variable.
( donc pas de echo mail seulement $module_html='blabla')

ensuite dinclure le header qui construit le html de debut (html > head>)

echo le module_html

inclure le footer qui ferme qui affiche le html (</html>)

Je trouve la deuxieme solution plus contraignante surtout kand on utilise des CLASS.

jespere que c plus clair.
Je pense que la liberte que entraine lutilisation des buffers est superieur a ses drawbacks.

Merci
Cart
le 14/06/2007 à 10:02
Cart
j' en perd mon francais desole pour toutes les fautes
LA GLOBULE
le 14/06/2007 à 10:14
LA GLOBULE
Et le seule solution pour faire ca sans les buffers
c d'appeller le module avant, et de mettre tous le html dans une variable.
( donc pas de echo mail seulement $module_html='blabla')


Si je reprend ce que je disais avant, tu peux aussi le faire sans tout mettre dans une variable.

Exemple :
- index.php => gros switch qui définit sur quelle page tu es
- quand tu as trouvé ta page : include du php de la page
- dans le php de cette page : tu fais ton code php
- toujours dans cette page, tout en bas, tu fais un include de ton header html, un include du html de cette page puis un include du footer html

Et ca colle, et pas de "page en variable".
Cart
le 14/06/2007 à 10:52
Cart
Non ca colle pas =]

Module.php
==============

fichier_css='style.css,form.css,admin.css';
fichier_js='menu.js';

toute la logique du module
display_all_article();
echo 'blablablabla';

include_header() [il a besoin des variables fichier_css et fichier_js pour construire une page XHTML valide]

// Je veux le html produit par le module ICI

include_footer()


si on fait ca on peut pas utiliser des echo avant le include_header()
car ca serait afficher avant la balaise <html>

donc ca revient au meme problem que g explique precedemment ?

sans utiliser les buffer il faut mettre le html ke tu veux afficher dans une variable, et ki sera utilise ici:

include_header()
$html
include_footer()


------------------------------
Oh je viens de tilter la ou on se comprend pas.
See the wall
http://www.lephpfacile.com/wall/wall-141.php
LA GLOBULE
le 14/06/2007 à 11:36
LA GLOBULE
J'ai regardé le wall, je n'ai pas tout compris, mais en gros, mon idée, c'est de faire tout le PHP de la page avant d'inclure le moindre html.

Si tu fais çà, ca colle.
Et ensuite, dans ton html, ben tu fais des echo des variables PHP que tu as calculé plus haut (et ce sont juste des valeurs, il n'y a pas de html dedans).
burnedsoul
le 18/06/2007 à 17:09
burnedsoul
Hum je reviens dans la discution suite à un ptit souci de net ^^

En gros, La Globule, tu conseilles, genre pour un affichage de données, de traiter le PHP, stocker tout ça en tableau, et ensuite de l'afficher ?
Est ce que le poids n'est pas lourd en traitement puisque, à vue de nez niveau algo, tu fais deux fois une boucle ? (une sur la bdd pour récupérer les valeurs, et une sur le tableau)
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 18/06/2007 à 20:42
burnedsoul
Je sais pas ^^
Tu passes pas par un mysql_fetch_array() pour récupérer les données et ensuite les afficher ?
Webmaster de Clikmag http://www.clikmag.fr
burnedsoul
le 19/06/2007 à 20:07
burnedsoul
Justement, comment puisque tu les affiches, comment tu traite la variable que tu dois afficher puisque, toujours dans mon exemple, le menu se trouve avant l'affichage ?
Ps: j'ai trouvé une autre solution en passant mon bouton en POST, mais le cas m'intéresse ;)
Webmaster de Clikmag http://www.clikmag.fr
Répondre
LoadingChargement en cours