繁体   English   中英

将HTML表单数据传递给C脚本和CGI标准行为

[英]Passing HTML form data to C script and CGI standard behavior

我正在尝试使用C编写登录脚本。我想知道如何将HTML表单数据传递到后端C脚本。 我是C的新手(来自perl)

就是这样吗

 <form action="test.c"> or <form action="test.a"> 

脚本如何明确区分用户名和密码? 之前,我只需要这样做(在perl中):

 $username = $cgi->param("username"); 

我现在该如何在C中做到这一点。我试图完全避免使用CGI。

编辑1:

  1. 看来我也需要知道CGI的基本工作原理(简而言之)。 我猜想,浏览器是CGI的一种编译器吗? 如果没有,那是阿帕奇吗?

  2. 由于C不是一种解释型语言,CGI如何与C一起使用? 在perl中,我可以简单地执行以下操作:

     #!/usr/bin/perl print "Content-type: text/html\\n\\n"; print "Hello, World."; 

我该如何在C语言中执行此操作?

Edit2:好的,我在stackoverflow上的cgi标签下浏览了先前回答的问题。

这似乎是最受好评的: 什么是通用网关接口(CGI)?

但它仍然不清楚一些事情,我在这里要问。

由于RFC3875只是一个参考文档,因此没有最终的标准。

  1. 谁实施CGI协议? 谁在诸如Apache之类的服务器上定义其“标准行为”。

  2. 在现代环境中,C文件如何与CGI一起使用。 请使用“ Hello World!”进行详细说明。 作为对表单提交的回应。

试图帮助您有点困难。 您的问题,特别是语句“我正试图避免使用CGI”意味着您缺少概念概述。 为了“避免CGI”,您需要将其替换为一种接收,解析和响应HTTP请求的机制。 这意味着(可能)编写HTTP服务器。 C是一种编译语言。 当您怀疑是否可以执行action =“ test.c”时,它向您表明您缺少C不是一种解释语言的事实。

您可以使用类似微小的httpd之类的方法来入门。

有关使用C的cgi的站点将为您提供帮助。 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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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