Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP isset() z wieloma parametrami

Parametr(y) do isset() musi być odwołaniem do zmiennej, a nie wyrażeniem (w twoim przypadku konkatenacją); ale możesz zgrupować wiele warunków w ten sposób:

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

To zwróci true tylko jeśli wszystkie argumenty do isset() są ustawione i nie zawierają null .

Zauważ, że isset($var) i isset($var) == true mają ten sam efekt, więc ta ostatnia jest nieco zbędna.

Aktualizacja

Druga część wyrażenia używa empty() tak:

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

To jest złe z tych samych powodów, co powyżej. W rzeczywistości nie potrzebujesz empty() tutaj, ponieważ do tego czasu sprawdziłbyś już, czy zmienne są ustawione, więc możesz skrócić pełne wyrażenie w następujący sposób:

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

Lub używając równoważnego wyrażenia:

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

Ostateczne przemyślenia

Powinieneś rozważyć użycie filter funkcje do zarządzania wejściami:

$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

Przy okazji, możesz dostosować swoje filtry, aby sprawdzić różne części przesłanych wartości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego harmonogram zdarzeń mysql nie działa w bazie danych localhost?

  2. Parser SQL w PHP?

  3. Jak działa samodołączanie MYSQL?

  4. zmiana mysql innodb_large_prefix

  5. MySQL INSERT SELECT — Zduplikowane wiersze