[英]How to get POST parameters from CGI scripts written in bash?
我正在使用用 bash 编写的 CGI 脚本编写 Web 应用程序。
对于GET
请求,请求参数在名为$QUERY_STRING
的变量中可用。 但是,我无法弄清楚POST
请求的相似值将存储在哪里。
我正在使用以下脚本:
#!"c:/msys64/usr/bin/bash.exe"
# On *nix, replace above with #!/bin/bash
echo -en "Status: 200 OK\r\n"
echo -en "Content-type: text/plain\r\n\r\n"
declare -x
declare -a
这就是我得到的:
$ curl -so - --data "abc=ZZZZZZ&d=PPPPPPPP" http://localhost/cgi-bin/test.sh | grep ZZZZZZ
$ curl -so - "http://localhost/cgi-bin/test.sh?abc=ZZZZZZ&d=PPPPPPPP" | grep ZZZZZZ
declare -x QUERY_STRING="abc=ZZZZZZ&d=PPPPPPPP"
declare -x REQUEST_URI="/cgi-bin/test.sh?abc=ZZZZZZ&d=PPPPPPPP"
如何检索通过POST
请求发送的值?
(如果重要的话,我使用的是 Apache 2.4)。
使用 POST 方法时。 POST 值将作为 CGI 程序的输入。 所以在 bash 中只需使用
read POST_STRING
POST_STRING 然后包含与 QUERY_STRING 保存 GET 请求的值相同格式的 POST 值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.