Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Постоянные ошибки с cache.php


Recommended Posts

Магазин работает но постоянно в логе ошибки с:

 

/system/library/cache.php on line 38
/system/library/cache.php on line 40

/system/library/cache.php on line 36

 

Помогите исправить. Появилось после переноса движка из другого домена.

 

Кто согласиться дам доступ.

Надіслати
Поділитися на інших сайтах


Нет права стоят 777.

ВОт пример ошибок:

 



2013-04-06 12:34:58 - PHP Warning: fopen(/var/www/***/data/www/***/system/cache/cache.get_manufacter_items_names.02202122232419181716151413121110988899091928119122114115116117118120150712313213313112614714614514414312412713413512812913012514114013913813713661011021041051061031001121111101081091071215971139698959994450494745444333536378482878685813839798033148149266562616364667069686727747173722875777678293031255259585756555453.1.1365255298) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: File name too long in /var/www/***/data/www/***/system/library/cache.php on line 36

2013-04-06 12:34:58 - PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/***/data/www/***/system/library/cache.php on line 38

2013-04-06 12:34:58 - PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/***/data/www/***/system/library/cache.php on line 40

2013-04-06 12:35:20 - PHP Warning: fopen(/var/www/***/data/www/***/system/cache/cache.get_manufacter_items_names.02202122232419181716151413121110988899091928119122114115116117118120150712313213313112614714614514414312412713413512812913012514114013913813713661011021041051061031001121111101081091071215971139698959994450494745444333536378482878685813839798033148149266562616364667069686727747173722875777678293031255259585756555453.1.1365255320) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: File name too long in /var/www/***/data/www/***/system/library/cache.php on line 36
 
Надіслати
Поділитися на інших сайтах


написано ведь

File name too long

вопросы к автору кода, который формирует такой кэш-файл

cache.get_manufacter_items_names.02202122232419181716151413121110988899091928119122114115116117118120150712313213313112614714614514414312412713413512812913012514114013913813713661011021041051061031001121111101081091071215971139698959994450494745444333536378482878685813839798033148149266562616364667069686727747173722875777678293031255259585756555453.1.1365255298

= = =

 

еще можно поиском по файлам найти

get_manufacter_items_names

и переписать кэширование в тех местах

Змінено користувачем afwollis
Надіслати
Поділитися на інших сайтах

Это делает модуль фильтра. С автором связаться никак не получается. Помогите исправить, вот текст где прописано get_manufacter_items_names:

 

	public function getManufacterItemNames($categories_id) {
		
		$cache_data = $this->cache->get('get_manufacter_items_names.' . $categories_id . '.' . $this->config->get('config_language_id'));
		
		if (!$cache_data && !is_array($cache_data)) {
		
			$query = $this->db->query("SELECT DISTINCT mnf.manufacturer_id as value, mnf.name, mnf.image FROM `" . DB_PREFIX . "manufacturer` mnf LEFT JOIN `" . DB_PREFIX . "product` as prd ON (mnf.manufacturer_id = prd.manufacturer_id) WHERE prd.product_id IN (SELECT product_id FROM `" . DB_PREFIX . "product_to_category` WHERE category_id IN (" . $this->db->escape($categories_id) . "))");
			
			$manufacters = $query->rows;
			
			$this->cache->set('get_manufacter_items_names.' . $categories_id . '.' . $this->config->get('config_language_id'), $manufacters);
		}
		else {
			$manufacters = $cache_data;
		}
		
		return $manufacters;
	
	}
Надіслати
Поділитися на інших сайтах


оберните это как то так.

 

$cache = md5(http_build_query(array ($categories_id)));

$cache_data = $this->cache->get('get_manufacter_items_names.' . $cache . '.' . $this->config->get('config_language_id'));

 

И это

$this->cache->set('get_manufacter_items_names.' . $categories_id . '.' . $this->config->get('config_language_id'), $manufacters);

поменяйте на

this->cache->set('get_manufacter_items_names.' . $cache . '.' . $this->config->get('config_language_id'), $manufacters);

  • +1 2
Надіслати
Поділитися на інших сайтах


  • 2 years later...

оберните это как то так.

 

$cache = md5(http_build_query(array ($categories_id)));

$cache_data = $this->cache->get('get_manufacter_items_names.' . $cache . '.' . $this->config->get('config_language_id'));

 

И это

$this->cache->set('get_manufacter_items_names.' . $categories_id . '.' . $this->config->get('config_language_id'), $manufacters);

поменяйте на

this->cache->set('get_manufacter_items_names.' . $cache . '.' . $this->config->get('config_language_id'), $manufacters);

 

А можно поинтересоваться. В этом случаи кеш когда очиститься?

или файлы будут бесконечно "размножаться" ?

Надіслати
Поділитися на інших сайтах

А можно поинтересоваться. В этом случаи кеш когда очиститься?

или файлы будут бесконечно "размножаться" ?

 

Кэш удалится как только будет устаревшим, т.е. через час (за время жизни отвечает переменная expire в файле system/library/cache.php). В кэше файлы бесконечно не размножаются, никогда. Если они там есть, то они нужны. Если у Вас размножаются, то что-то пошло не так.

Надіслати
Поділитися на інших сайтах

Кэш удалится как только будет устаревшим, т.е. через час (за время жизни отвечает переменная expire в файле system/library/cache.php). В кэше файлы бесконечно не размножаются, никогда. Если они там есть, то они нужны. Если у Вас размножаются, то что-то пошло не так.

 

Спасибо. Я так понял нельзя установить время хранения кеша, для отдельной переменной, при помощи this->cache->set

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.