estou tendo problemas no meu sistema com o internet explorer…
em cada página eu faço a verificação dos dados de login e se não estiver logado o sistema redireciona para a página de login. Até ai tudo normal. Mas se o usuário utiliza o botão back do navegador ele volta para a página do meu sistema com os dados que haviam antes, logicamente ele não consegue efetuar nenhuma operação pois não está logado e é redirecionado para fazer login. Ele só manda para o login quando você atualiza a página ou tenta fazer algo nela. Me disseram que talvez seja o cache. Mas não consegui utilizar as tags meta para impedir armazenamento. Tem alguma configuração do próprio php que evite armazenar ou permita utilizar as tags meta? quais seriam? Ou então alguma outra solução para isso.
Bom dia,
Vc não pode armazenar os dados do login na Sessão? Dessa forma seria extremamente mais prático (e eficiente)…
Outra questão, qto ao cache, já passei por problemas similares no passado… na época a idéia foi realizar um append incremental na Url exatamente como muitos portais (Como o Yahoo) fazem… por exemplo:
Vc esta certo Garcia, vc nos passou uma ótima referencia!
Apenas uma complemento, a adição de headers via request não precisaria ser efetuada para recursos de imagem, e outros recursos que não mudam.
A proposito , me indicaram um ferramenta interessante, o “httpFox” que mostra a vc qdo é feito ou nao o cache em uma requisição.
cristian_clever, esse componente é para o vraptor. Nesse caso ele intercepta apenas as requisições de páginas em sí, e não imagens.
O ideal é você interceptar apenas as páginas, e não imagens e css/js. Você está pensando em usar isso em uma linguagem especifica ou de forma genérica?
(edit)
Ahh, desculpe, ví que você usa PHP.
Você pode injetar esses cabeçalhos para alterar via function header(). Aliás, conheço PHP muito remoto, será que é essa function mesmo? Mas os headers são sempre os mesmos, independente de linguagem. Você pode fazer um include nas páginas que você quer evitar cache.
A idéia de um interceptor, ainda é ótima, só que ao inves dele pode-se usar um Filter… dessa forma seja a aplicação Via struts, JSF, VRaptor… tudo (Teoricamente) funcionaria.
Aliás Garcia o projeto que mencionei, ocorreu a uns 6/7 anos atras, na época o que nós chegamos a usar era
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(Calendar.YEAR, -1); // one year in the past
response.setDateHeader("Expires", c.getTime().getTime());
Infelizmente isso nao funcionava adequadamente nos browsers (IE %$%$#) kkkk, daí que veio a ideia da url.
PS:
Ficou uma grande pergunta… desde quando estes cabeçalhos ‘post-check’, ‘pre-check’ estão valendo?
Mas cara, o que vc passou foi show de bola, já foi pro delicious!