sql >> Database >  >> RDS >> Mysql

PHP isset() met meerdere parameters

De parameter(s) naar isset() moet een variabele referentie zijn en geen uitdrukking (in uw geval een aaneenschakeling); maar u kunt meerdere voorwaarden als volgt groeperen:

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

Dit retourneert true alleen als alle argumenten voor isset() zijn ingesteld en bevatten geen null .

Merk op dat isset($var) en isset($var) == true hebben hetzelfde effect, dus de laatste is enigszins overbodig.

Bijwerken

Het tweede deel van je expressie gebruikt empty() zoals dit:

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

Dit is om dezelfde redenen als hierboven onjuist. In feite heb je empty() . niet nodig hier, omdat je tegen die tijd al zou hebben gecontroleerd of de variabelen zijn ingesteld, dus je kunt de volledige uitdrukking als volgt verkorten:

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

Of gebruik een equivalente uitdrukking:

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

Laatste gedachten

Overweeg het gebruik van filter functies om de ingangen te beheren:

$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

Trouwens, je kunt je filters aanpassen om te controleren op verschillende delen van de ingediende waarden.



  1. SQL Server-query om alle huidige databasenamen te vinden

  2. Oplossing voor het invoegen van intentiesloten in MySQL

  3. Fout bij het converteren van XML van een CLOB-kolom naar XMLType-kolom

  4. Is er een manier om uit een MySQL-tabel te kiezen waar een veld eindigt op een bepaald teken/nummer?