[linux] Re: Probleem met cgi.FieldStorage() in Python

Kees Theunissen theuniss op rijnh.nl
Zo Sep 10 02:21:55 CEST 2006


On Sat, 9 Sep 2006, Cecil Westerhof wrote:

>Op za, 09-09-2006 te 18:04 +0200, schreef Cecil Westerhof:
>> Ik gebruik al enige tijd cgi.FieldStorage() in Python. Tot nu toe werd
>> er altijd met 'METHOD="POST"' gewerkt. Dat werkte zonder problemen. Er
>> moet nu echter ook met 'METHOD="GET"' kunnen worden gewerkt. Hierbij
>> loop ik tegen een vreemd probleem aan. Als er een punt-komma in een veld
>> zit, dan wordt alles vanaf dat veld verwijderd.
>> Als de URL bijvoorbeeld bevat:
>> 	?Message=testing;na%20de%20put-komma
>> dan ziet cgi.FieldStorage voor Message enkel:
>> 	testing
>> Weet iemand wat hier aan de hand is en wat er tegen te doen is?
>
>Ik heb het probleem met de puntkomma opgelost. Dat is een speciaal
>karakter dat moet worden omgezet, net zoals bijvoorbeeld de spatie. Het
>bizarre is dat een spatie wel netjes om wordt gezet (naar '%20' of een
>'+') als je dat in een browser invoert, maar een punt-komma niet (naar
>'%3B'). Als je dit doet, dan gaat het wel goed.

Echt bizar is dit niet.
De puntcomma (;) wordt ook gebruikt als "parameter separator" bij de
GET method. Traditioneel wordt daar de ampersant (&) voor gebruikt,
maar die is lastig als je URL's met ampersants wilt opnemen in
HTML code.
Een browser zet een puntcomma niet om in '%3B' omdat dat normaal niet
nodig is. Maar als jij die puntcomma wilt gebruiken in een parameter
value, terwijl de webserver hem interpreteert als parameter separator,
dan wordt het een andere zaak.


Groeten,

Kees.

-- 
Kees Theunissen
F.O.M.-Instituut voor Plasmafysica "Rijnhuizen", Nieuwegein
E-mail: theuniss op rijnh.nl,     Tel: 030-6096724,     Fax: 030-6031204



More information about the Linux mailing list