Pb d'ouverture de session [Résolu]

Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011
- - Dernière réponse : 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.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
3
Merci
Bonjour,

Il faut mettre le session_start en première instruction dans le fichier, avant tout affichage html.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ludwig59
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
16
3
Merci
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




______________________________________________________________________

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de phpAnonyme
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
8
3
Merci
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++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cod57
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011
0
Merci
Merci à tous pour vos réponses.

Subaqua.
Commenter la réponse de cs_subaqua
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011
0
Merci
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 ?
Commenter la réponse de cs_subaqua