sql >> Databáze >  >> RDS >> Mysql

PHP isset() s více parametry

Parametr(y) isset() musí to být odkaz na proměnnou a ne výraz (ve vašem případě zřetězení); ale můžete seskupit více podmínek dohromady takto:

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

To vrátí true pouze pokud všechny argumenty pro isset() jsou nastaveny a neobsahují null .

Všimněte si, že isset($var) a isset($var) == true mají stejný účinek, takže to druhé je poněkud nadbytečné.

Aktualizovat

Druhá část vašeho výrazu používá empty() takhle:

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

To je špatně ze stejných důvodů jako výše. Ve skutečnosti nepotřebujete empty() zde, protože v té době byste již zkontrolovali, zda jsou proměnné nastaveny, takže můžete celý výraz zkrátit takto:

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

Nebo použijte ekvivalentní výraz:

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

Poslední myšlenky

Měli byste zvážit použití filter funkce pro správu vstupů:

$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, můžete si přizpůsobit své filtry tak, aby kontrolovaly různé části odeslaných hodnot.



  1. Neaktivní relace v Oracle od JDBC

  2. Instalace Oracle 9i Developer Suite 2.0 na Windows

  3. SQL najít nejoblíbenější kategorii

  4. Začínáme s Oracle SQL Developer v systému Windows