/ / Como evitar que os cookies expirem mesmo após o reinício do navegador no aplicativo CakePHP - php, cakephp, cookies, cakephp-1.3, session-cookies

Como evitar que os cookies expirem mesmo após o reinício do navegador no aplicativo CakePHP - php, cakephp, cookies, cakephp-1.3, cookies de sessão

Eu tenho um e-commerce cakephp (v 1.3) aplicativo onde os clientes podem adicionar coisas a um carrinho. Contanto que o usuário não exista o navegador ou o período de tempo limite da sessão não seja excedido, as variáveis ​​de sessão que definem o conteúdo do carrinho permanecem armazenadas. Mas se eles fecham o navegador (IE / Firefox) o carrinho fica vazio desde que o cookie é destruído. Curiosamente, o Chrome não tem esse problema, que é outro mistério.

Eu tentei mudar a sessão.cookieTimeout no arquivo /app/config/core.php mas isso não tem nenhum efeito. Sempre que eu pego as informações do cookie nas ferramentas de desenvolvimento do navegador, ele mostra o nome do cookie "PHPSESSID" e a validade continua mostrando "quando a sessão termina ".

Eu também tentei sobrescrever o tempo de expiração do cookie na função beforeFilter () do AppController com $ this-> Cookie- $ time, mas isso não fez nada para definir o tempo limite do cookie de sessão.

Meu palpite é que alguma configuração mantém o tempo limite do cookie definido como 0, que é a configuração padrão para que a sessão termine quando o navegador é fechado.

Que outras coisas devo evitar que os cookies sejam destruídos quando um usuário fecha o navegador?

Respostas:

1 para resposta № 1

atualizar

sessão.O cookie_lifetime especifica o tempo de vida do cookie em segundos que é enviado ao navegador. O valor 0 significa "até o navegador ser fechado". O padrão é 0. Consulte também session_get_cookie_params () e session_set_cookie_params ().

Eu acho que definindo sua sessão.cookie_lifetime para um valor tão alto significa que você terá muitas sessões antigas em seu servidor e isso pode ser um problema se você tiver um grande número de sessões - normalmente as sessões são armazenadas na pasta "s / tmp do sistema". * nix máquinas, enche pode causar problemas na máquina - processos começam a travar como eles não conseguem criar arquivos temporários por qualquer motivo. (Você pode alterar o session.save_path para algo diferente de / tmp para que você não tem este problema - especialmente em hosts compartilhados).

E também defina isso no arquivo .htaccess, em vez de no php.ini, para que ele não afete seus outros projetos.