/ / Destrua a sessão no cakephp quando sair da página? - php, sessão, cakephp, cakephp-2.3

Destrua a sessão no cakephp quando sair da página? - php, sessão, cakephp, cakephp-2.3

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 № 1

As 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