2013-10-15 6 views
0

Я создал два веб-приложения для своей компании, и я проверяю учетные данные пользователей на каждой странице приложения. Я проверяю пользователя, используя сеансы, и даже устанавливаю некоторые значения в сеансах для но в настоящее время проблема заключается в том, что когда я использую оба приложения на одном компьютере, их сеансы сталкиваются друг с другом, а значение, хранящееся в сеансах, также перезаписывается, когда я вхожу в приложение для другого приложения, когда первое приложение уже запущено вот мой код, чтобы проверить пользователя в сессии, предотвращающий несанкционированный доступ к веб-приложению

if(!isset($_SESSION["username"])){ 
    header("Location: index.php"); 
} 

и значение, которое устанавливается на сессии является

$_SESSION["zdb"]; 

Есть ли другой способ, с помощью которого я могу предотвратить несанкционированный доступ к моим приложениям?

+1

Вы когда-нибудь научились использовать пунктуацию, чтобы разбить текст на читаемые предложения? – deceze

ответ

1

Вы могли бы, например, указать ваши сеансы с префиксом.

Применение 1

$sess_prefix = 'app1'; 
if(!isset($_SESSION[$sess_prefix.".username"])){ 
    header("Location: index.php"); 
} 

И приложение 2

$sess_prefix = 'app2'; 
if(!isset($_SESSION[$sess_prefix.".username"])){ 
    header("Location: index.php"); 
} 
+0

Я пробовал это тоже, что хорошо работает, но моя проблема в том, что я отправляю некоторую информацию, связанную с базой данных, на сессии, например. mydatabase <-this - это имя моей базы данных, которое мне нужно во всем моем приложении, и оно будет перезаписано, как только я войду в свое второе приложение. – user2274075

+0

Это похоже на проблему конфигурации в других местах. Если ваши приложения используют одни и те же имена таблиц, вы должны обязательно использовать разные базы данных или префикс имен таблиц. – MildlySerious

+0

yup that is the problem Я хочу использовать имя базы данных из сеансов внутри запросов mysql и даже не хочу, чтобы они столкнулись друг с другом – user2274075

0

Вы можете также использовать session_set_cookie_params, где вы можете определить параметры (например, путь и домены, которые должны быть diffrent для приложений).

0

Hello В этом случае вы обязательно должны создать или уничтожить сеанс другого имени. если вы хотите использовать оба приложения одновременно с тем же браузером. В вашем приложении также может быть создано имя (уникальное) имя.

+0

Да, но если я добавлю префикс в мою базу данных внутри своего сеанса, как я могу использовать их в запросах mysql? – user2274075

+0

Вы должны использовать другое имя базы данных и атрибут сеанса. например $ _SESSION ['appnameUser'] = $ userId; – Manwal

+0

нравится, как ??? Могу ли вы, пожалуйста, дать мне какой-нибудь пример? – user2274075

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