Функции Язык программирования PHP

gmp_div_qr

(PHP 4 >= 4.0.4)

gmp_div_qr - делит числа и получает частное и остаток.

Описание

array gmp_div_qr (resource n, resource d [, int round])

Функция делит n на d и возвращает массив с первым элементом [n/d] (целочисленным результатом деления) и вторым (n - [n/d] * d) (остатком от деления).

См. в функции gmp_div_q() описание аргумента round.

Пример 1. Деление GMP-чисел
<?php $a = gmp_init ("0x41682179fbf5"); $res = gmp_div_qr ($a, "0xDEFE75"); 
printf("Result is: q - %s, r - %s", gmp_strval ($res[0]), gmp_strval ($res[1])); 
?>

См. также gmp_div_q(), gmp_div_r().


Назад Оглавление Вперёд
gmp_div_q Вверх gmp_div_r

Инъекция SQL

Статическая часть запроса может комбинироваться с другим оператором SELECT, который выявит все пароли:

' union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', 
'0' from usertable; --

Если этот запрос (играя с ' и --) присоединить к одной из переменных, используемых в $query, запрос чудовищно изменится.

SQL UPDATEs также являются субъектами атаки на ваши БД. Есть угроза их расчленения и присоединения к ним совершенно нового запроса. Взломщик может поработать с SET. В этом случае нужно обладать некоторой схемой информации для успешного манипулирования запросом. Это можно сделать, проверив имена переменных формы, или просто выполнив грубое форсирование. Есть не так уж много соглашений по именованию полей для хранения паролей и имён пользователей.
Пример 4-8. От восстановления значения пароля ...
до получения дополнительных привилегий (любой сервер БД)
$query 
= "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";