Hướng dẫn how to validate number input in php? - làm thế nào để xác thực đầu vào số trong php?

Cách tốt nhất để kiểm tra xem đầu vào là số?

  • 1-
  • +111+
  • 5xf
  • 0xf

Những loại số đó không nên hợp lệ. Chỉ các số như: 123, 012 (12), số dương phải hợp lệ. Đây là mã hiện tại của MYE:

$num = (int) $val;
if (
    preg_match('/^\d+$/', $num)
    &&
    strval(intval($num)) == strval($num)
    )
{
    return true;
}
else
{
    return false;
}

Hướng dẫn how to validate number input in php? - làm thế nào để xác thực đầu vào số trong php?

John Conde

215K98 Huy hiệu vàng447 Huy hiệu bạc490 Huy hiệu Đồng98 gold badges447 silver badges490 bronze badges

hỏi ngày 10 tháng 7 năm 2012 lúc 17:15Jul 10, 2012 at 17:15

1

ctype_digit được xây dựng chính xác cho mục đích này.

Đã trả lời ngày 10 tháng 7 năm 2012 lúc 17:16Jul 10, 2012 at 17:16

2

tôi sử dụng

if(is_numeric($value) && $value > 0 && $value == round($value, 0)){

Để xác thực nếu một giá trị là số, dương và tích hợp

http://php.net/is_numeric

Tôi không thực sự thích ctype_digit vì nó không thể đọc được như "is_numeric" và thực sự có ít sai sót hơn khi bạn thực sự muốn xác nhận rằng một giá trị là số.

Đã trả lời ngày 10 tháng 7 năm 2012 lúc 17:18Jul 10, 2012 at 17:18

Mathieu Dumoulinmathieu DumoulinMathieu Dumoulin

Huy hiệu vàng 12K743 Huy hiệu bạc70 Huy hiệu đồng7 gold badges43 silver badges70 bronze badges

1

filter_var()

$options = array(
    'options' => array('min_range' => 0)
);

if (filter_var($int, FILTER_VALIDATE_INT, $options) !== FALSE) {
 // you're good
}

Đã trả lời ngày 10 tháng 7 năm 2012 lúc 17:19Jul 10, 2012 at 17:19

John Condejohn CondeJohn Conde

215K98 Huy hiệu vàng447 Huy hiệu bạc490 Huy hiệu Đồng98 gold badges447 silver badges490 bronze badges

1

hỏi ngày 10 tháng 7 năm 2012 lúc 17:15

j0k

ctype_digit được xây dựng chính xác cho mục đích này.28 gold badges77 silver badges86 bronze badges

Đã trả lời ngày 10 tháng 7 năm 2012 lúc 17:16Jul 10, 2012 at 17:17

tôi sử dụngrdlowrey

Để xác thực nếu một giá trị là số, dương và tích hợp9 gold badges76 silver badges98 bronze badges

Tôi không thực sự thích ctype_digit vì nó không thể đọc được như "is_numeric" và thực sự có ít sai sót hơn khi bạn thực sự muốn xác nhận rằng một giá trị là số.

<?PHP
$input = 4;
if(is_numeric($input)){  // return **TRUE** if it is numeric
    echo "The input is numeric";
}else{
    echo "The input is not numeric";
}
?>

Đã trả lời ngày 10 tháng 7 năm 2012 lúc 17:18Jan 3, 2017 at 13:02

Hướng dẫn how to validate number input in php? - làm thế nào để xác thực đầu vào số trong php?

Mathieu Dumoulinmathieu Dumoulin

if(preg_replace('/^(\-){0,1}[0-9]+(\.[0-9]+){0,1}/', '', $value) == ""){
  //if all made of numbers "-" or ".", then yes is number;
}

Huy hiệu vàng 12K743 Huy hiệu bạc70 Huy hiệu đồngMar 8, 2019 at 21:43

Hướng dẫn how to validate number input in php? - làm thế nào để xác thực đầu vào số trong php?

Đã trả lời ngày 10 tháng 7 năm 2012 lúc 17:19Kareem

John Condejohn Conde40 silver badges35 bronze badges

2

Hướng dẫn how to validate number input in php? - làm thế nào để xác thực đầu vào số trong php?

Trong bài viết này, chúng tôi sẽ xem xét cách thực hiện số hoặc số, xác thực của một trường biểu mẫu được điền bởi người dùng, để đảm bảo rằng dữ liệu được nhập, trên thực tế, là một giá trị số.

Điều này có thể là cần thiết cho một loạt các hình thức được điền trên web. Ví dụ trong số này là số thẻ tín dụng, mã zip, số nhà, số điện thoại, số tiền mặt, v.v ... Đây là tất cả các trường biểu mẫu mà chúng tôi chỉ muốn các số nhập vào trường biểu mẫu. Nếu bất kỳ ký tự nào trong chuỗi không phải là số, thì chúng tôi muốn nói với người dùng rằng chuỗi các ký tự mà họ nhập không hợp lệ. Đây là những gì được gọi là xác thực số.

Dưới đây là một ví dụ về trường biểu mẫu kiểm tra xác thực số. Chỉ các số có thể được nhập vào trường biểu mẫu, chỉ các giá trị số. Nếu các giá trị không phải là số được nhập, thì trường biểu mẫu bắt gặp điều này và nói với người dùng rằng anh ấy đã mắc lỗi.

Kết quả

Trên đây là một hình thức kiểm tra xác thực số. Trong biểu mẫu này, người dùng chỉ muốn nhập các số vào trường biểu mẫu. Nếu người dùng nhập ký tự không phải là ký tự, lỗi được ném và người dùng được yêu cầu nhập số vào trường.

PHP

Vậy làm thế nào để chúng tôi thực hiện xác thực số trong PHP trên trường biểu mẫu để đảm bảo chỉ nhập các số?

Câu trả lời là, chúng tôi sử dụng một hàm trong PHP có tên là hàm IS_NUMERIC.is_numeric function.

Hàm is_numeric được sử dụng để kiểm tra xem (các) ký tự được nhập. Nếu tất cả các ký tự là số, nó sẽ trả về một giá trị thực. Nếu tất cả các ký tự không phải là số, nó sẽ trả về giá trị sai, hoặc không đúng.is_numeric function is used to check whether the character(s) which are entered. If all the characters are numeric, it returns a true value. If all the characters are not numeric, it returns a false, or not true, value.

Bây giờ biết làm thế nào chức năng này hoạt động, chúng ta có thể thực hiện nó dựa trên một câu lệnh if-else. Nếu đúng, chúng ta có thể làm cho nó thực thi một câu lệnh. Nếu sai, chúng ta có thể làm cho nó thực hiện một câu lệnh khác, chẳng hạn như biểu mẫu trên.

Mã HTML

Mã HTML này tạo ra trường văn bản trong đó người dùng nhập các ký tự.

Điều quan trọng chúng ta cần biết từ mã HTML này là thuộc tính "tên" của trường văn bản, trong trường hợp này là số. Chúng ta sẽ cần biết điều này cho mã PHP, bởi vì thuộc tính "tên" là những gì chúng ta sử dụng trong PHP của trường HTML Form để kiểm tra các ký tự mà người dùng nhập vào trường này."name" attribute of the text field, which in this case is number. We will need to know this for the PHP code, because the "name" attribute is what we use in PHP of the HTML form field to test the characters that the user enters into this field.

Mã PHP

Làm thế nào tôi có thể xác nhận trong PHP?

PHP xác nhận dữ liệu ở phía máy chủ, được gửi bởi biểu mẫu HTML. Bạn cần xác thực một vài điều: Chuỗi trống. Xác thực chuỗi ...
$ name = $ _post ["name"] ;.
if (! preg_match ("/^[a-za-z]*$/", $ name)) {.
$ Errmsg = "Chỉ cho phép bảng chữ cái và khoảng trắng." ;.
echo $ errmsg ;.
} khác {.
echo $ name ;.

Có xác thực số nguyên trong PHP không?

Bộ lọc Filter_Validate_int được sử dụng để xác nhận giá trị dưới dạng số nguyên.Filter_Validate_int cũng cho phép chúng tôi chỉ định một phạm vi cho biến số nguyên.Các tùy chọn và cờ có thể có: MIN_RANGE - Chỉ định giá trị số nguyên tối thiểu.. FILTER_VALIDATE_INT also allows us to specify a range for the integer variable. Possible options and flags: min_range - specifies the minimum integer value.

Làm thế nào để tôi chỉ cho phép các số trong PHP?

Trong PHP, đối với xác thực "chỉ số", bạn có thể sử dụng các cách tiếp cận khác nhau:..
is_int hoặc is_integer ..
is_numeric..
Biểu thức thông thường ..
ctype_digit..
filter_var..

Có thể xác nhận được thực hiện trong PHP không?

Xác thực biểu mẫu là một quá trình cần thiết trước khi dữ liệu được nhập vào biểu mẫu được gửi đến cơ sở dữ liệu.Điều này được thực hiện để tránh các lỗi không cần thiết.Trong xác thực biểu mẫu PHP, tập lệnh kiểm tra dữ liệu trong các trường tương ứng dựa trên các quy tắc do nhà phát triển đặt và trả về lỗi nếu nó không đáp ứng các yêu cầu.. This is done to avoid unnecessary errors. In PHP Form validation, the script checks for data in respective fields based on the rules set by the developer, and returns an error if it does not meet the requirements.