+ Ответить в теме
Показано с 1 по 3 из 3
  1. #1
    ViArts Man Anstrem - просто великолепная личность Anstrem - просто великолепная личность Anstrem - просто великолепная личность Anstrem - просто великолепная личность Anstrem - просто великолепная личность Anstrem - просто великолепная личность Anstrem - просто великолепная личность Anstrem - просто великолепная личность
    Регистрация
    20.01.2011
    Адрес
    Москва
    Возраст
    40
    Сообщений
    419
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    64 Всего
    Загрузки
    9
    Закачек
    0
    Вес репутации
    22

    По умолчанию Ошибка в PHP

    Пару дней назад сайт начал валиться при входе в админку. Зависает где то на минуту, потом вроде отвисает, но при хождении по админке ситуация повторяется.

    Стал копаться увидел что виснем на вызове admin_graph.php с параметром 3.
    Это вывод в админке графика продаж.

    В логе php:
    PHP Fatal Error все время на 172 строке в admin_graph.php

    Посмотрел, там строка:
    imagettftext($img, 7, 0, 5, $height_graph - (int) ($i * $stepY) + 5, $margindColor, $font, $i);

    Закоментировал. Проблема исчезла. Посмотрел что выводится на графике продаж и вот что получил.



    Действительно в день до возникновения проблем было зарегистрировано аномальное количество продаж на сайте (оптовиков просто провели )
    И похоже при построении подписи на оси Y в алгоритме банальная ошибка возникает при определении масштаба графика... видимо пытается подписать на оси слишком много...
    Может посмотрит кто из ТП где это в коде...
    Последний раз редактировалось Anstrem; 25.10.2012 в 16:38.
    на ViArt v4.08 RE
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  2. #2
    Viarts Team Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима Aleksey репутация неоспорима
    Регистрация
    23.11.2010
    Сообщений
    483
    Сказали 'Спасибо' за это сообщение. :
    2 за это сообщение
    357 Всего
    Загрузки
    25
    Закачек
    0
    Вес репутации
    10

    По умолчанию Re: Ошибка в PHP

    Попробуйте из всего кода в строках 168-184:
    PHP код:
    if (($values_max $counts) >= $margin_in_y) {
        for (
    $i 1$i <= $values_max$i++) {
            
    ImageLine($img$margin_x 5$height_graph - (int) ($i $stepY), $margin_x 5$height_graph - (int) ($i $stepY), $margindColor);
            
    ImageLine($img$margin_x$height_graph - (int) ($i $stepY), $margin_x $width_graph$height_graph - (int) ($i $stepY), $lnColor);
            
    imagettftext($img705$height_graph - (int) ($i $stepY) + 5$margindColor$font$i);
        }
    } else {
        for (
    $i 1$i <= $values_max$i++) {
            if (
    $i $counts == 0) {
                
    ImageLine($img$margin_x 5$height_graph - (int) ($i $stepY), $margin_x 5$height_graph - (int) ($i $stepY), $margindColor);
                
    ImageLine($img$margin_x$height_graph - (int) ($i $stepY), $margin_x $width_graph$height_graph - (int) ($i $stepY), $lnColor);
                
    imagettftext($img705$height_graph - (int) ($i $stepY) + 5$margindColor$font$i);
            }
        }

    оставить только это:
    PHP код:
    for ($i 1$i <= $values_max$i++) {
        if (
    $i $counts == 0) {
            
    ImageLine($img$margin_x 5$height_graph - (int) ($i $stepY), $margin_x 5$height_graph - (int) ($i $stepY), $margindColor);
            
    ImageLine($img$margin_x$height_graph - (int) ($i $stepY), $margin_x $width_graph$height_graph - (int) ($i $stepY), $lnColor);
            
    imagettftext($img705$height_graph - (int) ($i $stepY) + 5$margindColor$font$i);
        }


    Проблема в том, что в первоначальном варианте первая половина кода отрисовывает 244 тыс. горизонтальных полос (что выражается в сплошном сером участке на графике), и пытается отобразить столько же значений по оси Y (что вызывает тормоза и ошибки).
    Последний раз редактировалось Aleksey; 28.10.2012 в 20:00.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  3. Сказали спасибо:

    chaymaker (13.04.2013) , Anstrem (29.10.2012)

  4. #3
    Пользователь chaymaker скоро придёт к известности
    Регистрация
    25.09.2010
    Адрес
    Москва
    Сообщений
    94
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    6 Всего
    Загрузки
    7
    Закачек
    0
    Вес репутации
    10

    По умолчанию Re: Ошибка в PHP

    спасибо Алексей, сделал как вы описали, админка не зависает уже.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо


 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Back to top