Version complète: sur le forum Webmaster Hub : base d'un site php
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
ludodoludujodu
Bonjour,

Je voudrais intégrer un espace membre a mon site mais j'ai une belle erreur php car le session_start n'est pas placé avant le code html (je possède un système d'include qui me permet de mettre le code de mon design une seule fois).

Donc on m'a dit d'utiliser les templates mais j'aimerais rester dans le même état d'esprit c'est a dire ne pas mettre le code de mon design sur toutes les pages de mon site (imaginez vous si je dois rajoutr un lien dans le menu...).

Donc j'aimerai savoir comment faire ???


Merci d'avance pour vos réponses !!!
Harry_20
Oui en effet, l'instruction session_start() ; doit être placée avant tout contenu HTML envoyé vers le navigateur. wink.gif


Tu as deux manières de procéder :

- Ta session ne comporte pas de contrôle sur adresse IP, de time out, ... Tu peux placer l'instruction session_start() sur chacune des pages accessibles en session avant la ligne DOCTYPE en principe ou alors avant d'inclure le design sur la page.

- Ou alors tu souhaites intégrer un contrôle sur l'adresse IP, le time out, ... Il vaut mieux créer un fichier séparer dans lequel ouvrir la session et placer un include à la même place qu'on y placerait le session_start() dans les pages de session.

En tout cas, ne pas intégrer de session_start() dans un des fichiers comprenant le design ... tu ouvrirais ou continuerais une session sur chacune des pages du site alors ! IMSTP6.gif

Bon travail IMSTP2.gif
Boo2M0rs0
Une solution assez simple consisterait à utiliser les fonctions de bufferisation de php.

Un simple appel à ob_start() tout en haut de chaque page bloquera l'envoi des données avant la fin de la page. Le seul effet secondaire est le fait que ta page sera reçue par le navigateur d'une traite, et pas progressivement mais ça ne se remarque pas (sauf si ton hebergeur est surchargé).
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.