Как уничтожить конкретного сеанса?


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

всякий раз, когда пользователь перезапустить игру, мне нужно сбросить информацию, то использовал совершенно

     session_destroy();

, пришлось использовать

$_SESSION['email'] e $_SESSION['senha']

Для пользователя, только бы доступ к странице игра, если бы вы вошли в систему.

Так что теперь, если я использую

session_destroy();

сеансы, которые сохраняет пользователь, вошедший также разрушены, и он перенаправляется на главную страницу.

я Пытался использовать

unset(); 

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

какие-Либо предложения?

Посмотрите, что я делаю:

      if ($_POST['entrada'] === "ex" ) //primeiro if
      {

          if(isset($_SESSION['palavra']))
           {
              unset($_SESSION['palavra']); 
           }

          if(isset($_SESSION['sessoes']))
          {
           unset($_SESSION['sessoes']); 
          }              
         if(isset($_SESSION['letra']))   
         {
          unset($_SESSION['letra']); 
         }


      }//fecha o primeiro if

Внутри этого if основной более десяти сессий, чтобы unsetar, я ставлю только три, чтобы проиллюстрировать, что я делаю.

VAR DUMP $_SESSION [: array(13) { ["background"]=> string(5) "bottom" ["email"]=> string(25) "[email protected]" ["password"]=> string(8) "deusdeus" ["class"]=> string(7) "въезд" ["count"]=> int(3) ["pos"]=> int(0) ["pos_2"]=> int(2) ["error"]=> string(1) "v" ["erro_1"]=> string(1) "m" ["erro_2"]=> string(1) "w" ["erro_3"]=> string(1) "x" ["erro_4"]=> string(1) "z" ["erro_5"]=> string(1) "y" }

Author: I Wanna Know, 2014-09-03

2 answers

Обновлении

Вы можете сделать подгруппы в систему:

$_SESSION['login'] = array( 'email' => '[email protected]' , 'senha' => 'userpassword' );
$_SESSION['games'] = array( 'palavra' => 'Helicóptero' , 'letra' => 'a' );

Сеанса будет на 2 группы: данные для входа(почту, пароль), а данные игры(слово, буква...)

[login] => Array('email' => '[email protected]' , 'senha' => 'userpassword')
[games] => Array('palavra' => 'Helicóptero' , 'letra' => 'a' )

Вы можете удалить индекс, входящих "систему игры" с помощью unset( $_SESSION['games']['palavra'] ) или перезапустить игру удалении завершения сессии игры с помощью unset( $_SESSION['games'] ), это будет поддерживать сеанс пользователя без изменений.


Удаление indices компании session

Unset destri переменной сеанс, а session_destroy() будет уничтожить все сеансы для пользователя.

unset( $_SESSION['palavra'] );  // irá remover apenas os dados de 'palavra'
session_destroy();  // irá remover todas as sessões do usuário.

Я Не знаю, если удовлетворяет свои сомнения, но я дать простой пример...

// criando sessões de login
session_start();
$email = $_SESSION['email'];
$senha = $_SESSION['senha'];

// criando sessões do jogo
$senha = $_SESSION['palavra'];
$senha = $_SESSION['letra'];

// removendo todas as sessões
session_start();
session_destroy();
unset( $_SESSION );

// removendo sessões do jogo
// opção 1)
unset( $_SESSION['palavra'] );
unset( $_SESSION['senha'] );

// opção 2)
$_SESSION['palavra'] = null;
$_SESSION['senha'] = null;

Masta можно использовать в качестве условия в каждой сессии, что вам нужно проверить.

 6
Author: Papa Charlie, 2014-09-03 23:48:55

Вы можете сделать так:

session_start();
$tmpemail = $_SESSION['email'];
$tmpsenha = $_SESSION['senha'];
session_destroy();
session_start();
$_SESSION['email'] = $tmpemail;
$_SESSION['senha'] = $tmpsenha;
 5
Author: KaduAmaral, 2014-09-03 18:50:20