|
NAMEHTML::StickyQuery - add sticky QUERY_STRINGSYNOPSISuse HTML::StickyQuery; # create an object my $s = HTML::StickyQuery->new( regexp => '\.cgi$', abs => 0, keep_original => 1, ); print $s->sticky( file => 'foo.html', param => { SESSIONID => 'xxx' } ); or my $q = CGI->new; print $s->sticky( file => 'foo.html', param => $q, sticky_keys => [qw(SESSIONID)] ); DESCRIPTIONthis module is a sub class of HTML::Parser. parse HTML document and add QUERY_STRING to href attributes. Handy for maintaining state without cookie or something, transparently.if you want to use sticky CGI data via FORM. it is better to use HTML::FillInForm. CONSTRUCTOR
METHODS
EXAMPLESKEEP SESSION IDtypical example of CGI application using session.use Apache::Session,HTML::Template and HTML::StickyQuery template file: <html> <head> <title>Session Test</title> </head> <body> COUNT: <TMPL_VAR NAME="count"><br> <hr> <a href="session.cgi">countup</a><br> <hr> </body> </html> session.cgi: #!perl use strict; use CGI; use HTML::Template; use HTML::StickyQuery; use Apache::Session::DB_File; my %session; my $cgi = CGI->new; # create session. my $id = $cgi->param('SESSIONID'); tie %session,'Apache::Session::DB_File',$id,{ FileName => './session.db', LockDirectory => './lock' }; $session{count} = $session{count} + 1; my $tmpl = HTML::Template->new(filename => './test.html'); $tmpl->param(count => $session{count}); my $output = $tmpl->output; # no COOKIE print $cgi->header; my $stq = HTML::StickyQuery->new; print $stq->sticky( scalarref => \$output, param => { SESSIONID => $session{_session_id} } ); KEEP SEARCH WORD IN HTML PAGINGtemplate file (simplified):<A href="./search.cgi?pagenum=<TMPL_VAR name=nextpage>">Next 20 results</A> search.cgi: #!perl use CGI; use HTML::StickyQuery; use HTML::Template; my $query = CGI->new; my $tmpl = HTML::Template->new(filename => 'search.html'); # do searching with $query and put results into $tmpl # ... # set next page offset $tmpl->param(nextpagee => $query->param('pagenum') + 1); my $output = $tmpl->output; my $sticky = HTML::StickyQuery->new(regexp => qr/search\.cgi$/); print $query->header, $sticky->sticky( scalarref => \$output, param => $qyery, sticky_keys => [qw(search)] ); AUTHORIKEBE Tomohiro <ikebe@livedoor.jp>SEE ALSOHTML::Parser HTML::FillInFormCREDITSFixes,Bug Reports.Tatsuhiko Miyagawa <miyagawa@bulknews.net> COPYRIGHTCopyright(C) 2002 IKEBE Tomohiro All rights reserved.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Visit the GSP FreeBSD Man Page Interface. |