使用php if语句验证输入值是否介于0和100之间
我尝试了以下操作以确保输入值介于0和100之间,但它不起作用.
if (($_POST['rate']) >= '0' || =<'100') { $rate = $_POST['rate'] } esle { echo '<p>Please enter a value between 0 and 100</p>'; } 解决方法
问题1:字符串vs int
目前,您正在比较字符串,而不是数字.将$_POST变量转换为int并删除0和100附近的撇号以解决此问题: $rate = (int) $_POST['rate']; if ($rate >= 0 || =< 100) { /* ... */ } 问题2:缺少某些东西 但是,由于缺少第二次比较的$rate,这仍然不会产生预期的结果.将其更改为: $rate = (int) $_POST['rate']; if ($rate >= 0 || $rate =< 100) { /* ... */ } 问题3:或vs和 而我们仍然不在那里.目前,您使用的是 $rate = (int) $_POST['rate']; if ($rate >= 0 && $rate =< 100) { /* ... */ } 问题4:=< vs< = 还是不行.你的其中一个comparison operators是错误的方式. =<应该< =而不是: $rate = (int) $_POST['rate']; if ($rate >= 0 && $rate <= 100) { /* ... */ } 问题5:用户输入 $_POST保存来自用户的数据.绝不信任用户数据.例如,如果没有费率元素?在这种情况下,PHP将抛出类型为 $rate = isset($_POST['rate']) ? (int) $_POST['rate'] : -1; if ($rate >= 0 && $rate <= 100) { /* ... */ } 问题6:东西esle 正如Pedro Lobito所指出的,你还设法引入了一个拼写错误:esle应该是其他的. 问题7:分号 正如Gert所指出的,您的行$rate = $_POST [‘rate’]缺少;在末尾. 摘要 我并不是故意粗鲁,但看到你设法挤进这个简单的错误,我觉得你应该在这一点上参考一些基本的PHP教程而不是Stack Overflow. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |