1

したがって、私のC ++ CGIプログラムは、いくつかのリンクを含むhtmlページを生成します。同じC++プロセス内で、このリンクをクリックした後、クリックされたハイパーリンクに応じてコンテンツを含む他のページが表示されるようにするにはどうすればよいですか?

今のところ、getenvでURLパラメータを読み取る他のC ++ CGIプログラムがあるというバリアントがあり、このパラメータは最初のページからのリンクごとに異なります。しかし、1つのC++プロセスでこれを行う方法が必要だと思います。

4

1 に答える 1

0

CGIプログラムのメモリにセッション情報を保存しようとしています。CGIプロトコルはそれ自体ではこれを許可しません。セッション情報は別の場所に保存する必要があります。オプションは次のとおりです。

  • 計算結果がURLに埋め込まれているHTMLを出力して、次の実行でそれらの結果が表示されるようにします(その情報が機密である場合、これはセキュリティ上の欠陥です。安全な暗号化でこれを克服できます)。
  • 結果をC++プログラムメモリ(ファイル?)の外に保存します。次に、Cookieを出力するか、URLにセッション識別子を埋め込みます。次の実行では、セッションIDを使用してルックアップを実行し、それらの結果をサーバーからロードします。スペースの枯渇を避けるために、古いデータを解放するように注意する必要があります。
  • C ++アプリケーションをWebサーバーに変えましょう!C ++アプリケーションはHTTPリクエストに応答します(CGIアプリケーションだけではありません)。それはやり過ぎかもしれませんが、必要かもしれません。それを支援する無料のオープンソースライブラリがあると思います。または、Apache(httpd)モジュールを開発することもできます。

それがあなたの質問に答えることを願っています!

于 2012-12-02T23:58:50.137 に答える