Pb d'ouverture de session [Résolu]

Signaler
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011
-
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011
-
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

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

Il faut mettre le session_start en première instruction dans le fichier, avant tout affichage html.
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
39
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




______________________________________________________________________
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
12
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++
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

Merci à tous pour vos réponses.

Subaqua.
Messages postés
69
Date d'inscription
jeudi 22 décembre 2005
Statut
Membre
Dernière intervention
20 juin 2011

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 ?