REBOL Programming/read-cgi

From Wikibooks, open books for an open world
< REBOL Programming
Jump to: navigation, search

USAGE:[edit]

READ-CGI /limit size 

DESCRIPTION:[edit]

Read CGI data from web server input stream. Return data as string.

READ-CGI is a function value.

REFINEMENTS[edit]

  • /limit
    • size -- Option to limit to this number of bytes (Type: any)

SOURCE CODE[edit]

read-cgi: func [
    {Read CGI data from web server input stream. Return data as string.} 
    /limit size "Option to limit to this number of bytes" 
    /local data buffer
][
    either system/options/cgi/request-method = "post" [
        data: make string! 1020 
        buffer: make string! 16380 
        while [positive? read-io system/ports/input buffer 16380] [
            append data buffer 
            clear buffer 
            if all [limit (length? data) > size] [
                do make error! reform [
                    "read-cgi aborted - posting is too long:" 
                    length? data "limit:" size
                ]
            ]
        ]
    ] [data: system/options/cgi/query-string] 
    any [data copy ""]
]