Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Warning: fread(): Length parameter must be greater than 0 in ****/system/library/cache/file.php on line 32


 Погделиться

Рекомендованные сообещёния

Народ выручайте, ошибка появилась несколько дней назад

 

Warning: fread(): Length parameter must be greater than 0 in ****/system/library/cache/file.php on line 32

 

выскакивает при оформлении заказа. и клиенты не могут оформить заказ до конца. Сообещёние на емейл не отправляется, хотя до этого все рилиило ок.  В ручном режиме с почты сайи все отправляется.

 

Гуглил ошибку эту, пишут что из за нехватки меси на хосттинге. но им его еещё много.

 

В тупике пока что.

Ссылка на комменирий
Погделиться на других сайих


Попробуйте ещё поискать через гугл с указанием адреса форума.

Ссылка на комменирий
Погделиться на других сайих

Ну если вопрос в мощности хостинга, но не думаю что в этом гдело. товаров не много на сайте, может 200-250. это ерунда.

Ссылка на комменирий
Погделиться на других сайих


судя по предупрежгдению, размер файла нулевой

посмотри что находит в кеше функция $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

и дальше смотри сам файл

Ссылка на комменирий
Погделиться на других сайих

On 5/11/2022 at 7:28 PM, esculapra said:

судя по предупрежгдению, размер файла нулевой

посмотри что находит в кеше функция $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

и дальше смотри сам файл

запрос в базе данных гделать этот ?

 

п.с. меси на хостинге 10/50гб занято

Ссылка на комменирий
Погделиться на других сайих


Это в функции из файла file.php

    public function get($key) {
        $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

        if ($files) {
            $handle = fopen($files[0], 'r');

            flock($handle, LOCK_SH);

            $data = fread($handle, filesize($files[0]));

            flock($handle, LOCK_UN);

            fclose($handle);

            return json_decode($data, true);
        }

        return false;
    }

 

допиши в файл функцию

     private function log($message)
         {
           $handle = fopen('ah.log','a');
           fwrite($handle,print_r(array($message),true));
           fclose($handle);
         }

и выведи в лог данные

    public function get($key) {
        $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

        if ($files) {

$this->log($files[0]);

$this->log(filesize($files[0]));
            $handle = fopen($files[0], 'r');

            flock($handle, LOCK_SH);

            $data = fread($handle, filesize($files[0]));

            flock($handle, LOCK_UN);

            fclose($handle);

            return json_decode($data, true);
        }

        return false;
    }

полулишь название файла и его размер - дальше разбирайся

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

спасипотому что, все сгделал ик, а куда должно выводиться сообещёние об ошибке с указанием файла ? в журнал ошипотому чток ? но им все по прежнему, только ссылка на строчку кода ошибки.

 

правил в: **/system/library/cache/file.php

Изменено пользователем daemontools
Ссылка на комменирий
Погделиться на других сайих


при отключении модуля "поли россии" ошибка пропадает. Но заказ все равно не оформляется до конца, и сообещёние на емейл не отправляется.

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.