sql >> Database teknologi >  >> RDS >> Mysql

PHP isset() med flere parametre

Parametrene til isset() skal være en variabel reference og ikke et udtryk (i dit tilfælde en sammenkædning); men du kan gruppere flere betingelser sammen sådan her:

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

Dette vil returnere true kun hvis alle argumenter til isset() er indstillet og indeholder ikke null .

Bemærk at isset($var) og isset($var) == true har samme effekt, så sidstnævnte er noget overflødig.

Opdater

Den anden del af dit udtryk bruger empty() sådan her:

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

Dette er forkert af samme årsager som ovenfor. Faktisk behøver du ikke empty() her, for på det tidspunkt ville du allerede have tjekket, om variablerne er sat, så du kan genveje hele udtrykket sådan:

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

Eller ved at bruge et tilsvarende udtryk:

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

Sidste tanker

Du bør overveje at bruge filter funktioner til at styre inputs:

$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, du kan tilpasse dine filtre til at tjekke for forskellige dele af de indsendte værdier.



  1. Læs og importer XLSX (Excel)-fil i Oracle

  2. underligt - mysqls sql::SQLException fanges ikke af sin type, men fanges som std::exception og sendes tilbage med succes

  3. Hvordan udskriver jeg alle forespørgsler i Magento?

  4. Hamming distance på binære strenge i SQL