Strict Standards: Resource ID#27 used as offset, casting to integer (27) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#29 used as offset, casting to integer (29) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#30 used as offset, casting to integer (30) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Обновить кэшированые рисунки
ТвойWeb » WebMaster класс » JavaScript » Обновить кэшированые рисунки

Страниц (1): [1]
 

1. awep - 07 Апреля, 2007 - 11:40:27 - перейти к сообщению
На сайте имеется система защиты от ботов, алгоритм использован от старого ExBB, то есть просто генерируется случайное число, заносится в сессионные данные, потом скрипт выдергивает это число и по одной картинке выводит числа, которые хранятся в отдельных файлах.

Но столкнулся с проблемой: картинки кэшируются! пользователь вводит числа с кэшированных картинок и ему выдается ошибка.

Как на JavaScript реализвать "принудительное" обновление картинок? или можно это сделать каким-либо другим способом?
captcha не предлагать. что-то другое - пожалуйста.
2. yura3d - 19 Июля, 2007 - 15:58:47 - перейти к сообщению
aweb
Не знаю каким образом ты хотел это реализовать на JavaScript. Я предложу немного другой вариант. Браузер кэширует рисунки потому что у них всегда одинаковый URL. Чтобы избавиться от кэширования нужно просто неявно изменять URL, например добавлять в конец запроса в урле случайно сгенерированное число. Сделать это несложно.

Открываеш файл templates/скин/agreed.tpl и в самое начало сразу после <? вставляешь код:

CODE:
$rand = mt_rand(100000, 999999);


Потом в этом же файле ищешь код:

CODE:
<img src='regimage.php?$exbb[sesid]&i=1' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=2' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=3' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=4' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=5' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=6' border='0' alt='PersCode'>&nbsp;


И заменяешь его на:

CODE:
<img src='regimage.php?$exbb[sesid]&i=1&rand=$rand' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=2&rand=$rand' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=3&rand=$rand' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=4&rand=$rand' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=5&rand=$rand' border='0' alt='PersCode'>&nbsp;
<img src='regimage.php?$exbb[sesid]&i=6&rand=$rand' border='0' alt='PersCode'>&nbsp;


Ну вот и всё. Больше кэширования не будет. Проверил, работает как надо.
3. Леголегс - 20 Июля, 2007 - 04:06:37 - перейти к сообщению
yura3d пишет:
например добавлять в конец запроса в урле случайно сгенерированное число.
Дурной метод. Правильнее использовать заголовки http:
CODE:
Cache-Control: no-cache
Expires: Mon, 1 Jan 1980 0:00:00 GMT

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0311]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33