php is_numeric 和 strlen return true 即使 false
php is_numeric and strlen return true even when false
我正在使用提交表单提交一个 8 位数的号码。我正在尝试使用 is_numeric 和 strlen 来确保“12345678”return 成功,但是 "adsf" 和“123”也 return 成功。我似乎无法弄清楚我缺少什么来实现这一目标。
<?php
if (!empty($_POST['WorkOrder']) && isset($_POST['WorkOrder'])) {
if (!is_numeric($_POST['WorkOrder']) && (!strlen($_POST['WorkOrder']) == 8)) {
?>
<div class="alert alert-danger">
You cannot enter a blank or invalid work order number! You entered <?php echo "\"".$_POST['WorkOrder']."\""; ?>
</div>
<?php
} else {
$sql1 = "";
?>
<div class="alert alert-success">
<?php echo $_POST['WorkOrder']. " has been updated successfully!"; ?>
</div>
<?php
//mysql_query($sql1) or die(mysql_error());
} } ?>
您应该使用 OR 而不是 AND 并将 strlen 与 8 值进行比较
if (!is_numeric($_POST['WorkOrder']) || strlen($_POST['WorkOrder']) !== 8) {
您在函数前使用 !
,这也可以翻译为 is not
。
你实际问的是:Is this variable not numeric?
和Is this variable not of lenghth ...
。
您应该使用 if (is_numeric($var) && strlen($var) == ...)
祝你好运!
我正在使用提交表单提交一个 8 位数的号码。我正在尝试使用 is_numeric 和 strlen 来确保“12345678”return 成功,但是 "adsf" 和“123”也 return 成功。我似乎无法弄清楚我缺少什么来实现这一目标。
<?php
if (!empty($_POST['WorkOrder']) && isset($_POST['WorkOrder'])) {
if (!is_numeric($_POST['WorkOrder']) && (!strlen($_POST['WorkOrder']) == 8)) {
?>
<div class="alert alert-danger">
You cannot enter a blank or invalid work order number! You entered <?php echo "\"".$_POST['WorkOrder']."\""; ?>
</div>
<?php
} else {
$sql1 = "";
?>
<div class="alert alert-success">
<?php echo $_POST['WorkOrder']. " has been updated successfully!"; ?>
</div>
<?php
//mysql_query($sql1) or die(mysql_error());
} } ?>
您应该使用 OR 而不是 AND 并将 strlen 与 8 值进行比较
if (!is_numeric($_POST['WorkOrder']) || strlen($_POST['WorkOrder']) !== 8) {
您在函数前使用 !
,这也可以翻译为 is not
。
你实际问的是:Is this variable not numeric?
和Is this variable not of lenghth ...
。
您应该使用 if (is_numeric($var) && strlen($var) == ...)
祝你好运!