REBOL [
    title: "HTML Form Server"
    date: 30-Dec-2013
    file: %formserver.r
    author:  Nick Antonaccio
    purpose: {
        Creates a web server which serves an HTML form, and then
        processes the data input by users.  This can be useful when tallying
        information from users on a Local Area Network.  The users can use
        any device (iPhone, Android, netbook, etc.) to enter information into
        a shared system, as long as the device has a basic web browser
        and Wifi (or other network) connectivity. 
        Just edit the HTML form example, and do what you want with the 'z
        variable returned by the user(s).
    }
]
l: read join dns:// read dns://
print join "Waiting on:  " l
port: open/lines tcp://:80
browse join l "?"
forever [
    q: first port
    if error? try [
        z: decode-cgi replace next find first q "?" " HTTP/1.1" ""
        prin rejoin ["Received: " mold z newline]
        d: rejoin [
            {HTTP/1.0 200 OK^/Content-type: text/html^/^/
            
Server: } l {

Name:

Address:

Phone:


Item 1 Item 2 Yes No

} ] write-io q d length? d ] [print "(empty submission)"] close q ] halt