4

我正在用 C 语言实现一个 Apache 2.0.x 模块,以与我们现有的产品进​​行交互。我需要处理 FORM 数据,很可能使用 POST,但我也想处理 GET 案例。

Nick Kew 的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 代码更容易访问的结构中?我找不到任何相关的东西,但这似乎是一个应该有解决方案的共同需求。

4

3 回答 3

2

我切换到 G-WAN,它为 GET 和 POST 表单(以及许多其他好东西,如图表、GIF I/O 等)提供了一个透明的 ANSI C 脚本接口。

GWAN 开发人员页面上提供了几个 AJAX 示例

希望能帮助到你!

于 2010-12-16T11:47:20.703 回答
0

虽然从表面上看,这似乎很常见,但 apache 上的 C 语言中的 cgi 样式的内容处理程序却很少见。大多数人只使用 CGI、FastCGI 或无数框架,例如 mod_perl。

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

如果完全有可能在 apache 模块之外编写处理程序,我会鼓励您采用这种策略。

于 2008-09-19T18:39:16.693 回答
0

我还没有尝试过任何解决方案,因为我自己也对“Apache Modules”书中的示例感到沮丧,因此我发现了这个 SO 问题。但到目前为止,这是我发现的。当我进行更多研究时,我会更新这个答案。

幸运的是,现在这似乎是 Apache 2.4 中使用该功能解决的问题ap_parse_form_data

不知道这与您的示例相比有多好,但这里有一个更简洁的read_post函数

也有mod_form可能是有价值的。

于 2012-10-20T14:22:08.003 回答