OVH Cloud OVH Cloud

Limitation de transfert de formulaire

10 réponses
Avatar
shak
Bonjour,
Vu la "sur-activé" de alt.fr.langages.html, je préfère reposer ma question
ici :

Il y a-t-il une limitation de la taille des données transférées par un
formulaire avec une méthode POST ?

Par exemple : est-ce que je peux mettre un textarea, et mettre autant de
caractères que je veux ?

Je viens de faire des tests, et j'ai remarqué, qu'en ajoutant beaucoup de
texte, il est impossible de valider le formulaire!
Est-ce normal ?

Merci.
Shak.

10 réponses

Avatar
Laurent Séguin
"shak" , le 06 nov. 2004 21:35:55, écrivait ceci:

Vu la "sur-activé" de alt.fr.langages.html, je préfère reposer ma
question ici :



Surtout que c'est pas vraiment que du html ta question :-)

Il y a-t-il une limitation de la taille des données transférées par un
formulaire avec une méthode POST ?



Avec POST les données sont envoyées dans le corps de la requête http et non
pas dans l'en-tête comme avec GET ; Donc il n'y a pas de limitation
'théorique'.

Par exemple : est-ce que je peux mettre un textarea, et mettre autant
de caractères que je veux ?



Oui. D'ailleurs c'est cette méthode qui permet le transfert de fichier
(j'ai des appli qui acceptent des fichiers jusqu'à 2Go, donc avant que tu
arrive à 1Go de texte faut être très prolifique :p).

Je viens de faire des tests, et j'ai remarqué, qu'en ajoutant beaucoup
de texte, il est impossible de valider le formulaire!



Impossible comment ?

Est-ce normal ?



Ca dépend.
Je ne vois que 3 cas qui pourraient être bloquants :
- Soit tu limites toi même dans ton formulaire (j'en doute, sinon tu ne te
poserait pas la question).
- Soit le serveur limite la taille et le temps de la requête (c'est AMHA le
plus probable) et si tu es en mutualisé, t'es dans la merde.
- Soit tu t'es manqué lors de la récupération des données.
Avatar
newdb
Laurent Séguin wrote:
"shak" , le 06 nov. 2004 21:35:55, écrivait ceci:
> Il y a-t-il une limitation de la taille des données transférées par un
> formulaire avec une méthode POST ?
Avec POST les données sont envoyées dans le corps de la requête http et non
pas dans l'en-tête comme avec GET ; Donc il n'y a pas de limitation
'théorique'.
> Par exemple : est-ce que je peux mettre un textarea, et mettre autant
> de caractères que je veux ?
Oui. D'ailleurs c'est cette méthode qui permet le transfert de fichier
(j'ai des appli qui acceptent des fichiers jusqu'à 2Go, donc avant que tu
arrive à 1Go de texte faut être très prolifique :p).



polop !
pas vraiment :
le **transfert de fichier** ce n'est pas la **soumission de données**

shak s'inquiète du nombre max de caractères dans un textarea...

je colle ci-dessous la réponse que j'ai donnée à un post récent sur
fr.comp.lang.javascript ('taille max des input' du 02/11/2004) :

<---->
une recherche groups-google-isée sur 'maximum size of a textarea'
te renvoie 4 miiliards de fils qui abordent cette question.

en gros, le maximum serait déterminé par l'os (win9x, winXp, macOs...)
ET le navigateur utilisés.
mais ce n'est jamais trés clair.
ça varierait (en fonction de ci-dessus) de 14 à 32, voire 64 Ko...
</----->

cela dit, pour expédier un **gros** texte, il vaut mieux se tourner vers
le transfert d'un **fichier** texte <input type="file"> plutôt qu'un
<textarea>

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="
Avatar
Laurent Séguin
(denisb), le 07 nov. 2004 03:23:28, écrivait ceci:

le **transfert de fichier** ce n'est pas la **soumission de données**



C'est pareil, ça passe par le même processus et se met au même endroit dans
la requête http.

shak s'inquiète du nombre max de caractères dans un textarea...



Ah j'avais pas compris comme ça :-)

cela dit, pour expédier un **gros** texte, il vaut mieux se tourner vers
le transfert d'un **fichier** texte <input type="file"> plutôt qu'un
<textarea>



Ou, si il tient vraiment à ses textarea, en mettre plusieurs.
Avatar
shak
"denisb" a écrit dans le message de news:
1gmv293.1oxotlvka09mN%
Laurent Séguin wrote:
"shak" , le 06 nov. 2004 21:35:55, écrivait ceci:
> Il y a-t-il une limitation de la taille des données transférées par un
> formulaire avec une méthode POST ?
Avec POST les données sont envoyées dans le corps de la requête http et
non
pas dans l'en-tête comme avec GET ; Donc il n'y a pas de limitation
'théorique'.
> Par exemple : est-ce que je peux mettre un textarea, et mettre autant
> de caractères que je veux ?
Oui. D'ailleurs c'est cette méthode qui permet le transfert de fichier
(j'ai des appli qui acceptent des fichiers jusqu'à 2Go, donc avant que tu
arrive à 1Go de texte faut être très prolifique :p).



