ludodoludujodu Posté 17 Avril 2006 Posté 17 Avril 2006 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 Posté 17 Avril 2006 Posté 17 Avril 2006 Oui en effet, l'instruction session_start() ; doit être placée avant tout contenu HTML envoyé vers le navigateur. 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 ! Bon travail
Boo2M0rs0 Posté 17 Avril 2006 Posté 17 Avril 2006 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é).
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant