2012-04-02 34 views
19

Posso impostare la direttiva PHP.ini max_input_vars nel mio codice? L'ho impostato sul valore predefinito 1000, tuttavia ho uno script con molte caselle di controllo e campi di testo che potrebbero, e molto probabilmente, superare il limite di 1000.impostazione max_input_vars direttiva PHP.ini utilizzando ini_set

Sto usando PHP 5.3.10 e non ricevo errori. Inoltre, non riesco a trovare alcuna documentazione che dichiari che non posso farlo.

ini_set('max_input_vars', 3000); 

Grazie.

+2

Possibile duplicato di [PHP max \ _input \ _vars] (http://stackoverflow.com/questions/10303714/php-max -input-vars) –

risposta

45

max_input_vars ha una modalità mutevole di PHP_INI_PERDIR che significa che non può essere modificato utilizzando ini_set (solo nel php.ini, .htaccess o httpd.conf)

+8

E il motivo principale è che la direttiva ha già avuto effetto quando il codice PHP inizia a funzionare. –

+7

Per i futuri lettori aggiungere al tuo .htaccess: php_value max_input_vars 3000 –

+0

@MichaelCalkins è possibile rendere 'php_value max_input_vars 3000' in .htaccess per funzionare solo per un file php e non per tutti? – AldoB

2

So che molte persone evitano di accesso php.ini a causa di un motivo o per l'altro. così un altro modo sarebbe creare un file .htaccess nella cartella operazioni e aggiungere i seguenti codici e impostare i valori su un valore più alto. Basta aggiungere direttamente senza bisogno di inizializzare nulla nel file di .htaccess

php_value max_input_vars 3000 
php_value suhosin.get.max_vars 3000 
php_value suhosin.post.max_vars 3000 
php_value suhosin.request.max_vars 3000 

Questa soluzione ha funzionato per me, senza l'accesso al file php.ini. dal momento che alcuni dei provider di servizi web ci danno problemi quando vogliamo accedere al file php.ini