As variáveis php $ _SESSION desaparecem e reaparecem aleatoriamente

Prefácio: este é um "desenvolvimento" deuma pergunta anterior meu, cujas respostas não resolveram o meu problema no final. Mas, ao tentar todas as sugestões e também tentar outras coisas, descobri que o problema real é outra coisa, então refiz minha pergunta aqui

Eu tenho uma página / sistema de login que funcionou corretamente por anos, deixando o usuário conectado até que ele feche a janela do navegador ou efetue logout manualmente. Ultimamente, porém, após apenas alguns minutos de inatividade, os cookies da sessão pareciam expirar, fazendo com que o usuário fosse desconectado automaticamente.

Isso acontece em diferentes navegadores e sistemas operacionais diferentes, a versão do PHP é a 5.6.29, que foi alterada recentemente (antes era 5.5 e até 5.3).

Crio e atualizo a sessão em todas as páginas comsession_start(). O script de logon primeiro verifica o nome do usuário e o PW e também obtém outros dados do usuário do banco de dados. Esses outros dados e o estado de login bem-sucedido são salvos em variáveis de sessão como

$_SESSION['username'] = $name;
$_SESSION['usertype'] = $type;
$_SESSION['login'] = "ok";

Nas outras páginas, verifico o estado de login assim:

session_start();
if(($_SESSION['login'] != "ok") OR ($_SESSION['usertype'] != "xxx")) {
 header("Location: ../login.php"); /* redirects to login page if conditions are not true */
 exit;
 }

O login funciona e os usuários logados podem prosseguir para outras páginas por algum tempo, mas depois de algum tempo (variando fortemente), ele parece estardesconectado (ou seja, redirecionado para a página de login ao tentar abrir outra página).

Então notei (nas ferramentas do desenvolvedor) que oo cookie da ID da sessão manteve o mesmo valor depois que a sessão parecia ter expirado (o que eu pensava, já que as variáveis da sessão haviam desaparecido). Mas a sessão não expirou, apenasas variáveis da sessão haviam desaparecido. Nos meus testes, tentei repetir algumas dessas variáveis em algumas páginas e, por acidente, descobri que depois que elas já haviam desaparecido (sem saída de eco) elasreapareceu depois de alguns minutos quando recarreguei a página ou mudei para outra página.

Agora é onde estou preso no momento: como isso pode acontecer, e especialmente: o que posso fazer para impedir que essas variáveis brinquem de esconde-esconde?

(BTW, não tenho acesso às configurações do servidor - isso está em um espaço da web compartilhado ...)

questionAnswers(2)

yourAnswerToTheQuestion