PHP: Examiner si une Session existe déjà - Empêcher l’Erreur "A session had already been started"
Question de Invité | 06/03/2023 à 20:26
Je travaille avec des sessions dans l'un de mes scripts PHP. Malheureusement, de temps en temps, il arrive qu'apparemment déjà une session PHP existe, après avoir révoqué session_start(). Cela se traduit par le message d'erreur suivant (Une session a déjà été démarrée):
Notice: A session had already been started - ignoring session_start()
Comment puis-je empêcher ce message d'erreur et vérifier si une session existe déjà et appeler session_start() en conséquence uniquement s'il n'y a pas encore de session ?
Sujets Connexes
MySQL: Sauts de Ligne dans MySQL
Conseil | 0 Commentaires
Script Batch: Arrêter Ordinateur Windows
Tutoriel | 4 Commentaires
SQLite: Tester si une Table existe
Info | 0 Commentaires
Validation HTML5: Element "link" is missing required attribute "property"
Question | 1 Réponse
MySQL/PHP: Comment récupérer le dernier INSERT ID
Info | 0 Commentaires
Validation HTML: UL dans UL provoque l'erreur "ul not allowed as child of element ul in this context"
Question | 1 Réponse
PHP: Erreur "Call to undefined function now()"
Question | 1 Réponse
Avis Important
Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.
Participer
Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.
Vous pouvez facilement vérifier avec isset(), s'il y a déjà une session ou dans votre cas, si aucune session n'est ouverte.
Vous pouvez le faire comme suit :
Cependant, la meilleure solution serait de (re)structurer votre code afin que session_start() ne soit invoquée de manière fiable qu'une seule fois, par exemple, à chaque fois que vous démarrez votre script. Avec une bonne conception de code, plusieurs appels à session_start() ne doivent pas se produire.
07/03/2023 à 11:38
Vous pouvez également utiliser la fonction PHP session_status() pour vérifier s'il y a actuellement une session.
Si une session est ouverte, vous récupérerez PHP_SESSION_ACTIVE de session_status(). Ainsi, vous pouvez écrire:
Cela vérifie si session_status() n'est pas égal à PHP_SESSION_ACTIVE (= une session est active) et puis démarre une nouvelle session.
Les autres valeurs de retour de session_status() sont:
Plus d'informations à ce sujet ici dans le Manuel PHP.
09/03/2023 à 19:17