Sessions, Headers --> problèmes à répétition

Résolu/Fermé
neo673 - 12 sept. 2007 à 06:45
 neo673 - 14 sept. 2007 à 11:20
Bonjour à tous,

Je vous expose mon problème. Cela fait plusieurs jours que j'essaie en vain de faire des sessions corrects et des header(location) qui fonctionnent.

Pourquoi ? simplement car j'ai une page index.php avec mon design (du code html) et à l'intérieur de ce code, j'inclus mes pages php (inscriptions, identification etc...) et évidemment j'ai des problèmes de headers already sent...

J'ai fais beaucoup de recherches sur le net mais décidement je trouves pas comment faire, c'est pourquoi je vous link un fichier zip contenant une partie de mon site et vous pourrez voir par vous-même le pourquoi du comment.

J'espère sincèrement que vous pourrez m'aider ^_^

www.duotone.ch/neo/AnciensEtudiants/test_site.zip

3 réponses

neojick Messages postés 167 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 30 mars 2009 99
12 sept. 2007 à 08:16
A la bourre donc pas le temps de regarder le zip.

Mais pour les header tu dois savoir un truc important. Une page qui contient la fonction header ne peut pas contenir le moindre code html. Il ne faut que du php, même pas un espace avant le'<?php' au début de ton fichier.
Si tu 'include' des pages php contenant le header dans des page html, c'est logique que ça bug.

Il faut que tu trouve un autre moyen, avec par exemple le script qui va vérifier l'utilisateur à la connexion dans un autre fichier.

Tu as ton formulaire de user / mot de passe, le 'action' de ce formulaire va renvoyer vers un 'action.php' par exemple qui n'aura pas un seul caractère hmtl, et là tu pourra faire le header que tu veux selon le résultat de la connexion.


EDIT : va voir ça : php headers already sent by
0
Ok pour le cas du formulaire avec un action=script.php... la ca marche pour les header...


Mais une page genre moncompte.php qui nécessite une identification, si le type entre dans l'URL directement index.php?page=moncompte.php, comment je fais pour le rediriger sur l'index.php ??? si j'utilise un header j'ai l'erreur already sent by !


2ème question il me met aussi souvent qu'une session à déja été ouverte (session_start) quand je lance mon site en local, alors que sur le net, aucune erreur de session ! De plus les sessions foirent, comme si elles s'arrêtaient au bout d'un moment, alors que je suis sur la page et que je n'ai pas fermé mon navigateur.
0
je répond moi-même à mes questions si quelqu'un est intéressé :

Pour la première question, une redirection javascript en début de page et le tour est joué, effectivement c'est impossible de mettre un header(location:...) car le code html de ma page index.php est envoyé avant.

Dans mon cas, oubliez les formulaires-script (1 seul fichier contenant le formulaire et le code php)!! ca ne fonctionne pas si vous désirez faire des redirections dans le script. Faites un formulaire et un script dans 2 fichiers séparé et la vous pourrez faire des header(location:...) comme vous voulez.


Pour ma 2ème question, la session doit s'ouvrir sur index.php et sur tous les scripts (pas les formulaires !) et ca fonctionne bien ;)

Voila merci pour vos réponses et votre aide.
0