試圖找出在PHP中如何將用戶過濾器以合理的方式過濾sanizite用戶輸入浮點數逗號/點問題
//Do sanization of user input
//$_POST['amount_ecb'] can be 77,7 or 77.7
$amount = filter_input(INPUT_POST, 'amount_ecb',
FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION);
如果公佈值是77.7它正確地設置量,但如果用戶將號碼與逗號而不是點(例如77,7)$amount
返回77
我希望它在兩種情況下都返回77.7。這是可能的解決與過濾器?
UPDATE 反饋(公佈答案)我仍然有同樣的問題後:
當使用
$_POST['amount_ecb'] = str_replace(',', '.', $_POST['amount_ecb']);
前
這一點,有人則返回
$ _POST對象
array (size=5)
'amount_ecb' => string '77.7' (length=4)
'from_ecb' => string 'GBP' (length=3)
'to_ecb' => string 'SEK' (length=3)
'submit' => string 'Calculate currency' (length=18)
'result_decimals' => string '4' (length=1)
$量
string '777' (length=3)
爲了安全起見,只需要更換。如果插入的用戶將被替換;休息你已經完成了; – itzmukeshy7
但是如何在這種情況下做替換呢? filter_input函數不直接使用$ _POST,這使得它不可能做類似$ amount = str_replace(',','。',$ _ POST ['amount_ecb']; – bestprogrammerintheworld
您是否使用codeigniter? – itzmukeshy7