Pb d'ouverture de session

Résolu
cs_subaqua
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011
- 18 févr. 2011 à 12:49
cs_subaqua
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011
- 19 févr. 2011 à 13:21
Bonjour à tous,

J'ai un pb bête d'ouverture de session.
On dit qu'il faut tjr mettre session_start(); avant de définir une variable de session.
Je fais donc cela.
Le pb est que sur ma page HTML apparaît ce message :
Notice: A session had already been started - ignoring session_start() in C:\wamp2\www\....
Il apparaît quand il rencontre une 2nde instruction session_start();
Je croyais que php créait une session ou restaurait la session existante. Apparemment, il essaye d'en créer une 2nde d'où le pb.

Qq'un peut m'aider ?

Merci d'avance.

Subaqua.

5 réponses

cs_ludwig59
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
18 févr. 2011 à 14:26
Bonjour,

Il faut mettre le session_start en première instruction dans le fichier, avant tout affichage html.
3
phpAnonyme
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
55
18 févr. 2011 à 15:50
Je croyais que php créait une session ou restaurait la session existante.
Oui, mais session_start() doit être définie qu'une seule fois dans une page. Si tu le définie à plusieurs fois tu aura une erreur.

Une toute petite solution pour pallier ce genre de souci :
<?php
/* Initialise une session */
function openSession()
{
return (isset($_SESSION)) ? FALSE : session_start();
}

openSession(); // Appel d'initialisation de session
?>

Au lieu d'utiliser directement session_start() tu fais appel à la fonction openSession() qui se chargera d'initialiser la session ou pas




______________________________________________________________________
3
cod57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
20
18 févr. 2011 à 20:26
bonsoir

as tu des includes dans ce script ?
la solution de phpanonyme doit être la bonne mais tu devras la mettre
dans tous les fichiers qui utilisent les sessions

a++
3
cs_subaqua
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

19 févr. 2011 à 07:59
Merci à tous pour vos réponses.

Subaqua.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_subaqua
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

19 févr. 2011 à 13:21
Oui, en effet, j'ai des includes dans mon script. Et j'ai l'impression que ça "tue" mes variables de session.

Dans index.php, je définis une var. $_SESSION['total']=5; puis j'ouvre le template par include 'feuille.html';
Dans cette feuille, j'affiche ma var. : <?php echo $_SESSION['total']; ?>
Ok, jusque là, pas de pb. La valeur 5 s'affiche correctement.

Sur cette 1ère feuille, je fais un lien vers une 2nde feuille qui pointe sur un fichier index.php placé dans un sous-répertoire. J'essaye d'afficher ma var. avec le même code dans le template (<?php echo $_SESSION['total']; ?> et là, ça plante :
Notice: Undefined variable: _SESSION in C:\wamp2\www\....

Ma var. a donc été supprimée. Pourquoi ?
0