Issue 1817: module-cgi: handling GET and POST together (original) (raw)

Issue1817

Created on 2008-01-13 01:58 by alef13, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
cgi.py.patch alef13,2008-01-13 05:13 Patch for handling QUERY_STRING within POST
cgy.py.patch-1 alef13,2008-01-15 23:55 added suport for reading QUERY_STRING within POST
cgitest.py 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 is available through cgi.FormContent but not cgi.FieldStorage when there are other 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/cgi.py and adds Lib/test/test_cgi_post_qs.py 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. thanks!
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 test_cgi.py.
msg68529 - (view) Author: Nubis (Nubis) Date: 2008-06-21 18:10
I moved the test into the current test_cgi.py, 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!
History
Date User Action Args
2022-04-11 14:56:29 admin set github: 46142
2008-06-21 18:59:06 facundobatista set status: open -> closednosy: + facundobatistaresolution: fixedmessages: +
2008-06-21 18:10:32 Nubis set files: + post_qs_final.patchmessages: +
2008-06-21 16:41:27 gvanrossum set messages: +
2008-06-21 15:56:36 Nubis set files: + post_qs.patchnosy: + Nubismessages: + keywords: + patchversions: + Python 2.6
2008-02-23 16:53:05 alef13 set files: + cgitest.pymessages: +
2008-01-20 20:04:26 christian.heimes set priority: normaltype: enhancementcomponents: + Library (Lib)
2008-01-15 23:55:46 alef13 set files: + cgy.py.patch-1messages: +
2008-01-13 05:13:35 alef13 set files: + cgi.py.patchmessages: +
2008-01-13 04:14:21 gvanrossum set keywords: + easynosy: + gvanrossummessages: +
2008-01-13 01:58:54 alef13 create