1

所以我的 C++ CGI 程序会生成一些带有多个链接的 html 页面。如何在同一个 C++ 进程中使单击此链接后显示其他页面的内容取决于单击的超链接?

现在我只有一个变体,将有其他 C++ CGI 程序将使用 getenv 读取 URL 参数,并且这个参数对于我的第一页中的每个链接都是不同的。但我相信必须有一种方法可以用一个 C++ 进程来做到这一点。

4

1 回答 1

0

您正试图将会话信息存储在 CGI 程序的内存中。CGI 协议本身不允许这样做。您必须将会话信息存储在其他地方。您的选择是:

  • 输出 HTML,您的计算结果嵌入在 URL 中,以便下一次执行将看到这些结果(如果该信息是敏感的,这是一个安全漏洞 - 您可以通过安全加密来克服这个问题)。
  • 将结果存储在 C++ 程序内存(文件?)之外。然后输出 cookie 或在 URL 中嵌入会话标识符。在下一次执行中,您使用会话标识符执行查找,然后从您的服务器加载这些结果。您必须注意释放旧数据以避免空间耗尽。
  • 将您的 C++ 应用程序变成 Web 服务器!您的 C++ 应用程序将响应 HTTP 请求(它不仅仅是一个 CGI 应用程序)。这可能是矫枉过正,但可能是必要的。我认为有免费的开源库可以帮助您,或者您可以开发一个 Apache (httpd) 模块。

希望这能回答你的问题!

于 2012-12-02T23:58:50.137 回答