Есть самописный POS для аптек на PHP. И тут чтоб кассир не смог продавать больше чем количество препарата которая есть на складе делаю так
include('../connect.php');
$nl = $_POST['nall'] ;
$a = $_POST['invoice'];
$b = $_POST['product'];
$c = $_POST['qty'];
if($c > $nl) {
echo "<div align='center'><font color='red'
style='font:bold 22px 'Aleo';'>Внимание Вы не сможете расходовать больше чем остаток. Сейчас будете перенаправлены' </font> </div><br> ";
echo "<meta http-equiv=\"refresh\" content=\"3;url=" .
$_SERVER['HTTP_REFERER'] . "\">";
exit;
} ?>
Как видно по коду если продаваемое количество препарата (переменная $c) БОЛЬШЕ чем количества остатка на складе (переменная $nl) то вывести ошибку. Но если допустим количество препарата на складе 10 шт и кассир собирается продавать тоже 10 шт то всё равно выводит ошибку что нельзя расходовать больше чем остаток. Как правильно написать условие чтоб именно когда кассир собирается продавать больше а не ровно вывести ошибку? В самом начале сделал так и всё заработало
if($_POST['qty'] > $_POST['nall']) {
echo "<div align='center'><font color='red'
style='font:bold 22px 'Aleo';'>Внимание Вы не сможете
расходовать больше чем остаток. Сейчас будете перенаправлены'
";
echo "";
exit;
}
Данные с POST запроса, которые ожидаются, что будут числами - необходимо перевести к типу int
, т.к. полученные данные придут с типом string
Проблема в том что всегда надо сделать проверки параметров прежде чем использовать их.
Всегда надо следить за типами ваших данных, это можно сделать разными способами, один из них intval, хотя и можно просто умножить переменные на единицу $_POST['nall']*1
. И тип измениться.
include('../connect.php');
$nl = intval($_POST['nall']) ;
$a = $_POST['invoice'];
$b = $_POST['product'];
$c = intval($_POST['qty']);
if($c > $nl) {
echo "<div align='center'><font color='red'
style='font:bold 22px 'Aleo';'>Внимание Вы не сможете
расходовать больше чем остаток. Сейчас будете перенаправлены' </font>
</div><br> ";
echo "<meta http-equiv=\"refresh\" content=\"3;url=" .
$_SERVER['HTTP_REFERER'] . "\">";
exit;
} ?>
А про остольных переменных не могу сказать, я не знаю для чего они нужны вам и какие значения в них. intval делает явное преоброзование типа в int. Подробно можете посмотреть тут
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Сделал добавление видео на сайт, файлы загружаются в ту папку, которую я указалВ базу данных я заношу имя файла, размер, тип
Всем привет! Прошу помочь в поиске решения проблемы! Есть сервер WS 2012 R2 magento 19
Здравствуйте! Пишу не большой сайт на Laravel 54, на нем имеется аутентификация через oAuth 2