No return from "post" on Linux? A bug?
Pierre Sahores
psahores at easynet.fr
Fri Jan 31 04:52:00 EST 2003
Sadhunathan Nadesan wrote:
>
> Greetings Scott,
>
> Not sure actually if this is a bug report, or I am doing something wrong,
> a library mismatch, or maybe, just a request for a 'how to do it the
> right way'?? In any case I would appreciate any advice.
>
> Context:
>
> I have a stack that does a post command to a cgi script on a remote
> server. The cgi runs some sql queries to standard out (it has of course
> first set the correct html content type so that apache likes the output).
>
> Problem:
>
> On Windows, the sql output is returned as "it" right after the post
> command in the calling stack.
>
> On Linux, this does not happen. Nothing is returned.
>
> More Details:
>
> I can confirm that the cgi is being called, that the sql is being
> invoked, and I can save the output in a temporary file from this cgi
> (which is an MC script) or even read this file back in to a buffer,
> but then when I do a 'put' of this buffer, it does not return to the
> calling stack on the remote client.
>
> Again, only if it is a Linux client. It does return just fine to a
> Windows client.
>
> The stack itself was created using MC 2.4.3 and the MC interpreter on
> the webhost is 2.4 if that could be the problem, but it seems like the
> post would not work at all to invoke the cgi if it were.
>
> Anyway, any thoughts? I can provide more details as needed. Code samples
> below.
>
> Gracias,
> Sadhu
>
> ----- code sample, the calling stack ----
>
> on AzzList
>
> AzzClear
> set the listBehavior of field "contents" to true
> put "action=list&" into azzdata
> set httpheaders to "Content-type: application/x-www-form-urlencoded" & return
> # the real name of the host has been replaced to protect the innocent
> post urlEncode(azzdata) to url ("http://localhost.com/cgi-bin/azz.cgi")
> put it into sqldata
>
> if (the number of characters in sqldata is zero) then
> answer "Sorry, your data base is empty" & cr
> else
> put "In the contents field below is a list of all the card titles" into field "title"
> put sqldata into field "contents"
> end if
>
> end AzzList
>
> ----- code sample, the cgi stack ----
>
> #!/usr/local/bin/mc
> on startup
#########################################################
> #put "Content-Type: text/plain" & cr & cr ## unneeded
> #put emtpy into formdata ## syntax error
#########################################################
put empty into formdata ## correction
> if ($REQUEST_METHOD = "POST") then
> put empty into buffer
> repeat until (length(buffer) >= $CONTENT_LENGTH)
> read from stdin until empty
> put it after buffer
> end repeat
> else
> read from stdin until empty
> put it into buffer
> end if
> put urlDecode(buffer) into formdata
>
> split formdata by "&" and "="
> put keys(formdata) into keywords
>
> switch formdata["action"]
> case list
> put "select title from azz order by title;" into the_query
> put the_query into url "file:/tmp/azzlist.sql"
> put "psql azz -qt -f /tmp/azzlist.sql" into command_string
> break
> end switch
>
> set shellCommand to "/bin/sh"
> put shell(command_string)
>
> end startup
> _______________________________________________
> metacard mailing list
> metacard at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/metacard
Sadhu,
I don't know if that's will be ok now but i didn't have the problem for
my own (mc 2.32 linuxppc).
--
Best Regards, Pierre Sahores
Inspection académique de Seine-Saint-Denis.
Applications et bases de données WEB et VPN
Qualifier et produire l'avantage compétitif
More information about the metacard
mailing list