[英]php is_numeric and strlen return true even when false
我正在使用提交表單來提交8位數字。 我正在嘗試使用is_numeric和strlen來確保“ 12345678”返回成功,但是“ adsf”和“ 123”也返回成功。 我似乎無法弄清楚要實現這一目標所缺少的東西。
<?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) == ...)
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.