我做了一个表格,有人可以订购产品,(他们必须订购至少1件产品才能继续)当他们点击提交时,他们会被带到订单的确认页面和他们的个人详细信息打印或更改订单。
但是,如果有人想要,他们可以更改源代码中的脚本,并使用HTML代码或仅-10输入文本,图像或数字。所以他们可以订购-10的产品。
现在我想在确认页面上做一些保护,如果$ number不是数字,或者$ number包含其他内容,那么数字将会回显“”;所以它不会出现。
我正在运行这个数组,它会将订单放在确认页面表中:
$total_price = 0;
$count = 0;
foreach ($products as $key => $product){
$number = isset($_POST[$key])?$_POST[$key]:'';
if (!$number){
$count++;
echo "";
} else {
echo "<tr>";
echo "<td>";
echo $product;
echo "</td>";
echo "<td>";
echo htmlspecialchars($number);
echo "</td>";
echo "<td>";
$price = $prices[$count]* $number;
echo "€ ", number_format($price, 2);
echo "</td>";
echo "</tr>";
$total_price += $price;
$count++;
}
}
所以,只要!$ number(字段为空),它就会跳过产品。因此,只有在输入字段中包含某些内容的产品才会显示在我的订单上。但正如我告诉你的那样,你可以输入任何你想要的字母。 Caus只会检查字段是否为空。
非常感谢任何帮助,也许有人知道更好的保护方式,最好使用PHP,因为它无法在源代码中找到。
提前致谢!
答案 0 :(得分:1)
要检测字符串是否包含数字字符串,请使用is_numeric()
:
if(is_numeric($input)) {
echo 'Input is a number';
}
答案 1 :(得分:0)
你可以从is_numeric开始,然后当你确定它是一个数字时,测试它是否超过0 ......