polop !
pas vraiment :
le **transfert de fichier** ce n'est pas la **soumission de données**

shak s'inquiète du nombre max de caractères dans un textarea...


C'est exactement ca.

je colle ci-dessous la réponse que j'ai donnée à un post récent sur
fr.comp.lang.javascript ('taille max des input' du 02/11/2004) :

<---->
une recherche groups-google-isée sur 'maximum size of a textarea'
te renvoie 4 miiliards de fils qui abordent cette question.


4 milliards !! tant que ca ! Désolé, j'ai pas tapé les bon mots clés :/

en gros, le maximum serait déterminé par l'os (win9x, winXp, macOs...)
ET le navigateur utilisés.
mais ce n'est jamais trés clair.
ça varierait (en fonction de ci-dessus) de 14 à 32, voire 64 Ko...
</----->

cela dit, pour expédier un **gros** texte, il vaut mieux se tourner vers
le transfert d'un **fichier** texte <input type="file"> plutôt qu'un
<textarea>


J'y pensais et je vais donc proposer les 2 possibilités.

Merci.
Avatar
shak
"Laurent Séguin" a écrit dans le message de news:

"shak" , le 06 nov. 2004 21:35:55, écrivait ceci:

Vu la "sur-activé" de alt.fr.langages.html, je préfère reposer ma
question ici :



Surtout que c'est pas vraiment que du html ta question :-)

Il y a-t-il une limitation de la taille des données transférées par un
formulaire avec une méthode POST ?



Avec POST les données sont envoyées dans le corps de la requête http et
non
pas dans l'en-tête comme avec GET ; Donc il n'y a pas de limitation
'théorique'.

Par exemple : est-ce que je peux mettre un textarea, et mettre autant
de caractères que je veux ?



Oui. D'ailleurs c'est cette méthode qui permet le transfert de fichier
(j'ai des appli qui acceptent des fichiers jusqu'à 2Go, donc avant que tu
arrive à 1Go de texte faut être très prolifique :p).

Je viens de faire des tests, et j'ai remarqué, qu'en ajoutant beaucoup
de texte, il est impossible de valider le formulaire!



Impossible comment ?


Pour info : en cliquant sur le bouton valider du formulaire, aucune action
se passe! (aucun js qui bloque ni rien du tout : lorsque je vire un peu de
texte ca passe.)
Avatar
Sebastian 'CrashandDie' Lauwers
shak wrote:

Pour info : en cliquant sur le bouton valider du formulaire, aucune action
se passe! (aucun js qui bloque ni rien du tout : lorsque je vire un peu de
texte ca passe.)



Tiens, drôle de coîncidence... Question pour voir si le monde est petit:
tu n'es pas adepte de la lapinouphilie?

J'ai eu exactement le même problème hier, sur un forum phpBB2 ... Un
gros post, beaucoups d'image, le serveur d'images plante, on change
l'endroit des images, et on essaye d'éditer le message. Paf,
impossible... Apparemment changer les images d'endroit aurait résolu le
problème.

Dans le php.ini, on peut mettre une taille maximum de requête _POST,
grâce à la directive post_max_size ... Par défaut elle est à 2M si mes
souvenirs sont corrects.

S.
Avatar
Laurent Séguin
"shak" , le 07 nov. 2004 12:03:23, écrivait ceci:

Je viens de faire des tests, et j'ai remarqué, qu'en ajoutant
beaucoup de texte, il est impossible de valider le formulaire!



Impossible comment ?


Pour info : en cliquant sur le bouton valider du formulaire, aucune
action se passe! (aucun js qui bloque ni rien du tout : lorsque je
vire un peu de texte ca passe.)



Donc c'est bien le navigateur qui bloque... Je ne savait même pas que ça
pouvait le faire, d'ailleurs je ne me suis même jamais posé la question de
savoir si il y avait une limite dans les textarea.

Il faut dire que dans les appli que j'ai faites ou les producteurs de
contenu on beaucoup de texte à mettre, je découpe généralement en
"chapitres", avec donc un textarea par chapitre.
Avatar
shak
"Sebastian 'CrashandDie' Lauwers" <crashanddie+ a écrit dans
le message de news: 418e0ee8$0$14977$
shak wrote:

Pour info : en cliquant sur le bouton valider du formulaire, aucune
action se passe! (aucun js qui bloque ni rien du tout : lorsque je vire
un peu de texte ca passe.)



Tiens, drôle de coîncidence... Question pour voir si le monde est petit:
tu n'es pas adepte de la lapinouphilie?


