Pb d'ouverture de session [Résolu]

cs_subaqua 69 Messages postés jeudi 22 décembre 2005Date d'inscription 20 juin 2011 Dernière intervention - 18 févr. 2011 à 12:49 - Dernière réponse : cs_subaqua 69 Messages postés jeudi 22 décembre 2005Date d'inscription 20 juin 2011 Dernière intervention
- 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 

Votre réponse

5 réponses

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

Il faut mettre le session_start en première instruction dans le fichier, avant tout affichage html.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ludwig59
phpAnonyme 403 Messages postés mercredi 28 octobre 2009Date d'inscription 23 mars 2012 Dernière intervention - 18 févr. 2011 à 15:50
+3
Utile
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




______________________________________________________________________
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de phpAnonyme
cod57 1661 Messages postés dimanche 7 septembre 2008Date d'inscription 11 septembre 2013 Dernière intervention - 18 févr. 2011 à 20:26
+3
Utile
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++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cod57
cs_subaqua 69 Messages postés jeudi 22 décembre 2005Date d'inscription 20 juin 2011 Dernière intervention - 19 févr. 2011 à 07:59
0
Utile
Merci à tous pour vos réponses.

Subaqua.
Commenter la réponse de cs_subaqua
cs_subaqua 69 Messages postés jeudi 22 décembre 2005Date d'inscription 20 juin 2011 Dernière intervention - 19 févr. 2011 à 13:21
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.