Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de la session php

La destruction de la session

20 juillet 2017 à 13:37:38

Bonjour,

J'ai deux applications web qui sont hébergées dans la même machine, chaque application est protégée par un mot de passe mais le problème c'est que si j'étais connectée sur les deux en même temps et que je voulais me déconnectée de l'une de ces applications l'autre aussi se déconnecte. j'aimerais bien savoir où est-ce que les sessions s'enregistrent en général ? Et comment je peux détruire que la session de l'application active ?

Merci d'avance pour votre aide :)

Cordialement 

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
20 juillet 2017 à 14:01:16

Salut,

Une session est enregistrée côté serveur, et l'identifiant t'associant avec ladite session est par défaut sous forme de cookie de nom PHPSESSID.

Un cookie ne fonctionne que pour un seul domaine (par défaut, des règles peuvent varier, je te laisserai chercher sur le fonctionnement précis des domaines/sous-domaines/cookies). Donc, entre app1.monordi.local et app2.monordi.local, ce sera 2 sessions différentes.

Par contre, si app1 et app2 sont deux sous-répertoires d'un même domaine (ce qui est sans doute le cas), par exemple localhost/app1 et localhost/app2, le domaine de session est localhost, donc tu n'aura qu'une seule et unique session.

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2017 à 14:58:17

Salut Artemix,

Oui exactement, c'est le même domaine "localhost" est-ce que c'est impossible de travailler sur deux sessions différentes dans ce cas là ? Ou s'il existe une autre méthode que j’ignore ? Si tu me donnais un lien ou des mots clés qui détaillent tout ça  pour m'approfondir sur les sessions

Merci :)  

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2017 à 15:44:57

Ma première réaction, ce serait de te dire que ce n'est pas le fonctionnement normal des sessions : elles ont été faites pour t'authentifier sur tout le domaine, en l'occurrence localhost.

Maintenant, tu peux modifier ta session comme tu veux, avec les valeurs stockées dans $_SESSION['site1']et $_SESSION['site2']. Mais c'est clairement un pis-aller, et ce n'est pas fait pour ça.

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2017 à 16:58:11

Oui, mais quand je supprime la session par $_SESSION=array(); et session_destroy(); ça s'applique sur les deux applications et c'est la chose non voulue :/ à ton avis y a t-il une solution ?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
20 juillet 2017 à 19:11:09

Créer ta session avec un identifiant de token personnalisé.

C'est possible (regarde la doc sur la fonction session_start), et fonctionnel, mais à éviter, vu que tu "triches" sur le comportement normal des sessions/domaines. Bref, gardes-ça uniquement pour en local.

  • Partager sur Facebook
  • Partager sur Twitter
21 juillet 2017 à 10:35:10

Oh, je ne connaissais pas, effectivement c'est plus pratique et ça évite le pb de session_destroy.

  • Partager sur Facebook
  • Partager sur Twitter