#!/usr/bin/perl use strict; use CGI; use CGI::Session::DB_File; my $title = "Test Hidden Fields"; my $cgi = CGI->new; my $sid = $cgi->cookie('session_id') || undef; my $Session = new CGI::Session::DB_File($sid, {FileName=>'/var/www/cgi-bin/nobody/sessions.db', LockDirectory=>'/var/www/cgi-bin/nobody'}); if ($sid) { $Session->load_param($cgi) } $sid ||=$Session->id; my $cookie = $cgi->cookie(-name=>'session_id', -value=>$sid, -expires=>"+5m"); print $cgi->header( -cookie=>$cookie, -start_html=>$title); print "
", $cgi->h1($title), "
"; if ($cgi->param('name')) { $Session->param(-name=>'name', -value=>$cgi->param('name')); $Session->param(-name=>'age', -value=>$cgi->param('age')); $Session->save_param($cgi); &add_age; } elsif ($cgi->param('test')) { &add_age; } else { print $cgi->start_form, "Name: ", $cgi->textfield('name'), "Age: ", $cgi->textfield('age'), $cgi->p, $cgi->submit('Next'), " ", $cgi->defaults("Clear"), $cgi->end_form; } print $cgi->end_html; sub add_age { my $age = $Session->param('age'); ++$age; print $Session->param('name'), "\'s new age is $age"; $Session->param(-name=>'age', -value=>$age); $Session->save_param($cgi); print $cgi->start_form, $cgi->hidden(-name=>'test', -value=>'test'), $cgi->submit('Next'), $cgi->end_form; }