0

各質問を 1 つずつ表示するアンケートを作成しています。私はフォームがどのように機能するかについて少し錆びているので、それが問題かもしれませんが、ここに私の質問があります.

プログラムはファイルから質問を読み取り、ページに表示します。基本的に、フォームを使用して質問を表示し、次または前のボタンを介して回答を提出し、そこから次の質問に移動したいと考えています。

注目に値するのは、CGI を使用しなければならないことです (ただし、これはあまり影響しないと思います)。

私が理解していることから、現在の質問番号を追跡するには、ある種の隠しフィールドを使用する必要がありますが、これは正確ですか?

4

2 に答える 2

1

CPANからCGI::Sessionと呼ばれるモジュールがあります。このモジュールは、ご想像のとおり、セッション管理を処理します。そうすることで、CGIアプリケーションの状態を維持しやすくなります。特にCGI::Sessionでカバーされていない方向性が必要な場合を除いて、セッション/状態管理の面倒な作業を行わせることをお勧めします。

非表示フィールドを使用して、ある状態から次の状態に情報を渡すことは可能ですが、他の状態よりも信頼性の高い方法があります。そして、隠しフィールドはいくつかのテクニックの1つにすぎません。GETリクエストは、あるリクエストから次のリクエストにセッション情報を渡す場合があります。隠しフィールドも。クッキーも。ただし、現在および次の質問番号を渡すよりも、特定のセッションを識別するハッシュ値を渡す方がよい場合がよくあります。これは、スクリプトが処理することを意図していない方法で誰かが操作するのが困難です。この段落のポイントは、CGI :: Sessionを使用すると、セッション管理の実装についてそれほど心配する必要がないということです。これにより、何かを成し遂げることに集中することができます(Webアプリケーションの主な目的)。

于 2011-05-25T20:57:19.943 に答える
0

セッション管理を行うにはいくつかの方法がありますが、「隠し」フィールドに物を保存することに頼らないでください。応答をデータベースに書き戻さないのはなぜですか? そうすれば、最初のラウンドでアンケートを完了できなかった場合でも、アンケートを再開できます。

于 2011-05-25T15:25:41.607 に答える