[followups to zope-dev] Tommy, You're right, I did the tests and it is indeed a Zope problem. What happens is this. If you have: <form action="/action?row=3" method="POST"> <input type="submit" name="submit" value="submit"> </form> Then what gets sent by Mozilla to the web server is: POST /action?row=3 HTTP/1.1 Host: ... ... Content-Length: 13 submit=submit And indeed there is enough information here to build a correct REQUEST with both row=3 and submit=submit. (However note that with a GET method, Mozilla sends: GET /action?submit=submit HTTP/1.1 So the GET method wouldn't work here anyway.) The culprit is ZPublisher.cgi.FieldStorage, who only looks at the QUERY_STRING if it's a GET or a HEAD. If everybody else does it, maybe Zope should do it... A word about the spec: HTML-4.01 says: * If the method is "get" and the action is an HTTP URI, the user agent takes the value of action, appends a `?' to it, then appends the form data set, encoded using the "application/x-www-form-urlencoded" content type. The user agent then traverses the link to this URI. In this scenario, form data are restricted to ASCII codes. * If the method is "post" and the action is an HTTP URI, the user agent conducts an HTTP "post" transaction using the value of the action attribute and a message created according to the content type specified by the enctype attribute. So the "get" part isn't even clear, what happens if the action already contains a '?'... the spec doesn't say. Note BTW that an URI with two '?' wouldn't be legal. Cheers, Florent Guillaume Nuxeo
Florent,
Ok, if it works in Coldfusion and ASP, then there isn't a problem with 1. My browser 2. HTTP spec 3. Development language
But if, now, I try to do the exact same thing in Zope, and it doesn't work, then how could you NOT say that it isn't a Zope problem? I'm not totally assuming that Zope is the problem, (assumptions can be deadly), but if it has worked before, and doesn't work now with a new development language, then where is the first place one should look?
I'd be interested in input from developers who may have done this in PHP or other languages. If it also works in them....
The only thing that I can think of is if Zope parses differently from other languages. Meaning that if you choose to pass variables through the action property, then you MUST use Get rather than Post. In the other languages it didn't matter, but with Zope, it could potentially matter. I'll test it and write back.