Запрет Internet Explorer 8 от кэширования данных формы - PullRequest
0 голосов
/ 24 февраля 2012

В настоящее время я сталкиваюсь с проблемой, что IE8 решает кэшировать (скрытое) поле формы, в которое я записываю случайно сгенерированный хеш, который также сохраняется в сеансе. Если хеш, отправленный в форме, равен хешу, сохраненному в сеансе, запрос формы действителен.

Но поскольку IE кэширует эти значения, значение, отправляемое в форме, отличается от того, что хранится в сеансе. Как я могу предотвратить это? Я пробовал autocomplete="off" как в поле, так и в элементе <form>.

Скрытое поле ввода выглядит так:

<input type="hidden" name="hash" value="hash inserted here" autocomplete="off" />

И тег формы выглядит так:

<form action="action uri" method="post" autocomplete="off">

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

autocomplete не имеет к этому никакого отношения, сама страница кэшируется в браузере.

Вы можете установить некоторые заголовки, чтобы отключить это:

header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
0 голосов
/ 24 февраля 2012

Вы можете поместить этот код в заголовок HTML:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

или используйте предложение Fire в своем коде PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...