Como e onde posso usar
$this->Session->destroy()
Para a sessão ser destruída sempre que a página é fechada?
E como posso manter a sessão aberta até que a página seja fechada, independente do tempo?
Eu preciso disso porque quando o usuário entra na página, algumas variáveis específicas não são definidas na sessão, e quando ele sai, eu preciso que esta sessão seja destruída. Eu não sou capaz de fazer isso usando o cakephp.
Respostas:
1 para resposta № 1As sessões são armazenadas no servidor, portanto, se o navegador for fechado ou o usuário for para uma página diferente, não há obrigação de informar o servidor sobre essa ação.
As sessões são armazenadas por um certo tempo no servidor, e após algum tempo de inatividade ou se você fizer o logout corretamente, elas serão destruídas automaticamente.
Verifique as informações das sessões em Livro de receitas do CakePHP para mais informações sobre Sessões
0 para resposta № 2
Você pode tentar usar $(window).unload(function(){alert("Closing browser")});
E fazer ajax chamar ao servidor para destruir a sessão, mas isso pode não funcionar em alguns navegadores e já obsoleta função no jQuery 1.8 para mais informações
http://api.jquery.com/unload/
0 para resposta № 3
Se você tiver usado os componentes do Auth cakephp 3.0, não precisará fazer nada de todos os gerenciamentos de sessões e cookies realizados pelos principais componentes da sessão.
$ this-> Session-> destroy ()
ele destruirá todos os dados de cookie e de sessão, mas se você quiser destruir uma sessão particular, então você pode fazer por este código
$ this-> Session-> destroy ("$ val");
aqui, $ val representa sessão particular para destruir