[Помощь] Лог файлы хавают больше 2гиг на хостинге! Это нормально?

Тема в разделе "WebAsyst", создана пользователем Grunuk, 24 ноя 2011.

Модераторы: mdss
  1. Grunuk

    Grunuk

    Регистр.:
    19 янв 2008
    Сообщения:
    187
    Симпатии:
    6
    Ребята, помогите решить такую проблему:
    после установки чудо-поиска по характеристикам в магазине и оптовые цены, постоянно создаются такие файлы:
    sc-error_2011-11-21.log
    и так на каждый день!
    вот такие три ошибки в лог файлах:
    Первая:
    2011-11-21 00:00. array_merge(:( Argument #2 is not an array File: /published/SC/html/scripts/core_functions/product_functions.php Line: 844 Error #: 2
    код с 834 по 845:
    PHP:
        if(isset($callBackParam['extraParametrsTemplate'])){
            
    $_sqls _prepareSearchExtraParameters($callBackParam['extraParametrsTemplate']);
            if(
    count($_sqls['where'])){
                
    $left_join implode(' '$_sqls['join']);
                
    $where_clause trim(str_replace('WHERE'''$where_clause));
                
    $where_clause 'WHERE '.($where_clause?'('.$where_clause.') AND ':'').'('.implode(') AND (',$_sqls['where']).')';
                
    $group_by ' GROUP BY p.productID';
            }
            
    $_sqlParams array_merge($_sqlParams,$_sqls['params']);
        }
    вторая ошибка:
    2011-11-21 00:00. Division by zero File: /published/SC/html/scripts/core_functions/product_functions.php Line: 882 Error #: 2
    код с 877 по 891:
    PHP:
            // you save (value)
            
    $_Product['SavePrice'] = show_price($_Product['list_price']-$_Product['Price']);
            
    $_Product['SavePriceInGroup'] = show_price($_Product['Price_wo_group']-$_Product['Price']);
            
    // you save (%)
            
    if($_Product['list_price'])$_Product['SavePricePercent'] = ceil(((($_Product['list_price']-$_Product['Price'])/$_Product['list_price'])*100));
            
    $_Product['SavePricePercentInGroup'] = ceil(((($_Product['Price_wo_group']-$_Product['Price'])/$_Product['Price_wo_group'])*100));
            
    $_Product['PriceWithOutUnit'] = show_priceWithOutUnit$_Product['Price'] );
            if ( ((float)
    $_Product['shipping_freight']) > )
            
    $_Product['shipping_freightUC'] = show_price$_Product['shipping_freight'] );
            
    $ProductsIDs[$_Product['productID']] = $Counter;
            
    $_Product['vkontakte_update_timestamp']= ($_Product['vkontakte_update_timestamp']>0)?Time::standartTime$_Product['vkontakte_update_timestamp'] ):'';
            
    $Products[] = $_Product;
            
    $Counter++;
        }
    третья ошибка:
    2011-11-21 00:00. Division by zero File: /published/SC/html/scripts/modules/products/scripts/product_detailed.php Line: 121 Error #: 2
    код с 117 строки по 124:
    PHP:
                if($a[$column_price_name] > 0$a['Price'] = $a[$column_price_name];
                
    $a['PriceWithUnitSwitch'] = show_price($a['Price'], ($_SESSION['current_currency'] == 6:9) );
                
    $a["SavePriceInGroup"]        = show_price($a["Price_wo_group"]-$a["Price"]);
                
    $a["SavePricePercentInGroup"] = ceil(((($a["Price_wo_group"]-$a["Price"])/$a["Price_wo_group"])*100));
                
    $a["PriceWithUnit"] = show_price$a["Price"] );
                
    $a["list_priceWithUnit"] = show_price$a["list_price"] );
    подскажите что поправить нужно
     
  2. win32

    win32

    Заблокирован
    Регистр.:
    17 июн 2008
    Сообщения:
    328
    Симпатии:
    192
    ошибка появляется если у вас есть поврежденные записи базы данных. Конкретные направления таковы: sqls () не возвращает соответствующий объект файла. params ссылается на несуществующий файл записи.
     
  3. saracen_d

    saracen_d Постоялец

    Регистр.:
    22 сен 2010
    Сообщения:
    123
    Симпатии:
    11
    если причину не устраните, можно пока cron поставить для автоматического удаления лог файлов, например каждые 15 минут.
     
  4. Grunuk

    Grunuk

    Регистр.:
    19 янв 2008
    Сообщения:
    187
    Симпатии:
    6
    ок, как можно устранить эту ошибку? как найти тот несуществующий файл записи? или же что поменять в коде?
     
  5. wanderer.ua

    wanderer.ua Писатель

    Регистр.:
    25 май 2011
    Сообщения:
    8
    Симпатии:
    0
    Ну дк все просто:

    1. $_sqlParams = array_merge($_sqlParams,$_sqls['params']);
    Написано же, что 2-рой аргумет($_sqls['params']) не массив, а только элемент, так и есть можно поробовать привести его к массиву и сделать так : $_sqlParams = array_merge($_sqlParams,(array)$_sqls['params']);

    2. Деление на ноль, н не проблема, сделайте проверку перед делением в этом($_Product['Price_wo_group']) типа

    3. То же что и 2 пункт, только проверяйте $a["Price_wo_group"]