Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP Isset () với nhiều tham số

(Các) tham số cho isset() phải là một tham chiếu biến và không phải là một biểu thức (trong trường hợp của bạn là một phép nối); nhưng bạn có thể nhóm nhiều điều kiện lại với nhau như sau:

if (isset($_POST['search_term'], $_POST['postcode'])) {
}

Điều này sẽ trả về true chỉ khi tất cả đối số cho isset() được đặt và không chứa null .

Lưu ý rằng isset($var)isset($var) == true có cùng tác dụng, vì vậy cái sau hơi thừa.

Cập nhật

Phần thứ hai của biểu thức của bạn sử dụng empty() như thế này:

empty ($_POST['search_term'] . $_POST['postcode']) == false

Điều này là sai vì những lý do tương tự như trên. Trên thực tế, bạn không cần empty() tại đây, vì lúc đó bạn đã kiểm tra xem các biến đã được đặt chưa, vì vậy bạn có thể viết tắt biểu thức hoàn chỉnh như sau:

isset($_POST['search_term'], $_POST['postcode']) && 
    $_POST['search_term'] && 
    $_POST['postcode']

Hoặc sử dụng một biểu thức tương đương:

!empty($_POST['search_term']) && !empty($_POST['postcode'])

Suy nghĩ cuối cùng

Bạn nên cân nhắc sử dụng filter chức năng quản lý đầu vào:

$data = filter_input_array(INPUT_POST, array(
    'search_term' => array(
        'filter' => FILTER_UNSAFE_RAW,
        'flags' => FILTER_NULL_ON_FAILURE,
    ),
    'postcode' => array(
        'filter' => FILTER_UNSAFE_RAW,
        'flags' => FILTER_NULL_ON_FAILURE,
    ),
));

if ($data === null || in_array(null, $data, true)) {
    // some fields are missing or their values didn't pass the filter
    die("You did something naughty");
}

// $data['search_term'] and $data['postcode'] contains the fields you want

Btw, bạn có thể tùy chỉnh bộ lọc của mình để kiểm tra các phần khác nhau của các giá trị đã gửi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng các ứng dụng khách MySQL

  2. Trong MySQL:Làm cách nào để chuyển tên bảng dưới dạng đối số thủ tục và / hoặc hàm được lưu trữ?

  3. Chèn giá trị hex vào MySql

  4. Phạm vi giới hạn của MySQL

  5. Cách giải quyết LỖI 1060:Tên cột trùng lặp bằng Chế độ xem -> Tạo Chế độ xem