2010-02-16 3 views
18

Je me demandais si quelqu'un connaissait la longueur totale qu'un post global pourrait être. par exemple:PHP: quelle est la longueur totale d'une variable post-globale?

$_POST['formInput'] = "hello world, how long can i be?"; 

Je crée un site où quelqu'un va entrer dans une quantité inconnue de caractères dans une zone de texte, donc il pourrait être potentiellement 2 pages sur un document Word. Donc, si quelqu'un connaît d'autres méthodes de comment je peux le faire en dehors de l'utilisation d'un post global? (Il ne peut pas être enregistré dans un fichier, car ses données importantes que je ne veux pas que d'autres personnes trouvent) Ce serait très utile.

Merci

+1

duplication possible de [Quelle est la taille limite d'une demande de publication?] (Http://stackoverflow.com/questions/2364840/what-is-the-size-limit-of-a-post-request) this est plus âgé d'un mois, mais l'autre est mieux posé IMHO –

Répondre

21

Vérifiez php.ini pour post_max_size. C'est généralement environ 8 Mo par défaut, mais si vous êtes sur un hébergement partagé, cela pourrait certainement varier.

; Maximum size of POST data that PHP will accept. 
post_max_size = 8M

Vous devez utiliser $_POST si vous souhaitez envoyer de grandes quantités de données sur le serveur. Pour une étude plus approfondie, je suggère de vérifier POST Method Uploads dans la documentation.

+10

Apache a aussi les directives LimitRequestBody & LimitRequestFieldSize, pas toujours sûr de supposer qu'il est limité par PHP. – tadamson

7

$_POST est rempli à partir du corps d'une requête HTTP. Comme il n'y a pas de restrictions sur la taille d'une requête HTTP, il n'y a pas de restrictions dans la couche de protocole. Cependant PHP a quelques limitations sur la quantité d'entrée qu'il va lire. Vous pouvez contrôler ceci avec le réglage d'initialisation post_max_size

1

Si vous voulez envoyer une grande quantité de données du navigateur au serveur, vous devrez utiliser la méthode HTTP POST - ce qui signifie que les données seront reçues, le côté PHP, dans le tableau superglobal $_POST; il n'y a pas grand chose à faire à ce sujet.

La directive de configuration post_max_size définit la quantité maximale de données qui peuvent être reçues en utilisant la méthode POST - vous pourriez avoir besoin de mettre cela à une valeur supérieure à celle par défaut, en fonction de vos besoins. Et, comme indiqué sur la documentation de post_max_size, la valeur définie pour memory_limit peut également avoir son importance.

3

Un autre problème peut être la limite par défaut dans php.ini pour la directive max_input_vars (par défaut 1000), et pas seulement la taille post_max_size. Si vous avez par exemple une forme très grande avec des milliers de cases à cocher le tableau $ _POST aura seulement 1000 clés.

+1

Cela a effectivement résolu mon problème avec une demande étant beaucoup moins que 'post_max_size', mais il a atteint la limite' max_input_vars'. Merci! – themarketka

+1

Homme tu as sauvé ma journée. J'ai seulement posté environ 80ko de données mais avec plus de 1000 champs (grand format). Les champs arbitraires semblaient être manquants à côté de PHP jusqu'à ce que je vérifie ce que le navigateur a initialement publié par rapport à ce que contenait réellement _POST [], et j'ai réalisé que "seulement" 1000 champs étaient analysés. – flu

Questions connexes