PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 16-04-2010 16:56:04

Franck
Membre
Inscription : 16-04-2010
Messages : 8

session_start et include

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

#2 16-04-2010 20:38:44

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : session_start et include

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 :

 session_start(); print "bonjour"; session_start();

. 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 wink

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

#3 17-04-2010 15:56:36

Franck
Membre
Inscription : 16-04-2010
Messages : 8

Re : session_start et include

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

#4 17-04-2010 17:28:27

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : session_start et include

c'est tout simplement que tu envoie des données au navigateur wink
même des blanc, c'est interdit wink
a++

Hors ligne

#5 17-04-2010 19:25:03

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : session_start et include

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

Pied de page des forums