Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous, je suis nouveau sur ce forum et débutant avec php.
J'ai essayé d'utiliser un script de connexion de membre (trouvé sur phpdebutant.org) mais j'ai un petit problème.
Je pense l'avoir cerné mais je ne sais pas le résoudre.
Au début d'une page, il y a un session_start mais cette page est incluse dans une autre, j'ai donc un beau message d'erreur qui s'affiche.
Comment puis-je faire pour contourner ce problème ?
Je précise que la page est incluse pour faciliter la maintenance du site.
Merci à ceux qui voudront bien se pencher sur ce problème de débutant...
Hors ligne
Bonjour,
Le fait qu'il y ait un session_start au début d'une page incluse dans une autre, est normal, car comme tu l'as dit ca facilite entre autre la maintenance du site. Donc le problème ne peut pas venir de là en soit. Tu as du modifier quelque chose qui génère l'erreur.
Ce qu'il faut faire pour eviter des erreurs avec les sessions.
- Que le session_start soit déclaré surtout avant qu'un entête ou des caractères aient été émis sur ta page. : sinon erreur.
A quoi sert-il, si c'est la première fois qu'il est lancé, un session_id() est crée sur le serveur ainsi que l'environnement $_SESSION qui devient alors accessible sur ta page. Ensuite, il permet juste de recharger l'environnement $_SESSION sur ta page, et de rendre à nouveau disponible les variables qu'elle contient.
- Il faut le déclarer une seule fois par page affichée.
ex générant une erreur :
. L'exemple est bateau mais ton deuxième session_start(); générera une belle erreur à cause de ton print.
Voila. J'espère que ca t'aura aidé au moins un peu
Dernière modification par Jc (17-04-2010 21:22:40)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour.
Merci Jc pour les infos.
J'ai bien cherché mais je n'ai pas trouvé 2 session_start() sur la même page.
J'ai testé le script trouvé sur phpdebutant.org à part, il marche très bien. Donc, j'ai compris comment il fonctionne.
Le problème survient quand je l'intègre à mon site.
En gros, j'ai 4 fichiers :
- connexion.php qui contient le formulaire. Il est en php car inclus dans un autre (index.php).
- login.php, script d'authentification
- verif.php, vérification sur chaque page avec session_start()
- ajout_art.php, script pour alimenter une base de données dans le lequel j'inclus verif.php au début (ajout_art.php est inclus dans index.php).
L'erreur retournée est la suivante lorsque je lance ajout_art.php :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/Laboratoire/index.php:13) in /var/www/Laboratoire/verif.php on line 2
Je ne sais pas ce que cela signifie mais l'erreur vient de session_start() certainement.
Je vais continuer à fouiller dans le code pour dénicher un session_start() mal placé.
Hors ligne
c'est tout simplement que tu envoie des données au navigateur
même des blanc, c'est interdit
a++
Hors ligne
Le message d'ereur indique que le problème vient de la ligne 13 de index.php
Tu dois avoir un print, un echo ou autre chose qui comme le dit Pierrot envoie des données au navigateur.
Le session_start() ne peut être que la première donnée, il ne peut jamais se trouver après une autre.
Hors ligne
Pages :: 1