2016-04-12 3 views
0

Я работаю над своим локальным хостом, и у меня есть два приложения.Ограничение переменных сеанса PHP

Скажем, URL'а, являются:

  1. локальных/приложение/app1/
  2. локального/приложение/app2/

Каждых из приложений имеет собственный модуль Логина, который с помощью PHP чтобы ограничить/разрешить пользователю вводить приложение. Имя переменной сеанса совпадает с именем uid. Путь я использую это:

<?php 
session_start(); 
if(!isset($_SESSION["uid"])) 
    header('location:login/index.php'); 
?> 

Но переменная сессии App1 работает и доступен в app2, которые я не хочу. Как ограничить доступность переменной сеанса, созданной в приложении 1, чтобы она не мешала другой переменной сеанса.

Я читал это How to restrict a session to a directory only in PHP?, но это не сработает в моем случае, как для одного каталога.

+1

Не могли бы вы просто создать свойство приложения на основе сеанса, например, '$ _SESSION ['current_app']' и проверить это на основе приложения? –

+0

На самом деле это не ограничивает переменную $ _SESSION в вашем каталоге, но вы всегда можете использовать переменную $ _SESSION, как это, и самостоятельно обрабатывать: $ _SESSION ['apps1'] ['uid']; $ _SESSION ['apps2'] ['uid']; – SamyQc

+0

@DavidWyly Не могу ли я использовать одно и то же имя и ограничить область действия переменной сеанса? – void

ответ

1

Используйте разные имена для сеансов при вызове session_start(), используя массив опций (больше информации: http://php.net/manual/en/session.configuration.php) и т.д .:

// App 1 
session_start(['name' => 'Session1']); 

// App 2 
session_start(['name' => 'Session2']); 

Это приводит разные имена куки сессии и, наконец, полностью отделенных сессий.

+0

Могу ли я использовать одно и то же имя и ограничить область действия переменной сеанса? – void

+0

Вы не можете. Полностью разные сеансы (с разными хэшами и разными именами файлов cookie) являются лучшим (и самым безопасным) решением. – Andreas

Смежные вопросы