За последние 24 часа нас посетили 69476 программистов и 5456 роботов. Сейчас ищут 1956 программистов ...

Как отловить ошибку fwrite()

Тема в разделе "PHP для новичков", создана пользователем oslayer, 15 ноя 2018.

  1. oslayer

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

    С нами с:
    23 окт 2012
    Сообщения:
    18
    Симпатии:
    0
    В php абсолютные ноль... :( Помогите пожалуйста разобратся

    Вываливается ошибка
    PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/admin/web/made-in-altai.ru/public_html/system/library/log.php on line 31

    Как её отловить? как понять что ему надо? Файлов и каких, если не может записать то какие конкретно файлы не может записать

    Исполняет вот этот скрипт
    PHP:
    1. <?php
    2. /**
    3. * @package        OpenCart
    4. * @author        Daniel Kerr
    5. * @copyright    Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/)
    6. * @license        https://opensource.org/licenses/GPL-3.0
    7. * @link        https://www.opencart.com
    8. */
    9.  
    10. /**
    11. * Log class
    12. */
    13. class Log {
    14.     private $handle;
    15.    
    16.     /**
    17.      * Constructor
    18.      *
    19.      * @param    string    $filename
    20.      */
    21.     public function __construct($filename) {
    22.         $this->handle = fopen(DIR_LOGS . $filename, 'a');
    23.     }
    24.    
    25.     /**
    26.      *
    27.      *
    28.      * @param    string    $message
    29.      */
    30.     public function write($message) {
    31.         fwrite($this->handle, date('Y-m-d G:i:s') . ' - ' . print_r($message, true) . "\n");
    32.     }
    33.    
    34.     /**
    35.      *
    36.      *
    37.      */
    38.     public function __destruct() {
    39.         fclose($this->handle);
    40.     }
    41. }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.874
    Симпатии:
    753
    Адрес:
    Татарстан
    перевести сообщение - религия не позволяет?
    и уж тем-более почитать в мануалах что это за функция и какие аргументы ожидает....
    по факту - на момент обращения к данной функции у вас должен уже создать ресурс на основе открытого файла, и писать в него
    но скорее всего не отработал корректно - $this->handle = fopen(DIR_LOGS . $filename, 'a'); по какой либо причине..например пути неверные, имя файла не указано, прав доступа в папку нет.....
     
  3. oslayer

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

    С нами с:
    23 окт 2012
    Сообщения:
    18
    Симпатии:
    0
    В моем первом посте
    В вашем ответе
    Вопрос как раз и состоит в том что бы не гадать на кофейной гуще а отловить конкретно что ему надо.