За последние 24 часа нас посетили 17267 программистов и 1688 роботов. Сейчас ищет 1231 программист ...

Не работает Антикэш

Тема в разделе "PHP для новичков", создана пользователем gloomen, 18 мар 2010.

  1. gloomen

    gloomen Активный пользователь

    С нами с:
    16 сен 2009
    Сообщения:
    14
    Симпатии:
    0
    Всем привет, после переустановки ПО на сервере сталкнулся с такой

    делемой.

    Не срабатывает анти кеширование. Вот к примеру у нас есть капча:

    http://www.captcha.ru/kcaptcha.zip, тестировал и на других!
    Установил всё работает т.е. срабатывает антикеш: в ie5-8, firefox,

    Хром, Сафари
    А, вот в опере 9x, 10x нехочет, причём пробовал с нескольких ПК
    Раньше был php 5.10, сейчас 5.12 и nginx/0.7.65
    Сайт на котором всё это дело крутиться находиться в локальной сети

    поэтому извне доступа нет.
    Может быть в PHP есть заветная галочка подержка оперы, которую я не

    поставил? :)


    вот код:
    Код (Text):
    1.  
    2.         Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    3.         Header("Last-Modified: ".gmdate("D, d M Y
    4.  
    5. H:i:s")."GMT");
    6.         Header("Cache-Control: no-cache, must-revalidate");
    7.         Header("Pragma: no-cache");
    8.         header("Content-type: image/png");
    Пробовал и так:
    Код (Text):
    1.  
    2.         header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    3.         header('Cache-Control: no-store, no-cache,
    4.  
    5. must-revalidate');
    6.         header('Cache-Control: post-check=0, pre-check=0',
    7.  
    8. FALSE);
    9.         header('Pragma: no-cache');
    10.        
    11.         if(function_exists("imagejpeg")){
    12.             header("Content-Type: image/jpeg");
    13.             imagejpeg($img2, null, $jpeg_quality);
    14.         }else if(function_exists("imagegif")){
    15.             header("Content-Type: image/gif");
    16.             imagegif($img2);
    17.         }else if(function_exists("imagepng")){
    18.             header("Content-Type: image/x-png");
    19.             imagepng($img2);
    20.         }
     
  2. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    gloomen
    капчу получай по динамической ссылке с лишними параметрами
     
  3. gloomen

    gloomen Активный пользователь

    С нами с:
    16 сен 2009
    Сообщения:
    14
    Симпатии:
    0
    >Костян

    несовсем ясно, привиди пример пожалуйста
     
  4. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    кароче типа вместе с капчей отправляй каконить там число рандомное
     
  5. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
  6. gloomen

    gloomen Активный пользователь

    С нами с:
    16 сен 2009
    Сообщения:
    14
    Симпатии:
    0
    Попробовал радикальное решение:
    Код (Text):
    1.  
    2. <img src="kaptcha.php?rand=<?=mt_rand(1, 1000000);?>" alt="CAPTCHA" />
    Результат: Результат работы в опере 9-10
    - Загрузилась страница сгенерировал капча И ?rand=812055
    - Нажимаю F5: генерируется новая капча и ?rand=893453
    - Стоит нажать на кнопку "назад" в опере, страница переход на предедущую:
    А, вот здесь старая капча(не сгенерированная), а также старый ?rand=893453
    - Теперь нажимаем вперёд и опять старая капча и старый ?rand=893453
    - А вот стоит только нажать F5 как всё прекрстно генерируется!
    ----------------------------------------------------
    Это результат работы только в опере!, вовсе других браузерах(см. выше), работает, новое число генерируется
    всегда, нажимаешь в браузере кнопку назад-вперёд всегда новая генерация.


    P.S. Что самое интересно раньше в опере 9-10 работало до смены ПО на серваке (см. выше)
    Что же за херня такая???
     
  7. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    опера кеширует то что загружается состраницы... и поэтому при переходе назад вперед она пытается вызвать старую картинку и неполучает ответа. поэтому капча не генерируется... а когда обновляешь страницу то сценарий генирации капчи вызывается наного. и капча гененируется и отправляется браузеру следовательно старая подыхает..
     
  8. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    gloomen
    а нафиг тебе новая капча когда пользователь нажимает кнопку назад???
     
  9. gloomen

    gloomen Активный пользователь

    С нами с:
    16 сен 2009
    Сообщения:
    14
    Симпатии:
    0
    так ведь это защита от перебора комбинаций.
    антикэш не срабатывает
     
  10. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    gloomen
    а у тебя идёт запрос к серверу по кнопке "назад"?