Redirection sans header() - PHP - Programmation
Marsh Posté le 14-03-2005 à 20:33:45
Ou bien tu regardes du côté de ob_flush (ou proche de ça, bref ob_xxx), ce qui peut te permettre te passer outre le problème de html avant header...
Marsh Posté le 14-03-2005 à 20:46:16
belay a écrit : Bonjour ! |
Alors c'est que tu n'as pas bien construit ton site...
[mode "Je me la pete"]
Mon cms maison permet de metre un header n'importe ou, et sans utiliser les buffer (ob_flush). Je fait simplement en sorte que l'envoi des donnees ne se fasse qu'a la fin de tout le traitement php (je le repete sans buffer).
[/mode "Je me la pete"]
Marsh Posté le 14-03-2005 à 21:41:39
Merci à tous ...
Mais à priori Cerel à raison....
Jsui en train de revoir la structure de mon site
Et au prie je regarderai du coté de ob_qqch
Marsh Posté le 14-03-2005 à 22:06:18
Bon en fait ce que je pensais ne marche pas ... Je vous donne des morceaux de code :
Citation : L'ERREUR : |
Citation : |
Citation : |
Les include de la page index.php me permettent d'insérer mais page de mise en forme HTML ....
Donc en gros ds une rubrique de mon site qd je clique sur un item ça me lance le fichier phpcheck.php (qui contient le HEADER) et bim bam boum erreur parce que forcement avt j'ai chargé les diverses pages du site...
Le fichier phpcheck me permet d'utiliser les session utilisateurs que phpBB .... j'ai trouvé un script tout fait sur leur site...Qui marche sans pb tout seul mais à inclure ds le design de mon site c'est une galére...
J'ai lu d'utiliser un include_once....Est ce que ça peu corriger le pb ..
MErci de votre aide ...
Marsh Posté le 15-03-2005 à 08:01:07
Tu ne peux rien "envoyer" avant de faire ton header, meme pas d'espaces.
Or dans ton code tu "envoi" plein de code html avant...
En gros ton <? doit etre au debut du fichier, et pas d'echo avec du html avant ton header.
Donc tu dois faire en sorte que le header soit la premiere chose que php va "envoyer" au nav.
Marsh Posté le 16-03-2005 à 19:23:07
Jveu bien masi comment je fais pour utiliser mes pseudos frames .... Parce que si le code n'apparait pas à sa place...Bah ça marche po
Marsh Posté le 16-03-2005 à 21:50:06
Bah en fait j'ai utilisé ce code html classique
Code :
|
Marsh Posté le 16-03-2005 à 23:10:47
cerel a écrit : Je fait simplement en sorte que l'envoi des donnees ne se fasse qu'a la fin de tout le traitement php (je le repete sans buffer). |
Comment donc ?
Marsh Posté le 17-03-2005 à 07:57:48
Personellement j'utilise des templates pour separer le code html du code php.
Ensuite j'ai cree un pseudo systeme de "modules".
La page index.php s'occupe de charger la template du fichier index. Dans cette template il y a l'emplacement pour le code html qui est prevu.
Chaque module (lorsqu'il est charge) me renvoie une chaine de chars avec le "son" code html. Une fois que je recois cette chaine je l'introduis a l'endroit souhaite de la template puis, et uniquement a la fin de tout le processus, je renvoi le code html genere par la template au browser.
Un module pour faire simple, c'est simplement une page php avec une fonction predefinie "getContent" qui s'occupe de renvoyer le code html.
L'avantage de cette technique est que l'envoi de code html ne se fait que depuis index.php est uniquement apres toute la phase de traitement. Les modules, s'ils ont besoin peuvent utiliser header, ou les autres methodes qui ont besoin de modifier les headers, sans probleme.
J'ai meme laisse la possibilite aux modules de changer le titre de la page s'ils en ont besoin.
PS : En fait ce CMS je le code avec un pote, je suis pas tout seul dessus, alors s'il passe par ici je lui fait un petit coucou
Marsh Posté le 17-03-2005 à 10:01:12
belay a écrit : Bah en fait j'ai utilisé ce code html classique
|
Est quand tu va cliquer sur précédent, hop, ça va revenir à la page. Bel exemple de cassage de bouton précédent
Marsh Posté le 14-03-2005 à 19:59:04
Bonjour !
Y-a-t-il un moyen de rediriger vers une page sans utiliser la fonction header()... Parce que j'ai une imbrication d'include() qui m'impose de passer du code html avt un envoi de fonction header() ....
D'où ma question ....