loool... pas du tout

J'ai eu exactement le même problème hier, sur un forum phpBB2 ... Un gros
post, beaucoups d'image, le serveur d'images plante, on change l'endroit
des images, et on essaye d'éditer le message. Paf, impossible...
Apparemment changer les images d'endroit aurait résolu le problème.


Moi c'etait que du texte...

Dans le php.ini, on peut mettre une taille maximum de requête _POST, grâce
à la directive post_max_size ... Par défaut elle est à 2M si mes souvenirs
sont corrects.

S.


Ouai mais sur free, j'arrive pas encore à accèder aux config du serveur!
Dès que j'y arriverais, je le ferais, promis. ;)

Shak
Avatar
shak
"Laurent Séguin" a écrit dans le message de news:

"shak" , le 07 nov. 2004 12:03:23, écrivait ceci:

Je viens de faire des tests, et j'ai remarqué, qu'en ajoutant
beaucoup de texte, il est impossible de valider le formulaire!



Impossible comment ?


Pour info : en cliquant sur le bouton valider du formulaire, aucune
action se passe! (aucun js qui bloque ni rien du tout : lorsque je
vire un peu de texte ca passe.)



Donc c'est bien le navigateur qui bloque... Je ne savait même pas que ça
pouvait le faire, d'ailleurs je ne me suis même jamais posé la question de
savoir si il y avait une limite dans les textarea.

Il faut dire que dans les appli que j'ai faites ou les producteurs de
contenu on beaucoup de texte à mettre, je découpe généralement en
"chapitres", avec donc un textarea par chapitre.


Dans mon cas, je ne peux pas separer, vu que je dois parser le texte...
Mais je pense que la meilleur solution est de demander de joindre un fichier
txt lorsque le texte est trop gros.

Shak.
Avatar
newdb
Laurent Séguin wrote:
(denisb), le 07 nov. 2004 03:23:28, écrivait ceci:
> le **transfert de fichier** ce n'est pas la **soumission de données**
C'est pareil, ça passe par le même processus et se met au même endroit dans
la requête http.



oui. tu dis vrai bien sûr.
tout ce passe par la requête http...
ce que je veux dire, c'est qu'au niveau de l'entête envoyé, il y une
différence essentielle, à savoir la valeur du Content-Type.

un peu de théorie
(comment le serveur traite la réception d'un formulaire) :

quand on bâtit un formulaire, suivant le type de données que l'on veut
envoyer, on fournit (explicitement ou non) un Content-Type.

pour un formulaire sans envoi (upload) de fichier, il n'est pas
nécessaire de préciser ce renseignement qui sera par défaut :
Content-Type: application/x-www-form-urlencoded

mais pour donner la possibilité d'envoyer un (ou plusieurs) fichier tu
dois fournir cette information au serveur en ajoutant dans la balise de
déclaration de ton formulaire : enctype="multipart/form-data"
et du coup le serveur comprend bien :
Content-Type: multipart/form-data

la requête http est donc construite sous la forme (exemple) :
<première partie> <-- concerne le serveur
http://www.site.com/nom_de_fichier.php
POST /nom_de_fichier.php HTTP/1.1
Host: www.site.com
User-Agent: ton navigateur
Accept: application/x-shockwave-flash,text/xml,application/xml,
application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,
image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: fr,fr-fr;q=0.8,en;q=0.5,en-us;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.site.com/nom_de_fichier.php

<deuxième partie> <-- c'est là que ça se passe !
###### si pas d'upload ######
###############################
Content-Type: application/x-www-form-urlencoded
Content-Length: 2006
###### toutes les données encodées à la queue leu leu ######
mon_texte=Si+meliora+dies%2C+ut+vina%2C+poema
[...]
m+ducit+venditque+poema.&submit=valider
###### si upload ######
################################
Content-Type: multipart/form-data; boundary=-----------23010741916212
Content-Length: 2165
###### chaque élément du formulaire est différencié ######
-----------23010741916212
Content-Disposition: form-data; name="MAX_FILE_SIZE"
5240000
-----------23010741916212
Content-Disposition: form-data; name="fichier";filename="lorem"
Content-Type: application/text
###### les données du fichier (non encodées) ######
Si meliora dies, ut vina, poema
[...]
m ducit venditque poema.
-----------23010741916212
Content-Disposition: form-data; name="submit"
valider

<troisième partie> <-- concerne la réponse du serveur
HTTP/1.x 200 OK
Date: Sun, 07 Nov 2004 16:49:24 GMT
Server: Apache
X-Powered-By: PHP/4.1.2
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1


plus d'infos sur multipart/form-data (upload) :
<http://www.faqs.org/rfcs/rfc1867.html>

tout ça (!!) pour dire que :
le **transfert de fichier** et la **soumission de données**


c'est pareil



mais
c'est pas traité pareil.

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="