caspita... problema non da poco
è tutto il giorno che cerco di risolverlo. Ho trovato questa funzione nei commenti di php.net
codice:
function repairPost($data) {
// combine rawpost and $_POST ($data) to rebuild broken arrays in $_POST
$rawpost = "&".file_get_contents("php://input");
$qform = array();
while(list($key,$value)= each($data)) {
$pos = preg_match_all("/&".$key."=([^&]*)/i",$rawpost, $regs, PREG_PATTERN_ORDER);
if((!is_array($value)) && ($pos > 1)) {
$qform[$key] = array();
for($i = 0; $i < $pos; $i++) {
$qform[$key][$i] = urldecode($regs[1][$i]);
}
} else {
$qform[$key] = $value;
}
}
return $qform;
}
$_POST = repairPost($_POST);
questa funzione fa proprio quello che mi serve, cioè mi consente di omettere le [] alla fine di un select con multiple abilitato. Il problema è che questa funzione accede ai dati grezzi inviati via post, in altre parole accede alla variabile $HTTP_RAW_POST_DATA tramite gli stream predefiniti di php. Il problema è che questa variabile non è sempre disponibile... quando il content type della mia form è multipart/form-data, obbligatorio quando si deve inviare un file, questa variabile non viene popolata.
In altre parole con questo sistema se devo mandare un file in una form con un select messo su multiple, sono fregato
Questa mi sembra una bella limitazione di php... dovrebbe aggiornarsi un pochino ed evitarci questi workaround su componenti così a basso livello dei programmi.
Attendo commenti