Allora, siccome non mi piace passare per pazzo nonostante le mie affermazioni, ho rifatte alcune prove di pratiche che normalmente uso nel lavoro quotidiano ed ho scoperto che usando il PHP c'è effettivamente differenza tra usare o meno le parentesi quadre o meno.
Non so se dipenda da come vengano passati i dati dal protocollo http, ho studiato un po' le rfc ma sono troppo astratte e per capire ci vorrebbe troppo tempo.
così ho realizzata questa provetta qui sotto e i risultati sono interessanti.
Ecco l'esempio http://stilisticamente.biz/test/prov...adiobutton.php
Questo il semplice codice:
Codice PHP:
<?php
if (filter_has_var(INPUT_POST, 'invia') && filter_input(INPUT_POST, 'invia') == 'proviamo') {
$filtro1 = array(
'prova' => array (
'name' => 'prova',
'filter' => FILTER_SANITIZE_STRING,
'flags' => FILTER_REQUIRE_ARRAY)
);
$filtro2 = array('prova', FILTER_SANITIZE_STRING);
$risposta1 = filter_input_array(INPUT_POST, $filtro1);
$risposta2 = filter_input_array(INPUT_POST, $filtro2);
$risposta3 = filter_input(INPUT_POST, 'prova', FILTER_SANITIZE_STRING);
echo '<pre>';var_dump($risposta1, $risposta2, $risposta3);echo '</pre>';
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<form method="post" action="#">
<input type="radio" id="a1" name="prova" value="1"><label for="a1">Prova 1</label></p>
<input type="radio" id="a2" name="prova" value="2"><label for="a2">Prova 2</label></p>
<input type="radio" id="a3" name="prova" value="3"><label for="a3">Prova 3</label></p>
<input type="submit" name="invia" value="proviamo">
</form>
</body>
</html>
Potete provare anche voi, in questo modo il programmino mi ritorna la stringa corretta, cioè:
risposta1 array(1) {
["prova"]=>
array(1) {
[0]=>
string(1) "2"
}
}
risposta2 bool(false)
risposta3 bool(false)
Se tolgo le quadre:
risposta1 array(1) {
["prova"]=>
bool(false)
}
risposta2 bool(false)
risposta3 string(1) "2"
E' interessante notare come risposta2 non riporta mai il valore giusto e probabilmente era questo che mi aveva indotto a pensare che comunque bisognasse raggruppare i radio button come indici di array.
Per quanto riguarda i checkbox come dice br1 sappi che qualcunque elemento di form può essere raggruppato in un array, testo, email, checkbox, radiobutton ma anche textarea o select.