用C语言处理Apache模块的FORM

时间:2020-03-06 14:27:14  来源:igfitidea点击:

我正在用C实现一个Apache 2.0.x模块,以与我们现有的产品接口。我需要处理FORM数据,最有可能使用POST,但我也想处理GET情况。

尼克·邱(Nick Kew)的" Apache模块"(Apache Modules)书中有一节介绍处理表单数据。它提供了POST和GET的代码示例,这些示例以表格形式返回键+值对的apr_hash_t。 parse_form_from_POST将水桶大队编组起来并将其展平到缓冲区中,而parse_form_from_GET可以简单地引用URL。这两个例程都依赖于parse_form_from_string例程来遍历每个定界字段并将信息提取到哈希表中。

那就好了,但是似乎比在模块中添加几百行代码更简单的方法了。在apache,apr或者apr-util中是否存在现有的模块或者例程,以将字段名和相关数据从GET或者POST FORM提取到C代码可以更容易访问的结构中?我找不到任何相关的东西,但这似乎是应该解决的普遍需求。

解决方案

从表面上看,这似乎很常见,但基于Apache的C语言中的cgi风格的内容处理程序很少见。大多数人只使用CGI,FastCGI或者无数种框架,例如mod_perl。

我编写的大多数C apache模块都旨在以适用于每个请求的特定,有针对性的方式来修改Web服务器的特定行为。

如果有可能在apache模块之外编写处理程序,我鼓励我们采用该策略。

我改用G-WAN,它为GET和POST表单(以及许多其他功能,如图表,GIF I / O等)提供透明的ANSI C脚本接口。

GWAN开发人员页面上提供了一些AJAX示例

希望能帮助到你!