如何使超链接调用相同的C++CGI进程

How to make hyperlinks call same C++ CGI process

本文关键字:C++CGI 进程 何使 超链接 调用      更新时间:2023-10-16

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

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

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

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

希望这能回答你的问题!