Avertissement: les variables d'Entrée ont dépassé les 1000
Je suis en train de construire un REPOSE comme service en PHP qui doivent accepter un grand JSON poste principal de données (j'ai d'envoyer et de lire les données comme discuté ici: http://forums.laravel.io/viewtopic.php?id=900)
Le problème est que PHP me donne l'Avertissement suivant:
<b>Warning</b>: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in <b>Unknown</b> on line <b>0</b><br />
Est-il possible de PHP ne pas compter les variables d'entrée (ou devrais-je réduire de démarrage mises en garde)?
Pourquoi ne pas changer
Parce que je n'aime pas l'idée de changer de vie, mon affiché les données JSON peuvent être très importants. Je n'ai pas besoin de l'aide de PHP pour parser mes variables comme je n'envoie pas toutes les variables, à seulement JSON données codées.
PHP n'est pas des soins que vous êtes en utilisant JSON. Les données sont comptés comme des variables d'entrée, de sorte que l'alerte est déclenchée. Quel inconvénient voyez-vous en utilisant l'option de configuration comme il était prévu?
le laravel lien ne fonctionne pas, pouvez-vous poster un exemple de code?
Post le JSON comme une chaîne de caractères avec
max_input_vars
comme l'avertissement recommande?Parce que je n'aime pas l'idée de changer de vie, mon affiché les données JSON peuvent être très importants. Je n'ai pas besoin de l'aide de PHP pour parser mes variables comme je n'envoie pas toutes les variables, à seulement JSON données codées.
PHP n'est pas des soins que vous êtes en utilisant JSON. Les données sont comptés comme des variables d'entrée, de sorte que l'alerte est déclenchée. Quel inconvénient voyez-vous en utilisant l'option de configuration comme il était prévu?
le laravel lien ne fonctionne pas, pouvez-vous poster un exemple de code?
Post le JSON comme une chaîne de caractères avec
JSON.stringify()
au lieu et à l'utilisation de la fonction PHP json_decode
sur le côté qui reçoit à son tour les données dans un tableau.OriginalL'auteur Fredrik Erlandsson | 2013-05-09
Vous devez vous connecter pour publier un commentaire.
Quelque chose de mal, vous n'avez pas besoin de 1000 variables. Recode votre programme d'accepter 1 tableau de variables avec 1000 clés. Il s'agit d'erreur est là pour vous avertir que vous ne faites pas les choses de la manière recommandée. Ne pas désactiver, ou à le prolonger, ou à le cacher de toute façon.
J'ai une table de 70 lignes et 13 colonnes, avec 2 zones de texte dans chaque cellule. Ouais, je suis certain de ne pas faire les choses de la manière recommandée.
^_^
J'ai essayé en utilisant des tableaux associatifs pour les noms de variables, cependant, je suis encore en train de l'avertissement (et les données sont tronquées encore). Je m'attendais à un tableau dans le tableau POST afin d'être considéré comme une variable, mais apparemment il est toujours considéré comme le nombre d'éléments dans le tableau.
Je suis maintenant à l'aide de JavaScript pour convertir la table de zones de texte dans un tableau JSON, puis passage que dans le POST comme une variable unique. En PHP, je suis décodage dans le tableau associatif dont j'ai besoin. Fonctionne parfaitement, juste 1 de la variable au lieu de 1.820 variables
:)
OriginalL'auteur
J'ai trouvé que la bonne façon de gérer les données json directement en PHP (via
file_get_contents('php://input')
) est de s'assurer que la demande définit le droit, content-type, c'est à direContent-type: application/json
en-tête de requête HTTP.Dans mon cas je suis en demandant des pages en php à l'aide de curl avec ce code:
Note de la
CURLOPT_HTTPHEADER => array('Content-Type: application/json')
partie.Sur le côté réception, je suis en utilisant le code suivant:
De ne pas changer les
max_input_vars
variable. Depuis la modification de la demande de mettre les en-têtes de mon problème avecmax_input_vars
s'en alla. Ne semble pas le PHP évaluer les variables post avec certainsContent-type
est réglé.OriginalL'auteur
Selon manuel php
max_input_vars
dansphp.ini
rôle est:Vous avez juste à attribuer une plus grande nombre de
max_input_vars
dans votrephp.ini
.Même si vous l'envoyez dans une variable POST, vous finirez par avoir à analyser et vous devez créer plus de variables (sauf si vous êtes en traitement de l'ensemble de la chaîne JSON et rien de plus). Il est très rare que vous ne savez pas combien de temps objet JSON peut être, mais dans cette situation, vous pouvez soit changer en
INF
ou quelque chose de très grand. Méfiez-vous de DoS!", Cette limite ne s'applique qu'à chaque niveau d'imbrication d'un multi-dimensionnelle tableau d'entrée." Où avez-vous l'obtenir? Semble que ce n'est pas vrai. À partir d'un test rapide, ça ressemble à la limite s'applique au nombre total de cellules dans le tableau, pas le niveau d'imbrication.
OriginalL'auteur
Vraiment, changement
max_input_vars
à l'aide de.htaccess
fichier de travail, mais vous devez redémarrer le service Apache.Suivre le processus complet:
C:\xampp\apache\conf\httpd.conf
httpd.conf
xampp/htdocs
AllowOverride
#
avantAllowOverride
supprimer la#
AllowOverride
insérerphp_value max_input_vars 10000
OriginalL'auteur
Modifier cette
À ce
Ligne de commentaire dans php.ini fichier est
OriginalL'auteur
Changer max_input_vars en php.ini n'a pas fonctionné pour moi
Changement max_input_vars à l'aide .fichier htaccess est de travail.
Si vous souhaitez modifier la “max_input_vars” à l'aide .fichier htaccess puis aller à C:\xampp\apache\conf\httpd.conf fichier (xampp) ajouter le code suivant dans vous .fichier htaccess.
php_value max_input_vars 10000
OriginalL'auteur