X-Git-Url: https://git.plutz.net/?p=confetti;a=blobdiff_plain;f=cgi.sh;fp=cgi.sh;h=cf0023c3c90949f7677bb72b0b2c108e7dac1220;hp=0000000000000000000000000000000000000000;hb=2a8ceba3e2a32940dafd3305237b4b519ef8781c;hpb=325336a63c383f6e40aeda8bec6896331a4408c3 diff --git a/cgi.sh b/cgi.sh new file mode 100755 index 0000000..cf0023c --- /dev/null +++ b/cgi.sh @@ -0,0 +1,23 @@ +#!/bin/zsh + +declare -A _GET +declare -A _POST + + +cgi_get() { # parse HTTP GET string + echo "$QUERY_STRING" |tr '&' '\n' |while read query; do + key="$(echo "$query" |sed -r 's:^([a-zA-Z0-9_-]*)=(.*)$:\1:')" + val="$(echo "$query" |sed -r 's:^([a-zA-Z0-9_-]*)=(.*)$:\2:')" + _GET["$key"]="$(echo -e "$(echo "$val" |sed 's:+: :g;s:%:\\x:g')")" + done + debug "$_GET" +} + +cgi_post() { # parse HTTP POST string + sed -u 1q |tr '&' '\n' |while read query; do + key="$(echo "$query" |sed -r 's:^([a-zA-Z0-9_-]*)=(.*)$:\1:')" + val="$(echo "$query" |sed -r 's:^([a-zA-Z0-9_-]*)=(.*)$:\2:')" + _POST["$key"]="$(echo -e "$(echo "$val" |sed 's:+: :g;s:%:\\x:g')")" + done + debug "$_POST" +}