So far I managed to get the cgi environment variables out, managed to split it along the ampersand operators. Considering that the string content will be known, I guess I can tuplefy the rest of the contents into key=value pairs --------code so far---------- import cgi,strutils #declaration const ADD_HEAD = """ <head> <title>cub</title> </head> <body>"""
const ADD_FOOT = """ </body> <html> """ let qstring = getQueryString() let qmethod = getRequestMethod() let qaddress = getRemoteAddr() let qry = ( qstring: getQueryString(), qmethod: getRequestMethod(), qaddress: getRemoteAddr(), quri: getRequestURI(), qscriptfile: getScriptFilename(), qscriptname: getScriptName(), qservname: getServerAddr()) var data = initTable[string, string](https://forum.nim-lang.org/postActivity.xml) var dataseq = @[] #implementation write(stdout, "Content-type: text/htmlnn") write(stdout, "<br>string:") write(stdout, qry.qstring) write(stdout, "<br>method:") write(stdout, qry.qmethod) write(stdout, "<br>address:") write(stdout, qry.qaddress) write(stdout, "<br>quri:") write(stdout, qry.quri) write(stdout, "<br>qscriptfile:") write(stdout, qry.qscriptfile) write(stdout, "<br>qscriptname:") write(stdout, qry.qscriptname) write(stdout, "<br>qservname:") write(stdout, qry.qservname) write(stdout, "<hr>") for word in split(qstring, '&'): > writeLine(stdout, word) write(stdout, "<br>") _output_ string:name=martin&var1=x&var2=y&var3=z method:GET address:127.0.0.1 quri:/cgi-bin/cgi_3.exe?name=martin&var1=x&var2=y&var3=z qscriptfile:C:/xampp/cgi-bin/cgi_3.exe qscriptname:/cgi-bin/cgi_3.exe qservname:127.0.0.1name=martin var1=x var2=y var3=z