Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcel De Marchi Cunha

Não lê cookie quando volta pelo navegador

Recommended Posts

Boa noite pessoal,

 

Pessoal, uso muito esse forum para procurar soluções de problemas que as vezes aparece aqui pra mim.

Hoje estou com um problema que nao encontrei nada que fale sobre isso. Estou com um problema ao ler cookie quando é usado o botão de voltar do navegador Chrome. Testei isso no Firefox e la funciona normal.

 

Estou num projeto de criação de um pwa todo em PHP, tudo está funcionando normal. Para a autenticação estou criando um ID no momento da autenticação e uso esse ID criptografado para registrar no cookie e na base de dados e em todas as páginas eu checo o ID no cookie e comparo com o que está na base de dados, se são iguais ok se não o usuário é direcionado para a tela de login.

O que acontece é que a navegação funciona tudo perfeitamente até alguem clicar em voltar pelo navegador chrome (mobile ou desktop), nesse momento por algum motivo o comando "$_COOKIE['nome do cookie']" não retorna nenhum valor e o usuário é direcionado para a tela de login, mas se olhar no navegador o cookie está la, tanto é que ao atualizar a pagina eu já consigo ler o cookie normalmente. Isso ocorre somente ao clicar em retornar pelo navegador e apenas pelo chorme.

 

Alguem já teve algum problema parecido?

Pensei em tentar obter o cookie por javascript pra ver se ele funciona mas ainda não tentei isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nunca vi este problema (exatamente por nunca ter utilizado da forma que você está fazendo, não desenvolvo PWA). O que você tem que ter em mente é que o history.back(), ou history.go(-1), é um comportamente do browser que basicamente realiza o restore do cache do browser.

 

Em um aplicação web comum, basicamente o que será realizado é o recarregamento do HTML via cache e, apenas quando necessário, o carregamento via requisição. É bem possível que a falha da leitura do cookie esteja diretamente realacionada com o browser ignorar o refresh do cookie.

 

Eu li sobre alguns bugs deste tipo com inputs hidden, mas nada sobre cookies. Veja os links abaixo se podem possuir algo que possa lhe ajudar:

https://stackoverflow.com/questions/4025843/chrome-doesnt-cache-hidden-form-field-values-for-use-in-browser-history

http://wiki.orbeon.com/forms/doc/contributor-guide/browser#TOC-Restoring-form-fields-on-back

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala pessoal, tudo bem?
       
      Eu tenho um dominio e vários subdomios dentro.
      Quero saber como recuperar um cookie nos subdominios, uma vez que ele foi criado em um subdominio específico.
       
      Estrutura:
      Tô criando o cookie em usuario.dominio.com.br com o seguinte código:
       
      $valor = md5(uniqid(rand(), true));
      setcookie("token", $valor, time() + (60 * 10), "/", "www.dominio.com.br");
       
      Porém, quero recuperar esse valor em todos os outros subdominios, mas esse codigo aí não tá funcionando.
       
      Alguém pode ajudar?
      Valeu
       
    • Por feasso
      Estou criando o Coockie e olhando no Chrome (F12), ele está sendo salvo normalmente.
       
      Mas quanto tento ler / recuperar dá erro... detalhe, em localhost (xammp) funciona, e quando coloco em produção dá erro e diz que o Cookie não existe, mesmo ele estando gravado.

    • Por Sapinn
      Opa galera. Então depois que eu comecei a usar cookies no meu sistema o seguinte erro está acontecendo Cannot modify header information - headers already sent by não sei exatamente o que é e preciso de ajuda. O erro ocorre quando eu verifico se a caixa "mantenha-me conectado" é marcada então eu faço uma verificação direto no index.
      <?php     session_start();              include '../app/configuracao.php';         include '../app/autoload.php';         include '../app/Controllers/Admins.php';         $rotas = new Rota();         $db = new DataBase();         $control = new Admins();         if(isset($_COOKIE['acesso'])){             $db->query('select * from admins where acesso = :acesso');             $db->bind('acesso',$_COOKIE['acesso']);             $db->resultado();                  if($db->resultado()){                 $control->fazLogin(isset($db->resultado()->email), isset($db->resultado()->senha));             }         }            ?>  
    • Por Sapinn
      Opa galera tudo blz? Então, me deparei com um pequeno problema no desenvolvimento de um projeto, eu gostaria que o usuário se mantivesse logado caso ele marcasse um check box com a opção de "Mantenha-me conectado", e até entendo que nessa caso devo usar os cookies do PHP, entretanto, não entendi ainda como usar esse recurso, alguém pode me ajudar??
    • Por ghlevin
      Estou precisando fazer um refresh automático em algumas páginas do site de um cliente. Porém, esse refresh precisa acontecer apenas UMA vez.
      Eu sei que daria pra eu colocar a meta tag abaixo, por exemplo:
      <meta content="3;url=http://www.meusite.com.br/index.php" http-equiv="Refresh" /> Mas aí ela atualizaria sempre a cada 3 segundos. E eu queria que atualizasse só uma vez. Como dá pra fazer isso? Com uso de SESSION, COOKIE ou alguma outra coisa?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.