10
votes

Comment puis-je gérer des états de session distincts pour deux sites Web différents sur le même hébergement en utilisant php

Je développe actuellement deux sites Web et les débogèrent en se connectant à localhost .

Le premier site est référencé avec http: // localhost / web1 et la seconde est référencée avec http: // localhost / web2 .

J'ai créé un script de connexion pour chacun dans lequel trois variables de session spécifiques à domaines sont définies, par exemple:

  1. $ _ session ['web1_user']
  2. $ _ session ['web1_login']
  3. $ _ session ['web1_sessionid']

    Cependant, lorsque je me connecte à Sites sur le même navigateur , puis déconnectez-vous du site un (qui incendie session_destroy () , je suis automatiquement déconnecté du site deuxième aussi.

    Des idées sur la manière dont je pourrais résoudre ce problème serait très apprécié. : (


2 commentaires

N'utilisez pas Session_Destroy pour ce cas. Au lieu de cela, désintisez les clés de session pour chaque site Web en particulier.


Si vous ne voulez pas modifier votre code comme solution ci-dessous, pointez BTW. Je vous suggérerais de jeter un coup d'œil à la création d'hôtes virtuels et de modifier votre fichier hôte. De cette façon, vous pouvez simuler que vous travaillez sur des noms de domaine entièrement qualifiés pour les deux applications, où les noms de domaine sont différents. Cela résoudrait votre problème localhost dans un instant.


9 Réponses :


-2
votes

Les sessions BEZ sont partagées dans le même navigateur. Si vous vous déconnectez à partir d'un onglet, les autres onglets seront déconnectés,

Exemple: je me connecte à Chrome, et j'ouvre dans un autre chrome, les sessions sont partagées, donc si je me déconnecte d'un, l'autre est déconnecté automatiquement!


0 commentaires

0
votes

Définir un nom de session différent dans chaque application, soit via session_name ( ) ou via session.name .


1 commentaires

Vous êtes un homme de haute représentant et personne n'attendant qu'un lien ne répond que de votre part



0
votes

Vous pouvez utiliser ce xxx


0 commentaires

-1
votes

Vous pouvez utiliser un nom de session différent dans tous les sites Web, comme pour le premier site Web que vous avez utilisé _ session ['web1_user'], $ _session ['web1_login'], $ _session ['web1_sessionid'] Deuxième site Web Vous pouvez utiliser _ session ['web2_user']

J'ai déjà fait face à ce problème et j'ai résolu-le en utilisant un nom différent de la session.


0 commentaires

1
votes

Utilisez xxx

avant session_start ();


0 commentaires

3
votes

J'ai récemment résolu un problème qui est lié à votre question. À l'origine, je cherchais une mise en œuvre similaire à ce que vous décrivez et, après avoir fait un peu de recherche, c'est ce que j'ai proposé:

Site 1 Fort>: P>

$some_name = session_name("some_name");
ini_set('session.cookie_domain', 'yourdomainname');
session_start();
echo $_SESSION['user'];
echo $_SESSION['password'];


0 commentaires

0
votes

Vous devez créer un hôte différent pour différents sites

Dans ce cas, vous avez deux sites exécutés sur le même hôte appelé localhost afin que les mêmes sessions de nom d'hôte soient partagées.


0 commentaires

0
votes

Inclure le fichier avec le démarrage de la session dans le deuxième domaine.

Web1 contient le fichier de démarrage de la session, web2 include ('../ web1 / session.php');


0 commentaires

9
votes

AHHH, les plaisirs de l'hébergement partagé! La meilleure chose à faire est simplement d'utiliser simplement un navigateur différent pour chaque site chaque fois que vous avez besoin d'être connecté aux deux sites simultanément ...

Pour expliquer pourquoi cela est important, vous devez comprendre ce qui suit:

Session Les variables sont stockées sur le serveur, avec une référence clé sur le serveur et un cookie sur votre navigateur. Une fois que vous non défini et détruisez l'un des deux des deux, une correspondance ne peut plus être faite - et votre session est partie! xxx

Ce qui précède tuera toutes les variables de session reliant le serveur à votre navigateur (du côté serveur).

Le moyen de gérer cela facilement consiste à effectuer des variables de session dans un autre ensemble de tableaux: xxx

vous pouviez Bien sûr, faites-la imaginer: xxx

puis lorsque vous déconnectez du site 1 xxx

Dans ce cas, vous avez créé Un système de gestion de session distinct pour chaque site (à l'aide d'une matrice bidimensionnelle, dont la couche supérieure est saisie par l'identifiant de votre site). Cela le rend afin que chaque site gère un ensemble séparé de variables de session - et lorsque vous vous en détruisez un, vous ne touchez pas les autres.

Cependant, je vous recommande donc d'utiliser différents navigateurs (ou en plus). ..


0 commentaires