За последние 24 часа нас посетил 32651 программист и 1754 робота. Сейчас ищут 1033 программиста ...

Где ошибка??

Тема в разделе "PHP для новичков", создана пользователем Volonter, 22 авг 2009.

  1. Volonter

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

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Уважаемые, доброго дня всем.Подскажите, есть такая ошибка
    Warning: Division by zero in /home/inc/functions.inc.php on line 192

    строка 192 вот
    PHP:
    1. if($i%$break_location == 0 and $break_location)
    в чем тут может быть ошибка? в % ? сам как не пытался, разобраться не могу..
    в целом скрипт работает, но выдает ошибку...
    подскажите пожалуйста.
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    break_location имеет значение 0 (потому что именно на 0 делить нельзя, а не ноль на что-то) в одной из итераций.
    Проверяйте.
     
  3. Volonter

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

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Спасибо за участие, только проблема- код не мой, и в принципе он работает, не подскажете как избавиться от ошибки, просто для меня пока это сложно, я как бы учусь в процессе, но работать это должно уже сейчас))
    вот побольше вырезочка из кода на всякий случай
    PHP:
    1. function insertSmilies($insert_location, $break_location = FALSE)
    2. {
    3.     global $config_http_script_dir, $config_smilies;
    4.  
    5.     $smilies = explode(",", $config_smilies);
    6.     foreach($smilies as $smile)
    7.     {
    8.         $i++; $smile = trim($smile);
    9.  
    10.         $output .= "<a href="javascript:insertext(':$smile:','$insert_location')"><img border="0" src="$config_http_script_dir/images/emoticons/$smile.gif" /></a>";
    11.         if($i%$break_location == 0 and $break_location)
    12.         {
    13.             $output .= "<br />";
    14.         }else{ $output .= "&nbsp;"; }
    15.     }
    16.     return $output;
    17. }
    18.  
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Сделать в этом же условии проверку на то, не равна ли переменная break_location нулю
    PHP:
    1. <?
    2. if(!$break_location ...
     
  5. Volonter

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

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Если не трудно, можно ли поподробнее? мне реально пока это все сложновато, я начал учит пхп две недели назад))
     
  6. Volonter

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

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Разобрался!!! Спасибо огромное!!
     
  7. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    не успел сказать, что достаточно поменять местами условия:
    PHP:
    1. <? if ($break_location and $i%$break_location == 0)
     
  8. Volonter

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

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1.  
    2. <? if (!$break_location == 0 and $break_location ) ?>
    и так тож работает
    а насчет неуспел,так в таком деле даже поздно- вовремя))
    Спасибо!
     
  9. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    Volonter, ваше новое условие не является тем же, каким было, то есть логика программы таки нарушена. в случае с моим предложением — логика программы остается прежней
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Это наоборот проверка на то, что $break_location равно нулю.