Ho la seguente pagina HTML / PHP:
<?php
if(empty($_SERVER['CONTENT_TYPE'])) {
$type = "application/x-www-form-urlencoded";
$_SERVER['CONTENT_TYPE'] = $type;
}
echo "<pre>";
var_dump($_POST);
var_dump(file_get_contents("php://input"));
echo "</pre>";
?>
<form method="post" action="test.php">
<input type="text" name="test[1]" />
<input type="text" name="test[2]" />
<input type="text" name="test[3]" />
<input type="submit" name="action" value="Go" />
</form>
Come puoi vedere, il modulo verrà inviato e l'output previsto è un array POST con un array contenente i valori compilati e una voce "azione" con il valore "Vai" (il pulsante). Tuttavia, indipendentemente dai valori che inserisco nei campi; il risultato è sempre:
array(2) {
["test"]=>
string(0) ""
["action"]=>
string(2) "Go"
}
string(16) "test=&action=Go&"
In qualche modo, l'array chiamato test viene svuotato, la variabile "action" lo fa passare.
Ho usato l'estensione di intestazioni HTTP Live per Firefox per verificare se i campi POST vengono inviati e lo fanno. Le informazioni pertinenti dalle intestazioni HTTP in tempo reale (con a, bec compilate come valori nelle caselle di testo):
Content-Type: application/x-www-form-urlencoded
Content-Length: 51
test%5B1%5D=a&test%5B2%5D=b&test%5B3%5D=c&action=Go
Qualcuno ha idea del perché questo accada? Sto impazzendo per questo, mi è già costato così tanto tempo ...
Aggiornare:
Abbiamo provato questo su diversi server, su Windows funziona, sul server Ubuntu con PHP versione 5.2.4 (con Suhosin), non funziona. Funziona anche su un server diverso, anche con Ubuntu e la stessa versione di PHP, anche con Suhosin installato.
Ho diffuso i due file, questo è l'output ( diff php.ini phps.ini):
270c270
< memory_limit = 32M
---
> memory_limit = 16M ; Maximum amount of memory a script may consume (16MB)
415c415
< variables_order = "EGCSP"
---
> variables_order = "EGPCS"
491d490
< include_path = ".:"
1253a1253,1254
> extension=mcrypt.so
>
In questo phps.ini è quello dal server su cui funziona e php.ini è quello corrente. Sembra che non ci siano problemi qui, giusto?

