繁体   English   中英

如何从用 bash 编写的 CGI 脚本中获取 POST 参数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM