Nya*_*baa 4 bash shell cgi web-applications apache2
我在 Ubuntu 上有一个小的 apache2 CGI 应用程序。CGI 处理程序是 bash shell 脚本。
我的客户端应用程序是search.html:
<html>
<body>
<form action="/cgi-bin/search.sh" method="post">
<input type="text" name="searchKey" size="10"></input>
<input type=SUBMIT value="search">
<form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
首先,我只想在服务器端捕获“searchKey”参数的值。我试着跟随,但什么也没显示。
search.sh是:
#!/bin/bash
echo Content-type:text/plain
echo ""
echo $SEARCHKEY
Run Code Online (Sandbox Code Playgroud)
伙计们,你能告诉我如何在服务器端捕获参数的值吗?
更新
感谢您的所有回答。我知道要获得 post 请求的值需要从 STDIN 读取数据。
我按照 Ithcy 的建议尝试如下
#!/bin/bash
echo post=$(</dev/stdin)
echo 'content length:'$CONTENT_LENGTH
echo 'content:'$post
Run Code Online (Sandbox Code Playgroud)
它只显示:
content length:30
content:
Run Code Online (Sandbox Code Playgroud)
为什么内容什么都没有?我需要在 Apache 服务器上做更多配置来读取发布数据吗?谢谢
POST 将通过 STDIN。
#!/bin/bash
POST=$(</dev/stdin)
echo $POST
Run Code Online (Sandbox Code Playgroud)
但是如果可以的话,你真的应该考虑使用 perl(或 python、PHP 等),正如格伦杰克曼所建议的那样。