<input name="dollar"...
<input name="cent"...
<?PHP
if ( !is_numeric($_POST['dollar'])) { return; }
if ( !is_numeric($_POST['cent'])) { return; }
$total = $_POST['dollar'].".".$_POST['cent'];
我有一个交易页面,价值包含美元和&amp;分
我所做的是先检查号码并合并美元和分在一起。
它工作正常,但昨晚我注意到一些交易价值不正确
离。
用户输入203.06
但我的日志显示为2030.6
可能是黑客操纵美元和美元。分如2030.6以上
答案 0 :(得分:0)
允许用户输入限制值+使用money_format功能正确打印结果。
<input name="dollar"...
<input name="cent"...
<?php
//Dollar is an integer above zero
$dollar = max(0, intval($_POST['dollar']));
//Cent is an integer between 0 and 99
$cent = min(99, max(0, intval($_POST['cent'])));
//Version to place into logs
$total = $dollar.".".$cent;
// Added from another answer to keep everything together
//Set the local to parse monetary values correctly
setlocale(LC_MONETARY,"en_US");
//Get correct monetary value with 2 decimal place and **$** sign
//Version to print
$total = money_format("%.2n", $total);
答案 1 :(得分:0)
您可以使用名为 money_format()
的功能。在这种情况下,解决方案将是:
main
甚至更好:
$total = money_format($_POST['dollar'].".".$_POST['cent']);
希望有所帮助。 祝你好运!