How to retrieve form “POST” data via cgi-bin program written in C

后端 未结 3 744
小蘑菇
小蘑菇 2020-12-03 15:02

I am trying to retrieve POST data from html form using program written in C.

At the moment I am using:

char *formdata = getenv(\"QUERY_STRING\");
if(         


        
相关标签:
3条回答
  • 2020-12-03 15:45

    If I remember right, read stdin for POST data.


    Edit for untested snippet

    len_ = getenv("CONTENT_LENGTH");
    len = strtol(len_, NULL, 10);
    postdata = malloc(len + 1);
    if (!postdata) { /* handle error or */ exit(EXIT_FAILURE); }
    fgets(postdata, len + 1, stdin);
    /* work with postdata */
    free(postdata);
    
    0 讨论(0)
  • 2020-12-03 15:46

    POST data is appended to the request header, after a double newline. In a CGI-BIN environment, you read it from STDIN.

    Be warned that the server IS NOT REQUIRED to send you an EOF character (or some termination indicator) at the end of the POST data. Never read more than CONTENT_LENGTH bytes.

    0 讨论(0)
  • 2020-12-03 15:57

    Why reinvent that wheel? Just use a library: http://libcgi.sourceforge.net/

    0 讨论(0)
提交回复
热议问题