Divide by zero php

Division by zero

Доброго времени суток. Выдает ошибку Division by zero, насколько я понял связанна она с делением на ноль. Вод код с со строкой на которую ругается (в данном случаи 13), на ноль вроде ничего не делится.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
function page($k_page = 1) { $page = 1; if (isset($_GET['page'])) { if ($_GET['page'] == 'end') $page = intval($k_page); elseif (is_numeric($_GET['page'])) $page = intval($_GET['page']); } if ($page  1) $page = 1; if ($page > $k_page) $page = $k_page; return $page; } function k_page($k_post = 0, $k_p_str = 10) { if ($k_post != 0) { $v_pages = ceil($k_post/$k_p_str); return $v_pages; } else { return 1; } }

Самое интересное ошибка пропадает при обновление страницы и возвращается при очистке кеша, что за чудеса?)

Division by zero
Доброго времени суток, программа должна выводить случайное число из диапазона к примеру от 0 до.

Division by zero
Проблема в функции, не могу понять где именно является деление на 0, чтобы исправить проблему. Код.

division be zero
Здравствуйте! Такая проблема: при выполнении вот этой процедуры procedure Rat.reduce(var.

Эксперт HTML/CSSЭксперт PHP

З.Ы. Но это костыль, надо смотреть и разбираться, почему передается ноль вместо нужного количества — а для этого надо видеть код вызова функции

Добавлено через 1 минуту
KOPOJI,

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
 include 'system/mysql.php'; include 'system/sys_func.php'; $title = 'Каталог сайтов'; if (!isset($_SESSION['user_id'])) { if (mysql_real_escape_string($_GET['login']) && mysql_real_escape_string($_GET['pass'])) { $login = mysql_real_escape_string($_GET['login']); $pass = mysql_real_escape_string($_GET['pass']); if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1"), 0)) { $user = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1")); setcookie('login', $login, time()+60*60*24*14); setcookie('pass', in_md5($pass), time()+60*60*24*14); $_SESSION['user_id'] = $user['id']; header('Location: /pages/personal/'); exit; } else { include 'system/head.php'; echo ' 
Повторить попытку входа На главную'; include 'system/foot.php'; exit; } } } if (isset($_GET['logout'])) { if (isset($_SESSION['user_id'])) { unset($_SESSION['user_id']); setcookie('login'); setcookie('pass'); mysql_query("UPDATE `users` SET `time_last` = ". (time()-600) ." WHERE `id` = '". $user['id'] ."' LIMIT 1"); header('Location: /'); exit; } } include_once 'system/head.php'; echo '
'; $c_d = mysql_result(mysql_query("SELECT COUNT(*) FROM `site` WHERE `block` = '0'"), 0); if (isset($user)) $p_page = $user['p_page']; else $p_page = '10'; $k_page = k_page($c_d, $p_page); $page = page($k_page); $start = $p_page*$page-$p_page; $query = mysql_query("SELECT * FROM `site` WHERE `block` = '0' ORDER BY `out1` DESC LIMIT $start, ". $p_page); while ($post = mysql_fetch_assoc($query)) { echo '
; echo '
'; if (is_file(H.'files/image-'.$post['photos'] .'.gif')){ echo 'Divide by zero php'; } else { echo ''; } echo '
'; echo '. $post['id'] .'">'. output($post['name']) .' . $post['out1'] .' / из: '. $post['in1'] .' '. output($post['opis']) .' . $post['id'] .'">'. output($post['url']) .'
'
; }if ($k_page > 1) str('?', $k_page, $page); echo' » Статистика'; $n_n = mysql_result(mysql_query("SELECT COUNT(*) FROM `news` WHERE `time` > '". (time()-86400) ."'"), 0); if ($n_n == 0) { $n_n = NULL; } else { $n_n = '. $n_n .''; } echo '» Новости '.$n_n.' '; include 'system/foot.php'; ?>

Источник

DivisionByZeroError

DivisionByZeroError is thrown when an attempt is made to divide a number by zero.

Class synopsis

User Contributed Notes 4 notes

Use of arithmetic operator / does not throw an exception in php 7, while it does in php 8.

try echo intdiv ( 2 , 0 );
> catch ( DivisionByZeroError $e ) echo «Caught DivisionByZeroError!\n» ;
>

try echo ( 2 / 0 );
> catch ( DivisionByZeroError $e ) echo «Caught DivisionByZeroError!\n» ;
>
?>

# php 7
$ php test.php
caught division by zero for intdiv()
PHP Warning: Division by zero in test.php on line 10
PHP Stack trace:
PHP 1. () test.php:0

Warning: Division by zero in test.php on line 10

Call Stack:
0.0740 417272 1. () test.php:0

caught division by zero for intdiv()
caught division by zero for /

Note that on division by zero 1/0 and module by zero 1%0 an E_WARNING is triggered first (probably for backward compatibility with PHP5), then the DivisionByZeroError exception is thrown next.

The result is, for example, that if you set the maximum level of error detection with error_level(-1) and you also map errors to exception, say ErrorException, then on division by zero only this latter exception is thrown reporting «Division by zero». The result is that a code like this:

// Set a safe environment:
error_reporting (- 1 );

// Maps errors to ErrorException.
function my_error_handler ( $errno , $message )

try echo 1 / 0 ;
>
catch( ErrorException $e ) echo «got $e » ;
>
?>

allows to detect such error in the same way under PHP5 and PHP7, although the DivisionByZeroError exception is masked off by ErrorException.

This error is thrown only for integer division — this is when using «intdiv» function or «%» operator. In all cases you will get an E_WARNING when dividing by zero.

class MathOperation extends Error
protected $n = 10 ;

// Try to get the Division by Zero error object and display as Exception
public function doArithmeticOperation (): string
try $value = $this -> n % 0 ;
> catch ( DivisionByZeroError $e ) return $e -> getMessage ();
>
>
>

$mathOperationObj = new MathOperation ();
echo $mathOperationObj -> doArithmeticOperation ();

  • Predefined Exceptions
    • Exception
    • ErrorException
    • Error
    • ArgumentCountError
    • ArithmeticError
    • AssertionError
    • DivisionByZeroError
    • CompileError
    • ParseError
    • TypeError
    • ValueError
    • UnhandledMatchError
    • FiberError

    Источник

    Division Operator Throws Exception When Dividing Number by Zero in PHP 8.0

    Division Operator Throws Exception When Dividing Number by Zero in PHP 8.0

    The division operator ( / ) is an arithmetic operator that allows to divide one number by another. This operator returns a floating-point number, unless both operands are integers. In this case, an integer is returned.

    In all PHP 7 versions, the division operator has inconsistent behavior when dividing a number by zero. The modulo operator ( % ) throws a DivisionByZeroError when modulo by zero is performed:

    Fatal error: Uncaught DivisionByZeroError: Modulo by zero in main.php:3

    However, the division operator emits a warning and returns +INF , -INF or NAN .

    In PHP 7 example will output:

    Warning: Division by zero in main.php on line 3 INF

    Since PHP 8.0, the division operator throws an exception when dividing a number by zero.

    If we run this code snippet in PHP 8.0 or newer versions, we will get a DivisionByZeroError :

    Fatal error: Uncaught DivisionByZeroError: Division by zero in main.php:3

    New mixed Type in PHP 8.0

    PHP supports type declarations that can be used for parameters, return values, and properties. However.

    Источник

    Division by zero

    Доброго времени суток. Выдает ошибку Division by zero, насколько я понял связанна она с делением на ноль. Вод код с со строкой на которую ругается (в данном случаи 13), на ноль вроде ничего не делится.

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
    function page($k_page = 1) { $page = 1; if (isset($_GET['page'])) { if ($_GET['page'] == 'end') $page = intval($k_page); elseif (is_numeric($_GET['page'])) $page = intval($_GET['page']); } if ($page  1) $page = 1; if ($page > $k_page) $page = $k_page; return $page; } function k_page($k_post = 0, $k_p_str = 10) { if ($k_post != 0) { $v_pages = ceil($k_post/$k_p_str); return $v_pages; } else { return 1; } }

    Самое интересное ошибка пропадает при обновление страницы и возвращается при очистке кеша, что за чудеса?)

    Division by zero
    Доброго времени суток, программа должна выводить случайное число из диапазона к примеру от 0 до.

    Division by zero
    Проблема в функции, не могу понять где именно является деление на 0, чтобы исправить проблему. Код.

    division be zero
    Здравствуйте! Такая проблема: при выполнении вот этой процедуры procedure Rat.reduce(var.

    Эксперт HTML/CSSЭксперт PHP

    З.Ы. Но это костыль, надо смотреть и разбираться, почему передается ноль вместо нужного количества — а для этого надо видеть код вызова функции

    Добавлено через 1 минуту
    KOPOJI,

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
     include 'system/mysql.php'; include 'system/sys_func.php'; $title = 'Каталог сайтов'; if (!isset($_SESSION['user_id'])) { if (mysql_real_escape_string($_GET['login']) && mysql_real_escape_string($_GET['pass'])) { $login = mysql_real_escape_string($_GET['login']); $pass = mysql_real_escape_string($_GET['pass']); if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1"), 0)) { $user = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1")); setcookie('login', $login, time()+60*60*24*14); setcookie('pass', in_md5($pass), time()+60*60*24*14); $_SESSION['user_id'] = $user['id']; header('Location: /pages/personal/'); exit; } else { include 'system/head.php'; echo ' 
    Повторить попытку входа На главную'; include 'system/foot.php'; exit; } } } if (isset($_GET['logout'])) { if (isset($_SESSION['user_id'])) { unset($_SESSION['user_id']); setcookie('login'); setcookie('pass'); mysql_query("UPDATE `users` SET `time_last` = ". (time()-600) ." WHERE `id` = '". $user['id'] ."' LIMIT 1"); header('Location: /'); exit; } } include_once 'system/head.php'; echo '
    '; $c_d = mysql_result(mysql_query("SELECT COUNT(*) FROM `site` WHERE `block` = '0'"), 0); if (isset($user)) $p_page = $user['p_page']; else $p_page = '10'; $k_page = k_page($c_d, $p_page); $page = page($k_page); $start = $p_page*$page-$p_page; $query = mysql_query("SELECT * FROM `site` WHERE `block` = '0' ORDER BY `out1` DESC LIMIT $start, ". $p_page); while ($post = mysql_fetch_assoc($query)) { echo '
    ; echo '
    '; if (is_file(H.'files/image-'.$post['photos'] .'.gif')){ echo 'Divide by zero php'; } else { echo ''; } echo '
    '; echo '. $post['id'] .'">'. output($post['name']) .' . $post['out1'] .' / из: '. $post['in1'] .' '. output($post['opis']) .' . $post['id'] .'">'. output($post['url']) .'
    '
    ; }if ($k_page > 1) str('?', $k_page, $page); echo' » Статистика'; $n_n = mysql_result(mysql_query("SELECT COUNT(*) FROM `news` WHERE `time` > '". (time()-86400) ."'"), 0); if ($n_n == 0) { $n_n = NULL; } else { $n_n = '. $n_n .''; } echo '» Новости '.$n_n.' '; include 'system/foot.php'; ?>

    Источник

    Читайте также:  Notepad Website
Оцените статью