]> git.plutz.net Git - confetti/blob - cgi.sh
no escapes in debug function
[confetti] / cgi.sh
1 #!/bin/zsh
2
3 declare -A _GET
4 declare -A _POST
5
6
7 cgi_get() {  # parse HTTP GET string
8   echo "$QUERY_STRING" |tr '&' '\n' |while read query; do
9     key="$(echo "$query" |sed -r 's:^([a-zA-Z0-9_-]*)=(.*)$:\1:')"
10     val="$(echo "$query" |sed -r 's:^([a-zA-Z0-9_-]*)=(.*)$:\2:')"
11     _GET["$key"]="$(echo -e "$(echo "$val" |sed 's:+: :g;s:%:\\x:g')")"
12   done
13   debug "$_GET"
14 }
15
16 cgi_post() {  # parse HTTP POST string
17   sed -u 1q |tr '&' '\n' |while read query; do
18     key="$(echo "$query" |sed -r 's:^([a-zA-Z0-9_-]*)=(.*)$:\1:')"
19     val="$(echo "$query" |sed -r 's:^([a-zA-Z0-9_-]*)=(.*)$:\2:')"
20     _POST["$key"]="$(echo -e "$(echo "$val" |sed 's:+: :g;s:%:\\x:g')")"
21   done
22   debug "$_POST"
23 }