加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用php if语句验证输入值是否介于0和100之间

发布时间:2020-12-13 21:56:53 所属栏目:PHP教程 来源:网络整理
导读:我尝试了以下操作以确保输入值介于0和100之间,但它不起作用. if (($_POST['rate']) = '0' || ='100') { $rate = $_POST['rate'] } esle { echo 'pPlease enter a value between 0 and 100/p'; } 解决方法 问题1:字符串vs int 目前,您正在比较字符串,而不是
我尝试了以下操作以确保输入值介于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和

而我们仍然不在那里.目前,您使用的是|| (or).您需要使用&& (and):

$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将抛出类型为E_NOTICE的错误(如果您没有将报告设置为E_ALL,您甚至可能看不到)并且一旦转换为int,则评估为0!因此,您的测试将通过,这可能不是您想要的.为防止这种情况,请使用isset()

$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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读