簡體   English   中英

php is_numeric和strlen即使為false也返回true

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM