Même domaine, autre dossier de session PHP
Je veux mettre un autre ID de session en fonction de ce dossier d'un utilisateur est en.
Par exemple, j'ai du domaine https://example.com qui a les dossiers /app1 /app2, etc. et puis plusieurs fichiers à l'intérieur de chaque dossier app. Je voudrais mettre un ID de session pour être utilisé avec tous les fichiers dans app1 et un autre ID de session pour être utilisé dans app2.
Cela peut-il être fait?
OriginalL'auteur Kere Puki | 2011-03-29
Vous devez vous connecter pour publier un commentaire.
Définir le chemin d'accès dans le cookie de session avec
session_set_cookie_params
. Avantsession_start
de cours.... ce faire:
session_set_cookie_params(60*60*24*5, "/app1");
Si elle "s'est arrêté de chargement', êtes-vous sûr que vous n'avez pas juste à cause d'une erreur de syntaxe? Ajoutez également l'un des principaux
/
le chemin. Si cela ne fonctionne pas, essayez deini_set('session.cookie_path','/app1')
avant unsession_start
. Sur une note de côté: vous n'avez pas à déclarer le domaine (3ème paramètre), sauf si vous essayez de faire quelque chose de spécial avec elle.Toujours rien. Les deux applications sont encore à l'appel de la même session_id lors de l'écriture et de la lecture des informations à partir de DB. Toutes les autres suggestions?
Oh, et bien sûr: vous n'avez pas un "défaut" de la session à la racine
/
/ à l'échelle du site. Si vous avez l'un de ces, vous pourriez juste voulez basculer lesession_name
avantsession_start
avecsession_name('app1');
OriginalL'auteur Wrikken
Si
/app1
et/app2
contiennent absolument aucun rapport avec les applications, vous pourriez institut complètement indépendants des sessions sur les deux en utilisant PHPsession_name()
, de la fonction. Généralement, les séances de travail avec un cookie appeléPHPSESSID
. Au lieu de cela, dans/app1
vous pouvez exécutersession_name('session_app_1')
et dans/app2
vous pouvez exécutersession_name('session_app_2')
. Maintenant, les séances dans les deux applications seront totalement indépendants.Avertissement: PHP la documentation dit que le
session_name()
fonction est cher. Peut-être quitter la session avec le nom par défaut dans le plus occupé de l'app, et de le renommer uniquement dans le calme app.OriginalL'auteur TRiG
u peut utiliser l'idée que la
$_SESSION
var est un tableau:-1
?J'utilise des tableaux pour stocker les différentes sessions, mais ses juste session_id obtient toujours réglé sur la même id quel que soit le dossier.
OriginalL'auteur Neal
Je ne suis pas sûr que je comprends le problème correctement, mais vous pouvez essayer de vérifier le chemin d'accès pour voir si elle est en app1, app2, etc., puis obtenir de la part de la chaîne qui vous intéresse et de l'utiliser pour configurer votre session, par exemple avec
$_SERVER['REQUEST_URI']
ou$_SERVER['SCRIPT_NAME']
.Sauf si vous êtes déjà ce que et votre problème est qu'il ne sera pas le jeu de la session?
OriginalL'auteur Cristian
Réglage de la session_save_path à différents répertoires aidera votre but. Par exemple, vous pouvez l'installer dans un sous-répertoire à l'intérieur de chaque dir, c'est à dire. chemin d'accès relatif. Sinon, pour partager les sessions entre les répertoires ensemble session_save_path le même chemin d'accès complet. Fonctionne pour moi..
OriginalL'auteur brianH