2012-01-23 8 views
0

Я создаю динамический веб-сайт с php & mysql. У меня есть 2 папки, один - пользователь, а другой - admin. В папке пользователя я помещаю страницу user_logout.php и в папку администратора я добавляю admin_logout.php. Так что вопрос, когда я выйти из панели пользователя он успешно выйти из пользователя панели НО в то же время он также выйти из панели администратора, если я вход.Проблема с выходом Php в панели пользователя и панели администратора

User_logout.php страница

<?php 
include("db.php"); 
include("include/session.php"); 

$tm=date("Y-m-d H:i:s"); 
$q=mysql_query("UPDATE plus_user_login SET status='OFF', tm_out='$tm' WHERE 
id='$_SESSION[id]'"); 
echo mysql_error(); 

$see = $_SESSION['uname']; 
session_unset($see); 
session_destroy(); 
echo "<h1><center>You have been successfully Log Out</h1></center><br/>"; 
?> 

Admin_logout.php страница

<?php 
include("include/session.php"); 
include("db.php"); 

$q=mysql_query("update plus_login set status='OFF' where id='$_SESSION[id]'"); 
session_unset($_SESSION['uname_ad']); 
session_destroy(); 
echo "<br/>"; 
echo "<h1>You have been successfully Log Out</h1><br/>"; 

?> 

Любая помощь по этому вопросу? Большое спасибо.

ответ

0
Session_destroy() 

удаление этого кода должно решить вашу проблему.

Хотя и убедитесь, что вы не перепутать сессии индексы при входе в

EDIT:.

Что $ _SESSION [ «ID»] делать в коде? Я не вижу, как это связано с $ _SESSION ['uname'] и $ _SESSION ['uname_ad']?

Если вы извлекаете статус из базы данных, попробуйте изменить $ _SESSION ['id'] на $ _SESSION ['uname'] и $ _SESSION ['uname_ad'] в соответствующем запросе на обновление.

Также расскажите, как вы проверяете статус входа в систему. Против базы данных или только на основе данных сеанса?

+0

Это была моя оригинальная мысль. Проблема состоит в том, что команда session_unset() очищает ВСЕ записи в $ _SESSION []. В этом случае это удаляет записи «uname» и «uname_ad», эффективно регистрируя пользователя из обоих сеансов. –

+0

хорошо @itachi, я использую для входа --- $ _SESSION ['id'] = session_id(); $ _SESSION ['uname'] = $ uname;/$ _SESSION ['id'] = session_id(); $ _SESSION ['uname_ad'] = $ uname; это правильно? – user1161867

0

Проблема заключается в том, что как команда session_unset(), так и команды session_destroy() очищают переменную, которая управляет обе вашими панелями управления.

  1. Удалить команды session_destroy() из обеих частей кода.
  2. В своем административном журнале замените session_unset ($ _ SESSION ['uname_ad']); с:

    $ _SESSION ['uname_ad'] = '';

  3. При выходе пользователя из системы замените session_unset ($ _ SESSION [$ see]); с:

    $ _SESSION ['uname'] = '';

Дайте это попробовать.

+0

нет эффект .....! – user1161867

+0

Просто проверяя что-то .... вы вышли из системы, если обновите страницу? –

+0

Да, я обновляю страницу, которую она все еще говорит, не выходите из системы – user1161867

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