簡體   English   中英

如何在PHP中驗證整數

[英]How to validate integer in php

**我正在使用php創建表單應用程序。 此代碼無法正常工作。 我想顯示一個錯誤的Student ID is required當它為空時Student ID is required的。 並且該值只能包含4位數字。 不能輸入字符串值和特殊字符。 以上所有內容均應經過驗證。 如何解決這個問題呢。 誰能幫我。 謝謝... !!! **

<!DOCTYPE html>
    <html>
        <head>
    <title> Enter Details </title>
        </head>
    <body>


<?php
    $id = "";
    $idErr = ""; 

if ($_SERVER["REQUEST_METHOD"] == "POST"){
        if (empty($id)){
            $idErr = "Student ID is required";
        }elseif(preg_match('/^\d+$/',$_GET['id'])){
            $idErr = "Only numbers allowed";
        }elseif(strlen($id) != 4) {
            $idErr = "Please enter  4 numbers";
        }
    }

    ?>

<form action = <?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?> method = "post">
    Student ID: <input placeholder="Student ID" type = "text" name= "id" value = ""/> 
    <span class="error">* <?php echo $idErr;?></span></br></br>
        <input type = "submit" name = "submit" value = "Register"/> 
</form>

</body>
</html>

您定義一個空變量,如果帖子提交,則檢查它是否為空。 這將始終為真,因為此變量具有一個空字符串作為值。 您應該嘗試使用$_POST 您還應該將$_GET['id']更改為$_POST['id']

<?php

$idErr = ""; 

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $id = $_POST['id'];

    if (empty($id)){
         $idErr = "Student ID is required";
    } elseif(preg_match('/^\d+$/',$_POST['id'])) {
         $idErr = "Only numbers allowed";
    } elseif(strlen($id) != 4) {
         $idErr = "Please enter  4 numbers";
    }
}

?>

如果您嘗試此操作,則應該可以獲得不同的結果。

    <?php
        $id = "";
        $idErr = ""; 
    if ($_SERVER["REQUEST_METHOD"] == "POST"){
            $idVal = $_POST['id'];
            if (empty($idVal)){
                $idErr = "Student ID is required";
            }elseif(!is_numeric($idVal)){
                $idErr = "Only numbers allowed";
            }elseif(strlen($idVal) != 4) {
                $idErr = "Please enter  4 numbers";
            }
        }
    ?>


//it check like below
   empty->number->exact 4 digit-> success.....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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