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

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


Recommended Posts

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

 

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

 

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

 

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

 

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

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


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

посмотри что находит в кеше функция $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
Надіслати
Поділитися на інших сайтах


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

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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