2013-02-23 2 views
0

У меня есть 3 формы входа на моей странице, нажатие на выходы уничтожает все сеансы и записывает их все. Я знаю, что session_destroy() уничтожает все данные, связанные с текущим сеансом, но могу ли я дать ему параметр или есть способ указать, какой сеанс уничтожить? Я попытался с помощью снята с охраны без session_destroy, но это не выход из системы пользователяsession_destroy() с несколькими сеансами

Код отредактированный:

<?php 
    if(isset($_GET['auth'])){ 
     if($_GET['auth']=='parent'){ 
     session_name('parent'); 
     session_start(); 
      if(isset($_SESSION['parent'])) 
       unset($_SESSION['parent']); 
       session_destroy(); 
    }} 
    if(isset($_GET['auth'])){ 
     if($_GET['auth']=='employee'){ 
     session_name('employee'); 
     session_start(); 
      if(isset($_SESSION['employee'])) 
       unset($_SESSION['employee']); 
       session_destroy(); 
    }} 
    if(isset($_GET['auth'])){ 
     if($_GET['auth']=='student'){ 
     session_name('student'); 
     session_start(); 
      if(isset($_SESSION['student'])) 
       unset($_SESSION['student']); 
       session_destroy(); 
    }} 

    header("Location: login.php"); 
    ?> 

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

+3

У вас есть один сеанс. –

+1

У вас сеанс. – zerkms

+2

One. Сессия. Evar! – L0j1k

ответ

0

Используйте session_start(); один раз в верхней части страницы. После успешного входа в систему проверьте все установленные вами сеансы, например, в вашем случае.

$_SESSION['parent']; 
$_SESSION['employee']; 
$_SESSION['student']; 

session_name (''); будет переопределять имя предыдущего сеанса, поэтому здесь вам не нужно использовать имя session_name. Если вы проверяете наличие определенного сеанса или имя сеанса существует unset ($ _ SESSION ('your_session_key')); Надеюсь, он сработает. Спасибо

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