【发布时间】:2018-04-09 12:28:27
【问题描述】:
C 程序:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *data = getenv("QUERY_STRING");
char userName[30];
sscanf(data,"uname=%s", userName);
printf ("Content-Type: text/html\n\n");
printf ("<html>");
printf ("<head> </head>");
printf ("<body>");
printf ("<h2 style=""text-align:center;color=red"";> %s </h2>", userName);
printf ("</body> </html>");
return 0;
}
HTML:
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<form action="echo.cgi" method="get">
Please enter your name: <input type="text" name="uname"> <br>
<input type="submit" value="Submit">
</form>
</body>
</html>
我正在尝试使用 C 程序制作一个简单的 html 页面,该页面仅显示带有 GET from html 的变量 uname。我试图通过首先将 C 编译为 CGI 来做到这一点:
gcc echo.c -o echo.cgi
它做得很好。但是,每当我按下提交时,cgi 文件就会开始下载。我做错了什么
【问题讨论】:
-
看起来像是服务器配置错误。您是否正确配置了 CGI 接口?
-
你的表单中的“get”是我不经常看到的东西,有机会修复它吗?
-
另外,它似乎不是“Content-Length”标头,大多数浏览器都在寻找它来做出正确的决定?
-
你的
echo.cgi二进制文件在cgi-bin子目录下吗? -
但是,每当我按下提交时,cgi 文件就会开始下载。 你到底是什么意思?你打开浏览器到
http://server/path/file.html了吗?还是您正在做一些不同的事情,例如在网络浏览器中本地打开 HTML 文件?