Как уничтожить конкретного сеанса?
Заключается в следующем: у меня есть приложение/игру, которые использует сеансы, чтобы сохранить данные, которые пользователи выбрали.
всякий раз, когда пользователь перезапустить игру, мне нужно сбросить информацию, то использовал совершенно
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" }
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 можно использовать в качестве условия в каждой сессии, что вам нужно проверить.
Вы можете сделать так:
session_start();
$tmpemail = $_SESSION['email'];
$tmpsenha = $_SESSION['senha'];
session_destroy();
session_start();
$_SESSION['email'] = $tmpemail;
$_SESSION['senha'] = $tmpsenha;