Это означает, что debamt
был пуст. Пустое значение не является целочисленным.
Знаете, вы также можете использовать логический оператор ||
, что означает ИЛИ. Потому что этот ряд:
if (empty ($debamt) && empty ($debdes) && empty ($cramt) && empty ($cramt)) die ("$cberror");
... означает, что если хотя бы одно из этих значений НЕ пусто, предложение if не сработает. Что вы, вероятно, хотите:
if (empty ($debamt) || empty ($debdes) || empty ($cramt) || empty ($cramt)) die ("$cberror");
Таким образом, если одно из полей пусто, сценарий не будет продолжен. Это также делает бесполезными многие ваши последующие проверки.
Из-за вашего текущего кода вполне возможно, что $debamt
пройдет как пустой. Я бы посоветовал вам продумать свои предложения if и посмотреть, что действительно необходимо.