2012-04-27 3 views
2

Я использую quickcache от http://sourceforge.net/projects/quickcache иметь несколько динамических страниц в кэше в течение некоторого времениUndefined индекс: HTTP_ACCEPT_ENCODING

В моем сервере [HTTP_ACCEPT_ENCODING] => GZIP, выкачать

, но из quickcache_main.php

if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"],'x-gzip') !== false) 

и

if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"],'gzip') !== false) { 

является invok ed Я получаю ошибку заголовка в error_log. Я не вижу проблем с загрузкой этих кешированных страниц из таблицы mysql или доступа к не кэшированной (или истекшей) странице, когда скрипты создают новый кешированный. Я также никогда не видел, чтобы мои тесты вызывали новый журнал ошибок, например название. В любом случае, я вижу их очень часто перечисляемыми. Что мне не хватает?

+3

The 'Accept-Encoding:' заголовок не существует для всех запросов/клиентов. Когда отсутствует: уведомление. – mario

+0

Возможный дубликат [PHP: «Примечание: неопределенная переменная» и «Примечание: Неопределенный индекс»] (http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – mario

+0

@mario Я не очень хорошо это понимаю. Что касается связанного вопроса, я добавил, что если (isset ... но уведомления все еще появились. – dstonek

ответ

0

Изменить код:

if (!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { 
    ob_start();    
} 
elseif (strpos(' ' . $_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') == false) { 
    if (strpos(' ' . $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') == false) { 
     ob_start(); 
    } 
    elseif(!ob_start("ob_gzhandler")) { 
     ob_start(); 
    } 
} 
elseif(!ob_start("ob_gzhandler")) { 
    ob_start(); 
}