我试图在C中创建一个登录脚本。我想知道,我如何将HTML表单数据传递给我的后端c脚本。我是C的新手(来自perl)
这样做?
<form action="test.c"> or <form action="test.a">
脚本如何在用户名和密码之间明确区分?早些时候,我只需要这样做(在perl中):
$username = $cgi->param("username");
我现在怎样才能在C中这样做。我试图避免使用CGI。
编辑1:
我似乎还需要知道,CGI基本上是如何工作的(简而言之)。我猜,浏览器是CGI的一种编译器?如果没有,那么它是apache吗?
由于C不是解释语言,CGI如何与C一起使用?在perl中,我可以做到:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";
我如何在C中执行此操作?
Edit2:好的,我在stackoverflow上的cgi标签下找到了之前回答的问题。
这似乎是投票最多的一个:What is Common Gateway Interface (CGI)?
但它仍然没有清楚一些事情,我在这里问。
由于RFC3875只是一个信息性文档,并且没有最终的标准。
谁实施CGI协议?谁定义了其标准行为&#34;在Apache等服务器上。
在现代环境中,C文件如何与CGI配合使用。请详细说明使用&#34; Hello World!&#34;作为对表单提交的回复。
答案 0 :(得分:2)
试图帮助你有点困难。你的问题,特别是声明&#34;我试图完全避免使用CGI&#34;暗示您错过了概念性概述。为了避免CGI&#39;您需要将其替换为接收,解析和响应HTTP请求的机制。这意味着(可能)编写HTTP服务器。 C是一种编译语言。当你想知道你能不能做到的时候 行动=&#34; test.c的&#34;它告诉我,你错过了C不是解释性语言的事实。
您可以使用类似tiny httpd的内容来帮助您入门。
这个关于cgi using C的网站会对您有所帮助。如何实施CGI最终由实施者自行决定。一个hello world程序就像
的编译可执行文件一样简单#include <stdio.h>
int main(void) {
printf("Content-Type: text/plain;charset=us-ascii\n\n");
printf("Hello world\n\n");
return 0;
}