Андрей К.
1172 сообщения
#15 лет назад
1. При нажатии кнопки возврат в браузере все поля формы очищаются. Как сделать так, чтобы они оставались заполненными?
2. Opera 10 кэширует абсолютно все, поэтому капча не обновляется при возврате. При этом, вызов капчи идет в виде <img src="captcha.php?random=рандомное_число" />. Кроме того, внутри captcha.php прописано
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");

И не помогает. Как исправить?

Знатокам заранее спс.
Олег Шумар
155 сообщений
#15 лет назад
Самый быстрый но некрасивый способ - создать сессию.
Алексей Б.
897 сообщений
#15 лет назад
Вы лучше сделайте, чтобы юзерам не требовалось нажимать кнопку назад.
Артем П.
122 сообщения
#15 лет назад
А если юзер ошибся при вводе капчи?
Сергей Шпак
596 сообщений
#15 лет назад
socialist,

1. Выводим форму со всеми полями.
2. Пользователь заполняет все необходимые поля + поле с капчей в котором возможно делает ошибку.
3. Пользователь жмет кнопку "сабмит".
4. Получаем данные формы, проверяем все поля, если поле капчи содержит ошибку - отправляем пользователю второй раз форму в которой у полей уже есть значения которые ввел пользователь (только поле капчи пустым нужно оставить + вывести ошибку : "типа капча была неправильно введена " )

Гибкость и Логики как и на стороне клиента так и на стороне сервера = все довольны
Евгений М.
6 сообщений
#15 лет назад
<img src="captcha.php?random=рандомное_число" /> - "random=рандомное_число" ну это вы зря.
Для того, что бы Opera не кешировала, можно сделать так:
<img src="captcha.php?random=рандомное_число&bla=<?=microtime()?>" />

А по поводу числа, самый быстрый и безобидный это сессия.