Title: module-cgi: handling GET and POST together
Type: enhancement Stage:
Components: Library (Lib) Versions: Python 2.6, Python 2.5
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: Nubis, alef13, facundobatista, gvanrossum
Priority: normal Keywords: easy, patch

Created on 2008-01-13 01:58 by alef13, last changed 2008-06-21 18:59 by facundobatista. This issue is now closed.

File name Uploaded Description Edit alef13, 2008-01-13 05:13 Patch for handling QUERY_STRING within POST alef13, 2008-01-15 23:55 added suport for reading QUERY_STRING within POST alef13, 2008-02-23 16:53 Unit test for patched cgi module.
post_qs.patch Nubis, 2008-06-21 15:56 Corrects handling of querystring in POST requests
post_qs_final.patch Nubis, 2008-06-21 18:10 all of it is in this patch.
Messages (9)
msg59848 - (view) Author: Alexandre Fiori (alef13) Date: 2008-01-13 01:58
It looks like module-cgi cannot handle GET and POST together when using
FieldStorage. For instance, a <form action=""
action="post"> is available through cgi.FormContent but not
cgi.FieldStorage when there are other <input> in the html form.
Very strange.
msg59849 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2008-01-13 04:14
Well, what are you waiting for? Submit a patch!
msg59850 - (view) Author: Alexandre Fiori (alef13) Date: 2008-01-13 05:13
Here it is, babe. I've made appropriate changes to make it read
QUERY_STRING when it's available within POST method. It's currently
being parsed by parse_qsl() in read_urlencoded() as it should be in
regular GET or POST. I didn't touch CONTENT_LENGTH since it has the size
of the POST data without QUERY_STRING's size. That would affect read()
of such POST data. It's working. Thanks for the incentive, it's my first
patch for python.
msg59985 - (view) Author: Alexandre Fiori (alef13) Date: 2008-01-15 23:55
Now I added support for parsing query string within multipart/*. The
only issue now is that it mixes FieldStorage with MiniFieldStorage.
However, I don't think it's a problem.
msg62772 - (view) Author: Alexandre Fiori (alef13) Date: 2008-02-23 16:53
Here's the unit test for patched cgi module.
There are three tests: one for HTML POST forms that are urlencoded, and
two for multipart/form-data - with and without file upload.
msg68505 - (view) Author: Nubis (Nubis) Date: 2008-06-21 15:56
This was pretty much done when I got here. It broked the other cgi_test
(which tests some other corner cases).
Patch includes modifications to Lib/ and adds
Lib/test/ to test the new features.

This should be closed by now, but since this is my first patch, just let
me know what else should I do to get it closed.

msg68513 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2008-06-21 16:41
Thanks for your contribution!

To get this commmitted, please draw the attention of someone else on
python-dev (or if you're an IRC person try #python-dev at freenote,
IIRC).  I'd recommend moving the tests into the existing
msg68529 - (view) Author: Nubis (Nubis) Date: 2008-06-21 18:10
I moved the test into the current, and also added the docs
and NEWS.
This patch also includes all the previous changes and is the only one
that needs to be merged.

Now I think it def should be closed :)
msg68534 - (view) Author: Facundo Batista (facundobatista) * (Python committer) Date: 2008-06-21 18:59
Commited the final Nubis' version in r64447. Fixed, :). Thank you all!
Date User Action Args
2008-06-21 18:59:06facundobatistasetstatus: open -> closed
nosy: + facundobatista
resolution: fixed
messages: + msg68534
2008-06-21 18:10:32Nubissetfiles: + post_qs_final.patch
messages: + msg68529
2008-06-21 16:41:27gvanrossumsetmessages: + msg68513
2008-06-21 15:56:36Nubissetfiles: + post_qs.patch
nosy: + Nubis
messages: + msg68505
keywords: + patch
versions: + Python 2.6
2008-02-23 16:53:05alef13setfiles: +
messages: + msg62772
2008-01-20 20:04:26christian.heimessetpriority: normal
type: enhancement
components: + Library (Lib)
2008-01-15 23:55:46alef13setfiles: +
messages: + msg59985
2008-01-13 05:13:35alef13setfiles: +
messages: + msg59850
2008-01-13 04:14:21gvanrossumsetkeywords: + easy
nosy: + gvanrossum
messages: + msg59849
2008-01-13 01:58:54alef13create