0

私はcgiページindex.cgiとログインフォームの1つのテンプレートを持っています

index.cgi

use Singleton::CGI;
use Singleton::Session;

$q = new Singleton::CGI();
$session = new Singleton::Session();
$template = HTML::Template->new(filename => 'login.tmpl');

print $q->header;
print $q->start_html("hello perl");
print $q;   # printing hash of CGI Object.
print $session;
print $template->output;
print $q->end_html;


if($q->param('submit')){

print $q->header;
print $q->start_html("hello user");
print $q;   # printing hash of CGI Object.
print $session;
print $q->param('text');
print $q->end_html;

}

login.tmpl:

<form action="/" method="post">
  <input type="text" name="text"/>
  <input type="submit" name="submit" value="submit"/>
  </form>

index.cgiを取得したときの出力は次のとおりです

CGI=HASH(0xbe0510)
SingletonSession=HASH(0x1e67ee60)

フォームと一緒

次にフォームを送信すると、CGI=HASH(0xe2ac500) がフォームの入力値と一緒に表示されます。SingletonSession=HASH(0x115dc7a0)

私の要件によれば、セッション オブジェクトを 1 つだけ取得する必要があります。

アプリケーション全体でクエリとセッション オブジェクトを 1 つだけ維持するにはどうすればよいですか?

4

1 に答える 1

3

Web サーバーは、受信したリクエストごとにスクリプトを実行するため、同時に実行されていない 2 つのプロセス間で変数を共有するように求めています。不可能。そのため、情報の永続性を提供するためにセッションが使用されます。

于 2013-02-26T03:28:42.143 に答える