cgi federal
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 593
CGIFeed
CGIFeed is a CGI based feed reader. more>>
CGIFeed is a CGI program that reads news feeds (via XML/RDF/RSS) and prepares HTML pages for them.
You can enter new feeds through the Web page, and edit the name and update interval for each feed.
<<lessYou can enter new feeds through the Web page, and edit the name and update interval for each feed.
Download (0.009MB)
Added: 2005-04-26 License: Free To Use But Restricted Price:
1641 downloads
CGI::Enurl 1.07
CGI::Enurl.pm is a Perl module for URL-encoding strings and hashes. more>>
CGI::Enurl.pm is a Perl module for URL-encoding strings and hashes.
SYNOPSIS
use CGI::Enurl;
%hash = (name=>Jenda Krynicky,address=>Nerudova 1016);
print "Location: http://$ENV{SERVER_NAME}/cgi-bin/do.pl?",enurl %hash,"nn";
This is a little module made for CGI scripting. It encodes the parameters to be passed to a CGI. It does nothing more, so its much smaller and loads more quickly.
Functions
enurl STRING
enurl ARRAY
enurl HASH
Encodes the parameter. If the parameter is a single string it encodes it and returns the encoded form.
If it is an array or a reference to an array it encodes all items and returns them joined by &.
If it is a hash it encodes the values and return a querystring in form "key2=encoded_value1&key2=encoded_value2&...".
!!! Please note that a hash in a list context returns a list of all keys and values. This means that if you call enurl(%hash) you will NOT get what you may thing you should. You HAVE to use enurl(%hash) !!!
enURL STRING
Encodes the parameter, this version doesnt encode = and & characters, so you should make sure they are not present in the data.
Notice the difference :
enurl a&b=f o o => a%26b%3Df+o+o
enURL a&b=f o o => a&b=f+o+o
$CGI::Enurl::ParamSeparator
You may specify another character to be used as the parameter separator. Simply set this variable to the character (or string) you want to use.
The default value is &
$CGI::Enurl::KeepUnencoded
This variable contains the characters that should stay unencoded. Please keep in mind that the string will be interpolated into a regexp in a [^...] group!
Any change of this variable will be ignored after the first call to enurl or enURL. (Im using /o switch in the regexp.) So if you want to change the variable you should do it as soon as posible. You may do that even before you "use" the module!
The default value is a-zA-Z 0-9_-@.=
<<lessSYNOPSIS
use CGI::Enurl;
%hash = (name=>Jenda Krynicky,address=>Nerudova 1016);
print "Location: http://$ENV{SERVER_NAME}/cgi-bin/do.pl?",enurl %hash,"nn";
This is a little module made for CGI scripting. It encodes the parameters to be passed to a CGI. It does nothing more, so its much smaller and loads more quickly.
Functions
enurl STRING
enurl ARRAY
enurl HASH
Encodes the parameter. If the parameter is a single string it encodes it and returns the encoded form.
If it is an array or a reference to an array it encodes all items and returns them joined by &.
If it is a hash it encodes the values and return a querystring in form "key2=encoded_value1&key2=encoded_value2&...".
!!! Please note that a hash in a list context returns a list of all keys and values. This means that if you call enurl(%hash) you will NOT get what you may thing you should. You HAVE to use enurl(%hash) !!!
enURL STRING
Encodes the parameter, this version doesnt encode = and & characters, so you should make sure they are not present in the data.
Notice the difference :
enurl a&b=f o o => a%26b%3Df+o+o
enURL a&b=f o o => a&b=f+o+o
$CGI::Enurl::ParamSeparator
You may specify another character to be used as the parameter separator. Simply set this variable to the character (or string) you want to use.
The default value is &
$CGI::Enurl::KeepUnencoded
This variable contains the characters that should stay unencoded. Please keep in mind that the string will be interpolated into a regexp in a [^...] group!
Any change of this variable will be ignored after the first call to enurl or enURL. (Im using /o switch in the regexp.) So if you want to change the variable you should do it as soon as posible. You may do that even before you "use" the module!
The default value is a-zA-Z 0-9_-@.=
Download (0.004MB)
Added: 2007-07-19 License: Perl Artistic License Price:
828 downloads
CGI::AppBuilder::Table 0.12
CGI::AppBuilder::Table module contains a configuration initializer. more>>
CGI::AppBuilder::Table module contains a configuration initializer.
SYNOPSIS
use CGI::AppBuilder::Table;
my $ab = CGI::AppBuilder::Table->new(
ifn, my_init.cfg, opt, vhS:a:);
my ($q, $ar, $ar_log) = $ab->start_app($0, %ARGV);
print $ab->disp_form($q, $ar);
This class provides methods for reading and parsing configuration files.
new (ifn => file.cfg, opt => hvS:)
This is a inherited method from CGI::AppBuilder. See the same method in CGI::AppBuilder for more details.
html_table($arf, $cns, $br)
Input variables:
$arf - array ref containing the content of the table
$cns - column names separated by comma or
AUTO|AH|HASH - use $k in AH Array ${$arf}[$i]{$k}
$br - hash array ref for table format, it contains
css_table - CSS class name for < TABLE>
atr_table - attribute parameters for < TABLE>
css_tr - CSS class name for < TR>
atr_tr - attribute parameters for < TR>
atr_tr_odd - attribute parameters for ODD < TR>
atr_tr_even - attribute parameters for EVEN < TR>
css_tr_odd - CSS class name for ODD < TR>
css_tr_even - CSS class name for EVEN < TR>
css_select - CSS class name for < SELECT ...>
css_input - CSS class name for < INPUT type=input ...>
atr_sel - attributes for itemized < SELECT ...> for instance:
atr_sel = {
var1 => style="display:none",
var2 => style="display:block",
var3 => class="FormSel",
}
atr_inp - attributes for itemized < INPUT type=input ...>
css_td - CSS class name for < TD>
atr_td - attribute parameters for < TD>
atr_cell - an array ref to attribute parameters for each cell
${$br}{atr_cell}[$i][$j]
esc_vars - a list of escaped variables separated by comma.
fh_out - output file handler
cns_desc - hash ref containing column name description
tab_caption - table caption/header
tab_footer - table footer/notes
<<lessSYNOPSIS
use CGI::AppBuilder::Table;
my $ab = CGI::AppBuilder::Table->new(
ifn, my_init.cfg, opt, vhS:a:);
my ($q, $ar, $ar_log) = $ab->start_app($0, %ARGV);
print $ab->disp_form($q, $ar);
This class provides methods for reading and parsing configuration files.
new (ifn => file.cfg, opt => hvS:)
This is a inherited method from CGI::AppBuilder. See the same method in CGI::AppBuilder for more details.
html_table($arf, $cns, $br)
Input variables:
$arf - array ref containing the content of the table
$cns - column names separated by comma or
AUTO|AH|HASH - use $k in AH Array ${$arf}[$i]{$k}
$br - hash array ref for table format, it contains
css_table - CSS class name for < TABLE>
atr_table - attribute parameters for < TABLE>
css_tr - CSS class name for < TR>
atr_tr - attribute parameters for < TR>
atr_tr_odd - attribute parameters for ODD < TR>
atr_tr_even - attribute parameters for EVEN < TR>
css_tr_odd - CSS class name for ODD < TR>
css_tr_even - CSS class name for EVEN < TR>
css_select - CSS class name for < SELECT ...>
css_input - CSS class name for < INPUT type=input ...>
atr_sel - attributes for itemized < SELECT ...> for instance:
atr_sel = {
var1 => style="display:none",
var2 => style="display:block",
var3 => class="FormSel",
}
atr_inp - attributes for itemized < INPUT type=input ...>
css_td - CSS class name for < TD>
atr_td - attribute parameters for < TD>
atr_cell - an array ref to attribute parameters for each cell
${$br}{atr_cell}[$i][$j]
esc_vars - a list of escaped variables separated by comma.
fh_out - output file handler
cns_desc - hash ref containing column name description
tab_caption - table caption/header
tab_footer - table footer/notes
Download (0.012MB)
Added: 2007-07-19 License: Perl Artistic License Price:
828 downloads
CGI::Portable 0.51
CGI::Portable is a framework for server-generic web apps. more>>
CGI::Portable is a framework for server-generic web apps.
SYNOPSIS
Content of thin shell "startup_cgi.pl" for CGI or Apache::Registry env:
#!/usr/bin/perl
use strict;
use warnings;
require CGI::Portable;
my $globals = CGI::Portable->new();
use Cwd;
$globals->file_path_root( cwd() ); # let us default to current working directory
$globals->file_path_delimiter( $^O=~/Mac/i ? ":" : $^O=~/Win/i ? "" : "/" );
$globals->set_prefs( config.pl );
$globals->current_user_path_level( 1 );
require CGI::Portable::AdapterCGI;
my $io = CGI::Portable::AdapterCGI->new();
$io->fetch_user_input( $globals );
$globals->call_component( DemoAardvark );
$io->send_user_output( $globals );
1;
Content of thin shell "startup_socket.pl" for IO::Socket::INET:
#!/usr/bin/perl
use strict;
use warnings;
print "[Server $0 starting up]n";
require CGI::Portable;
my $globals = CGI::Portable->new();
use Cwd;
$globals->file_path_root( cwd() ); # let us default to current working directory
$globals->file_path_delimiter( $^O=~/Mac/i ? ":" : $^O=~/Win/i ? "" : "/" );
$globals->set_prefs( config.pl );
$globals->current_user_path_level( 1 );
require CGI::Portable::AdapterSocket;
my $io = CGI::Portable::AdapterSocket->new();
use IO::Socket;
my $server = IO::Socket::INET->new(
Listen => SOMAXCONN,
LocalAddr => 127.0.0.1,
LocalPort => 1984,
Proto => tcp
);
die "[Error: cant setup server $0]" unless $server;
print "[Server $0 accepting clients]n";
while( my $client = $server->accept() ) {
printf "%s: [Connect from %s]n", scalar localtime, $client->peerhost;
my $content = $globals->make_new_context();
$io->fetch_user_input( $content, $client );
$content->call_component( DemoAardvark );
$io->send_user_output( $content, $client );
close $client;
printf "%s http://%s:%s%s %sn", $content->request_method,
$content->server_domain, $content->server_port,
$content->user_path_string, $content->http_status_code;
}
1;
^The CGI::Portable class is a framework intended to support complex web applications that are easily portable across servers because common environment-specific details are abstracted away, including the file system type, the web server type, and your projects location in the file system or uri hierarchy.
Also abstracted away are details related to how users of your applications arrange instance config/preferences data across single or multiple files, so they get more flexability in how to use your application without you writing the code to support it. So your apps are easier to make data-controlled.
Application cores would use CGI::Portable as an interface to the server they are running under, where they receive user input through it and they return a response (HTML page or other data type) to the user through it. Since CGI::Portable should be able to express all of their user input or output needs, your application cores should run well under CGI or mod_perl or IIS or a Perl-based server or a command line without having code that supports each types individual needs.
That said, CGI::Portable doesnt contain any user input/output code of its own, but allows you to use whatever platform-specific code or modules you wish between it and the actual server. By using my module as an abstraction layer, your own program core doesnt need to know which platform-specific code it is talking to.
As a logical extension to the interfacing functionality, CGI::Portable makes it easier for you to divide your application into autonomous components, each of which acts like it is its own application core with user input and instance config data provided to it and a recepticle for its user output provided. This module would be an interface between the components.
This class has 5 main types of functionality, or sets of properties that exist in parallel but are fully/mostly independant from each other. As such, it could conceptually be split into 5 physical modules, some of which could be used on their own, but they are actually contained in this one module for simplicity of use (just one object for user code to keep track of). The 5 functionality sets could be called: Errors, Files, Request, Response, Misc.
<<lessSYNOPSIS
Content of thin shell "startup_cgi.pl" for CGI or Apache::Registry env:
#!/usr/bin/perl
use strict;
use warnings;
require CGI::Portable;
my $globals = CGI::Portable->new();
use Cwd;
$globals->file_path_root( cwd() ); # let us default to current working directory
$globals->file_path_delimiter( $^O=~/Mac/i ? ":" : $^O=~/Win/i ? "" : "/" );
$globals->set_prefs( config.pl );
$globals->current_user_path_level( 1 );
require CGI::Portable::AdapterCGI;
my $io = CGI::Portable::AdapterCGI->new();
$io->fetch_user_input( $globals );
$globals->call_component( DemoAardvark );
$io->send_user_output( $globals );
1;
Content of thin shell "startup_socket.pl" for IO::Socket::INET:
#!/usr/bin/perl
use strict;
use warnings;
print "[Server $0 starting up]n";
require CGI::Portable;
my $globals = CGI::Portable->new();
use Cwd;
$globals->file_path_root( cwd() ); # let us default to current working directory
$globals->file_path_delimiter( $^O=~/Mac/i ? ":" : $^O=~/Win/i ? "" : "/" );
$globals->set_prefs( config.pl );
$globals->current_user_path_level( 1 );
require CGI::Portable::AdapterSocket;
my $io = CGI::Portable::AdapterSocket->new();
use IO::Socket;
my $server = IO::Socket::INET->new(
Listen => SOMAXCONN,
LocalAddr => 127.0.0.1,
LocalPort => 1984,
Proto => tcp
);
die "[Error: cant setup server $0]" unless $server;
print "[Server $0 accepting clients]n";
while( my $client = $server->accept() ) {
printf "%s: [Connect from %s]n", scalar localtime, $client->peerhost;
my $content = $globals->make_new_context();
$io->fetch_user_input( $content, $client );
$content->call_component( DemoAardvark );
$io->send_user_output( $content, $client );
close $client;
printf "%s http://%s:%s%s %sn", $content->request_method,
$content->server_domain, $content->server_port,
$content->user_path_string, $content->http_status_code;
}
1;
^The CGI::Portable class is a framework intended to support complex web applications that are easily portable across servers because common environment-specific details are abstracted away, including the file system type, the web server type, and your projects location in the file system or uri hierarchy.
Also abstracted away are details related to how users of your applications arrange instance config/preferences data across single or multiple files, so they get more flexability in how to use your application without you writing the code to support it. So your apps are easier to make data-controlled.
Application cores would use CGI::Portable as an interface to the server they are running under, where they receive user input through it and they return a response (HTML page or other data type) to the user through it. Since CGI::Portable should be able to express all of their user input or output needs, your application cores should run well under CGI or mod_perl or IIS or a Perl-based server or a command line without having code that supports each types individual needs.
That said, CGI::Portable doesnt contain any user input/output code of its own, but allows you to use whatever platform-specific code or modules you wish between it and the actual server. By using my module as an abstraction layer, your own program core doesnt need to know which platform-specific code it is talking to.
As a logical extension to the interfacing functionality, CGI::Portable makes it easier for you to divide your application into autonomous components, each of which acts like it is its own application core with user input and instance config data provided to it and a recepticle for its user output provided. This module would be an interface between the components.
This class has 5 main types of functionality, or sets of properties that exist in parallel but are fully/mostly independant from each other. As such, it could conceptually be split into 5 physical modules, some of which could be used on their own, but they are actually contained in this one module for simplicity of use (just one object for user code to keep track of). The 5 functionality sets could be called: Errors, Files, Request, Response, Misc.
Download (0.093MB)
Added: 2006-08-01 License: Perl Artistic License Price:
1182 downloads
CGI::Explorer 2.07
CGI::Explorer is a class to manage displaying a hash tree of data, for use in CGI scripts. more>>
CGI::Explorer is a class to manage displaying a hash tree of data, for use in CGI scripts.
Synopsis
Install /assets/css/explorer/xtree.css, /assets/js/explorer/xtree.js, and /assets/images/explorer/*, as per the installation instructions, below.
Then run the demos example/bootstrap-hobbit.pl, which creates a database table using DBIx::Hash2Table, and then example/hobbit.cgi, which reads a database table using DBIx::Table2Hash.
Or, more simply, run example/hobbit-hash.cgi which has the same hash directly in the source code.
CGI::Explorer is a pure Perl module.
It is a support module for CGI scripts. It manages a hash, a tree of data, so that the script can display the tree, and the user can single-click on the [+] or [-] of a node, or double-click on the icon of a node, to open or close that nodes sub-tree.
Opening a node reveals all children of that node, and restores their open/closed state.
Closing a node hides all children of that node.
When you click on the text of a node, the nodes id is submitted to the CGI script via the path info of the URL attached to that node. This path info mechanism can be overridden.
The id is assigned to the node when you call the method hash2tree(), which is where the module converts your hash into JavaScript.
Neither the module CGI.pm, nor any of that kidney, are used by this module.
<<lessSynopsis
Install /assets/css/explorer/xtree.css, /assets/js/explorer/xtree.js, and /assets/images/explorer/*, as per the installation instructions, below.
Then run the demos example/bootstrap-hobbit.pl, which creates a database table using DBIx::Hash2Table, and then example/hobbit.cgi, which reads a database table using DBIx::Table2Hash.
Or, more simply, run example/hobbit-hash.cgi which has the same hash directly in the source code.
CGI::Explorer is a pure Perl module.
It is a support module for CGI scripts. It manages a hash, a tree of data, so that the script can display the tree, and the user can single-click on the [+] or [-] of a node, or double-click on the icon of a node, to open or close that nodes sub-tree.
Opening a node reveals all children of that node, and restores their open/closed state.
Closing a node hides all children of that node.
When you click on the text of a node, the nodes id is submitted to the CGI script via the path info of the URL attached to that node. This path info mechanism can be overridden.
The id is assigned to the node when you call the method hash2tree(), which is where the module converts your hash into JavaScript.
Neither the module CGI.pm, nor any of that kidney, are used by this module.
Download (0.031MB)
Added: 2006-10-07 License: Perl Artistic License Price:
1112 downloads
CGI::FormBuilder 3.0501
CGI::FormBuilder is a Perl module to easily generate and process stateful forms. more>>
CGI::FormBuilder is a Perl module to easily generate and process stateful forms.
SYNOPSIS
use CGI::FormBuilder;
# Assume we did a DBI query to get existing values
my $dbval = $sth->fetchrow_hashref;
# First create our form
my $form = CGI::FormBuilder->new(
name => acctinfo,
method => post,
stylesheet => /path/to/style.css,
values => $dbval, # defaults
);
# Now create form fields, in order
# FormBuilder will automatically determine the type for you
$form->field(name => fname, label => First Name);
$form->field(name => lname, label => Last Name);
# Setup gender field to have options
$form->field(name => gender,
options => [qw(Male Female)] );
# Include validation for the email field
$form->field(name => email,
size => 60,
validate => EMAIL,
required => 1);
# And the (optional) phone field
$form->field(name => phone,
size => 10,
validate => /^1?-?d{3}-?d{3}-?d{4}$/,
comment => optional);
# Check to see if were submitted and valid
if ($form->submitted && $form->validate) {
# Get form fields as hashref
my $field = $form->fields;
# Do something to update your data (you would write this)
do_data_update($field->{lname}, $field->{fname},
$field->{email}, $field->{phone},
$field->{gender});
# Show confirmation screen
print $form->confirm(header => 1);
} else {
# Print out the form
print $form->render(header => 1);
}
<<lessSYNOPSIS
use CGI::FormBuilder;
# Assume we did a DBI query to get existing values
my $dbval = $sth->fetchrow_hashref;
# First create our form
my $form = CGI::FormBuilder->new(
name => acctinfo,
method => post,
stylesheet => /path/to/style.css,
values => $dbval, # defaults
);
# Now create form fields, in order
# FormBuilder will automatically determine the type for you
$form->field(name => fname, label => First Name);
$form->field(name => lname, label => Last Name);
# Setup gender field to have options
$form->field(name => gender,
options => [qw(Male Female)] );
# Include validation for the email field
$form->field(name => email,
size => 60,
validate => EMAIL,
required => 1);
# And the (optional) phone field
$form->field(name => phone,
size => 10,
validate => /^1?-?d{3}-?d{3}-?d{4}$/,
comment => optional);
# Check to see if were submitted and valid
if ($form->submitted && $form->validate) {
# Get form fields as hashref
my $field = $form->fields;
# Do something to update your data (you would write this)
do_data_update($field->{lname}, $field->{fname},
$field->{email}, $field->{phone},
$field->{gender});
# Show confirmation screen
print $form->confirm(header => 1);
} else {
# Print out the form
print $form->render(header => 1);
}
Download (0.16MB)
Added: 2007-03-06 License: Perl Artistic License Price:
962 downloads
CGI::Builder::Magic 1.31
CGI::Builder::Magic Perl module contains CGI::Builder and Template::Magic integration. more>>
CGI::Builder::Magic Perl module contains CGI::Builder and Template::Magic integration.
SYNOPSIS
# just include it in your build
use CGI::Builder
qw| CGI::Builder::Magic
|;
<<lessSYNOPSIS
# just include it in your build
use CGI::Builder
qw| CGI::Builder::Magic
|;
Download (0.015MB)
Added: 2007-08-01 License: Perl Artistic License Price:
816 downloads
CGI-Shell 0.21
CGI-Shell provides a shell using CGI, so everyone who has a CGI directory on a Web server can also have a shell on it. more>>
CGI-Shell provides a shell using CGI, so everyone who has a CGI directory on a Web server can also have a shell on it. It is something like telnet or SSH.
How to install?
make
make install (you have to be root)
How to uninstall?
make uninstall (you have to be root)
The server is distributed as binary - you can also compile it yourself with "make server", but its not recommendable.
Enhancements:
- PHP support (works not if system() call is disabled in PHP)
- configuration file
- bugfixes, little improvements
<<lessHow to install?
make
make install (you have to be root)
How to uninstall?
make uninstall (you have to be root)
The server is distributed as binary - you can also compile it yourself with "make server", but its not recommendable.
Enhancements:
- PHP support (works not if system() call is disabled in PHP)
- configuration file
- bugfixes, little improvements
Download (0.22MB)
Added: 2006-06-23 License: GPL (GNU General Public License) Price:
1226 downloads
CGI++ 0.8
CGI++ - C++ macro pre-processor that facilitates development of CGI/Database applications in C++. more>>
CGI++ is a C++ macro pre-processor that facilitates development of CGI/Database applications in C++. It will also process your HTML and generate form parsing classes with appropriate constructors.
Many desirable features are yet to be implemented, but you can use what is already available to speed up your C++ CGI/Database development by quite a bit. Feel free to send feature requests or bug reports.
If you would like to contribute to the CGI++ project, your efforts will be appreciated. The areas where I need most help are documentation and testing, especially documentation. I hate writing it, because Id rather be writing code but it needs to be done.
Installation:
You will need a C++ compiler with STL support to build and use CGI++. A clean compile is guaranteed on Linux and GNU 2.7, others still need to be tested, but you are free to give it a try. Installation is simple:
gunzip -c cgi++-0.8.tar.gz | tar xvf -
cd cgi++-0.8.tar.gz
./configure
make
su (if needed)
make install
<<lessMany desirable features are yet to be implemented, but you can use what is already available to speed up your C++ CGI/Database development by quite a bit. Feel free to send feature requests or bug reports.
If you would like to contribute to the CGI++ project, your efforts will be appreciated. The areas where I need most help are documentation and testing, especially documentation. I hate writing it, because Id rather be writing code but it needs to be done.
Installation:
You will need a C++ compiler with STL support to build and use CGI++. A clean compile is guaranteed on Linux and GNU 2.7, others still need to be tested, but you are free to give it a try. Installation is simple:
gunzip -c cgi++-0.8.tar.gz | tar xvf -
cd cgi++-0.8.tar.gz
./configure
make
su (if needed)
make install
Download (0.090MB)
Added: 2006-05-24 License: Freeware Price:
1250 downloads
CGI::FormMagick 0.89
CGI::FormMagick is a Perl module to easily create CGI form-based applications. more>>
CGI::FormMagick is a Perl module to easily create CGI form-based applications.
SYNOPSIS
use CGI::FormMagick;
my $f = new CGI::FormMagick();
# all options available to new()
my $f = new CGI::FormMagick(
type => file,
source => $myxmlfile,
);
# other types available
my $f = new CGI::FormMagick(type => string, source => $data );
$f->display();
FormMagick is a toolkit for easily building fairly complex form-based web applications. It allows the developer to specify the structure of a multi-page "wizard" style form using XML, then display that form using only a few lines of Perl.
<<lessSYNOPSIS
use CGI::FormMagick;
my $f = new CGI::FormMagick();
# all options available to new()
my $f = new CGI::FormMagick(
type => file,
source => $myxmlfile,
);
# other types available
my $f = new CGI::FormMagick(type => string, source => $data );
$f->display();
FormMagick is a toolkit for easily building fairly complex form-based web applications. It allows the developer to specify the structure of a multi-page "wizard" style form using XML, then display that form using only a few lines of Perl.
Download (0.074MB)
Added: 2006-10-07 License: Perl Artistic License Price:
1112 downloads
CGI::SecureState 0.36
CGI::SecureState is a transparent, secure statefulness for CGI programs. more>>
CGI::SecureState is a transparent, secure statefulness for CGI programs.
SYNOPSIS
use CGI::SecureState;
my @memory = qw(param1 param2 other_params_to_remember);
my $cgi = new CGI::SecureState(-stateDir => "states",
-mindSet => forgetful,
-memory => @memory);
print $cgi->header(), $cgi->start_html;
my $url = $cgi->state_url();
my $param = $cgi->state_param();
print I am a stateful CGI session.";
printI am a different ",
"script that also has access to this session.quot;;
Very Important Note for Users of CGI::SecureState 0.2x
For those still using the 0.2x series, CGI::SecureState changed enormously between 0.26 and 0.30. Specifically, the addition of mindsets is so important that if you run your old scripts unchanged under CGI::SecureState 0.3x, you will receive nasty warnings (likely both in output web pages and your log files) that will tell you not to do so. Please do yourself a favor by re-reading this documentation, as this mysterious mindset business (as well as all the scrumptious new features) will be made clear.
Of course, any and all comments on the changes are welcome. If you are interested, send mail to behroozi@cpan.org with the subject "CGI::SecureState Comment".
A Better Solution to the stateless problem.
HTTP is by nature a stateless protocol; as soon as the requested object is delivered, HTTP severs the objects connection to the client. HTTP retains no memory of the request details and does not relate subsequent requests with what it has already served.
There are a few methods available to deal with this problem, including forms and cookies, but most have problems themselves, including security issues (cookie stealing), browser support (cookie blocking), and painful implementations (forms).
CGI::SecureState solves this problem by storing session data in an encrypted state file on the server. CGI::SecureState is similar in purpose to CGI::Persistent (and retains much of the same user interface) but has a completely different implementation. For those of you who have worked with CGI::Persistent before, you will be pleased to learn that CGI::SecureState was designed to work with Perls taint mode and has worked flawlessly with mod_perl and Apache::Registry for over two years. CGI::SecureState was also designed from the ground up for security, a fact which may rear its ugly head if anybody tries to do something tricksy.
<<lessSYNOPSIS
use CGI::SecureState;
my @memory = qw(param1 param2 other_params_to_remember);
my $cgi = new CGI::SecureState(-stateDir => "states",
-mindSet => forgetful,
-memory => @memory);
print $cgi->header(), $cgi->start_html;
my $url = $cgi->state_url();
my $param = $cgi->state_param();
print I am a stateful CGI session.";
printI am a different ",
"script that also has access to this session.quot;;
Very Important Note for Users of CGI::SecureState 0.2x
For those still using the 0.2x series, CGI::SecureState changed enormously between 0.26 and 0.30. Specifically, the addition of mindsets is so important that if you run your old scripts unchanged under CGI::SecureState 0.3x, you will receive nasty warnings (likely both in output web pages and your log files) that will tell you not to do so. Please do yourself a favor by re-reading this documentation, as this mysterious mindset business (as well as all the scrumptious new features) will be made clear.
Of course, any and all comments on the changes are welcome. If you are interested, send mail to behroozi@cpan.org with the subject "CGI::SecureState Comment".
A Better Solution to the stateless problem.
HTTP is by nature a stateless protocol; as soon as the requested object is delivered, HTTP severs the objects connection to the client. HTTP retains no memory of the request details and does not relate subsequent requests with what it has already served.
There are a few methods available to deal with this problem, including forms and cookies, but most have problems themselves, including security issues (cookie stealing), browser support (cookie blocking), and painful implementations (forms).
CGI::SecureState solves this problem by storing session data in an encrypted state file on the server. CGI::SecureState is similar in purpose to CGI::Persistent (and retains much of the same user interface) but has a completely different implementation. For those of you who have worked with CGI::Persistent before, you will be pleased to learn that CGI::SecureState was designed to work with Perls taint mode and has worked flawlessly with mod_perl and Apache::Registry for over two years. CGI::SecureState was also designed from the ground up for security, a fact which may rear its ugly head if anybody tries to do something tricksy.
Download (0.020MB)
Added: 2007-07-16 License: Perl Artistic License Price:
831 downloads
CGI::WeT::Modules::Calendar 0.71
CGI::WeT::Modules::Calendar are Perl extensions to engine to allow calendar management. more>>
CGI::WeT::Modules::Calendar are Perl extensions to engine to allow calendar management.
SYNOPSIS
use CGI::WeT::Modules::Calendar ();
This module provides rendering constructs to allow navigation through a set of calendars. Support is provided for multiple types of events in multiple calendars, both public and private (general and user specific).
EXTENSIONS
CGI::WeT::Modules::Calendar::initialize($engine, $r)
This subroutine will initialize the engine passed as $engine with information from Apache (passed as $r). The base URL for calendars is set with the following.
PerlSetVar WeT_CalendarURL /baseURL/
This is available for building URLs as @@CALENDAR@@. For example, the top level calendar can be viewed at the URL returned by
$engine->url(@@CALENDAR@@/general/);
A list of available calendars might be found at
$engine->url(@@CALENDAR@@/);
<<lessSYNOPSIS
use CGI::WeT::Modules::Calendar ();
This module provides rendering constructs to allow navigation through a set of calendars. Support is provided for multiple types of events in multiple calendars, both public and private (general and user specific).
EXTENSIONS
CGI::WeT::Modules::Calendar::initialize($engine, $r)
This subroutine will initialize the engine passed as $engine with information from Apache (passed as $r). The base URL for calendars is set with the following.
PerlSetVar WeT_CalendarURL /baseURL/
This is available for building URLs as @@CALENDAR@@. For example, the top level calendar can be viewed at the URL returned by
$engine->url(@@CALENDAR@@/general/);
A list of available calendars might be found at
$engine->url(@@CALENDAR@@/);
Download (0.040MB)
Added: 2006-10-06 License: Perl Artistic License Price:
1114 downloads
CGI::Expand 2.02
CGI::Expand is a Perl module that can convert flat hash to nested data using TT2s dot convention. more>>
CGI::Expand is a Perl module that can convert flat hash to nested data using TT2s dot convention.
SYNOPSIS
use CGI::Expand;
use CGI; # or Apache::Request, etc.
$args = expand_cgi( CGI->new(a.0=3&a.2=4&b.c.0=x) );
# $args = { a => [3,undef,4], b => { c => [x] }, }
# Or to catch exceptions:
eval {
$args = expand_cgi( CGI->new(a.0=3&a.2=4&b.c.0=x) );
} or log_and_exit( $@ );
#-----
use CGI::Expand qw(expand_hash);
$args = expand_hash({a.0=>77}); # $args = { a => [ 77 ] }
Converts a CGI query into structured data using a dotted name convention similar to TT2.
expand_cgi works with CGI.pm, Apache::Request or anything with an appropriate "param" method. Or you can use expand_hash directly.
If you prefer to use a different flattening convention then CGI::Expand can be subclassed.
<<lessSYNOPSIS
use CGI::Expand;
use CGI; # or Apache::Request, etc.
$args = expand_cgi( CGI->new(a.0=3&a.2=4&b.c.0=x) );
# $args = { a => [3,undef,4], b => { c => [x] }, }
# Or to catch exceptions:
eval {
$args = expand_cgi( CGI->new(a.0=3&a.2=4&b.c.0=x) );
} or log_and_exit( $@ );
#-----
use CGI::Expand qw(expand_hash);
$args = expand_hash({a.0=>77}); # $args = { a => [ 77 ] }
Converts a CGI query into structured data using a dotted name convention similar to TT2.
expand_cgi works with CGI.pm, Apache::Request or anything with an appropriate "param" method. Or you can use expand_hash directly.
If you prefer to use a different flattening convention then CGI::Expand can be subclassed.
Download (0.008MB)
Added: 2007-07-07 License: Perl Artistic License Price:
840 downloads
CGI::AppBuilder::Frame 0.10
CGI::AppBuilder::Frame is a configuration initializer. more>>
CGI::AppBuilder::Frame is a configuration initializer.
SYNOPSIS
use CGI::AppBuilder::Frame;
my $ab = CGI::AppBuilder::Frame- >new(
ifn, my_init.cfg, opt, vhS:a:);
my ($q, $ar, $ar_log) = $ab- >start_app($0, %ARGV);
print $ab- >disp_form($q, $ar);
This class provides methods for reading and parsing configuration files.
new (ifn = > file.cfg, opt = > hvS:)
This is a inherited method from CGI::AppBuilder. See the same method in CGI::AppBuilder for more details.
frame_set ($fr, $pr)
Input variables:
$fr - frame set definiton array reference. The $fr contains two
elements [$hr, $ar]:
$hr - a hash ref containing the frame set attributes
$ar - a array ref containing hash references defining each
frames in the frame set.
$pr - tag attribute array ref. It contains three elements:
class - CSS class name
attr - attribute string such as width=5 onChange=js_func
hr - hash ref with key and value pairs. This will be obtained
from $fr for each frame set and frame.
pretty - whether to add line breaks
Variables used or methods called:
CGI::AppBuilder::Table
html_tag - generate HTML tags
CGI::AppBuilder::Message
echo_msg - display message
How to use:
The following shows how to define the frame array ($fr):
+-+----+ The following defines the left layout:
| | T |
| +----+ [{cols= >"150,*"},[
| | | {src= >"left.htm",name= >"L"},
|L| C | [{rows= >"100,*,50"},[
| | | {src= >"top.htm",name= >"T"},
| |----| {src= >"main.htm",name= >"C"},
| | B | {src= >"bottom.htm",name= >"B"}]]]
+-+----+ ]
In YAML, here is how it looks like:
---
cols: 150,*
- src: left.htm
name: L
- rows: 100,*,50
- src: top.htm
name: T
- src: main.htm
name: C
- src: bottom.htm
name: B
...
+-+------+ The following defines the left layout:
| | T |
| +----+-+ [{cols= >"150,*"},[
| | | | {src= >"left.htm",name= >"L"},
|L| C |R| [{rows= >"100,*,50"},[
| | | | {src= >"top.htm",name= >"T"},
| | | | [{cols= >"*,100"},[
| |----+-+ {src= >"main.htm",name= >"C"},
| | | {src= >"right.htm",name= >"R"}] ] ],
| | B | {src= >"bottom.htm",name= >"B"}]]
+-+----+-+ ]
In YAML, here is how it looks like:
---
cols: 150,*
- src: left.htm
name: L
- rows: 100,*,50
- src: top.htm
name: T
- cols: *,100
- src: main.htm
name: C
- src: right.htm
name: R
- src: bottom.htm
name: B
...
Here is the testing codes:
my $fr = [{cols= >"150,*"},[
{src= >"left.htm",name= >"L"},
[{rows= >"100,*,50"},[
{src= >"top.htm",name= >"T"},
{src= >"main.htm",name= >"C"},
{src= >"bottom.htm",name= >"B"}]
]]
];
my $pr = {pretty= >1};
print $obj- >frame_set($fr,$pr);
# the following is the result:
< FRAMESET cols=150,* >
< FRAME src=left.htm name=L >
< FRAMESET rows=100,*,50 >
< FRAME src=top.htm name=T >
< FRAME src=main.htm name=C >
< FRAME src=bottom.htm name=B >
< / FRAMESET >
< / FRAMESET >
$pr- >{_frameset_count} = 0; # reset frame set counter
my $f2 = [ {cols= >"150,*"},[
{src= >"left.htm",name= >"L"},
[{rows= >"100,*,50"},[
{src= >"top.htm",name= >"T"},
[{cols= >"*,100"},[
{src= >"main.htm",name= >"C"},
{src= >"right.htm",name= >"R"}]
],
{src= >"bottom.htm",name= >"B"}]
]]
];
print $obj- >frame_set($f2,$pr);
# the following is the result:
< FRAMESET cols=150,* >
< FRAME src=left.htm name=L >
< FRAMESET rows=100,*,50 >
< FRAME src=top.htm name=T >
< FRAMESET cols=*,100 >
< FRAME src=main.htm name=C >
< FRAME src=right.htm name=R >
< / FRAMESET >
< FRAME src=bottom.htm name=B >
< / FRAMESET >
< / FRAMESET >
Return: HTML codes.
This method generates HTML codes based on the information provided. This method is also called < I >frameset< / I >.
<<lessSYNOPSIS
use CGI::AppBuilder::Frame;
my $ab = CGI::AppBuilder::Frame- >new(
ifn, my_init.cfg, opt, vhS:a:);
my ($q, $ar, $ar_log) = $ab- >start_app($0, %ARGV);
print $ab- >disp_form($q, $ar);
This class provides methods for reading and parsing configuration files.
new (ifn = > file.cfg, opt = > hvS:)
This is a inherited method from CGI::AppBuilder. See the same method in CGI::AppBuilder for more details.
frame_set ($fr, $pr)
Input variables:
$fr - frame set definiton array reference. The $fr contains two
elements [$hr, $ar]:
$hr - a hash ref containing the frame set attributes
$ar - a array ref containing hash references defining each
frames in the frame set.
$pr - tag attribute array ref. It contains three elements:
class - CSS class name
attr - attribute string such as width=5 onChange=js_func
hr - hash ref with key and value pairs. This will be obtained
from $fr for each frame set and frame.
pretty - whether to add line breaks
Variables used or methods called:
CGI::AppBuilder::Table
html_tag - generate HTML tags
CGI::AppBuilder::Message
echo_msg - display message
How to use:
The following shows how to define the frame array ($fr):
+-+----+ The following defines the left layout:
| | T |
| +----+ [{cols= >"150,*"},[
| | | {src= >"left.htm",name= >"L"},
|L| C | [{rows= >"100,*,50"},[
| | | {src= >"top.htm",name= >"T"},
| |----| {src= >"main.htm",name= >"C"},
| | B | {src= >"bottom.htm",name= >"B"}]]]
+-+----+ ]
In YAML, here is how it looks like:
---
cols: 150,*
- src: left.htm
name: L
- rows: 100,*,50
- src: top.htm
name: T
- src: main.htm
name: C
- src: bottom.htm
name: B
...
+-+------+ The following defines the left layout:
| | T |
| +----+-+ [{cols= >"150,*"},[
| | | | {src= >"left.htm",name= >"L"},
|L| C |R| [{rows= >"100,*,50"},[
| | | | {src= >"top.htm",name= >"T"},
| | | | [{cols= >"*,100"},[
| |----+-+ {src= >"main.htm",name= >"C"},
| | | {src= >"right.htm",name= >"R"}] ] ],
| | B | {src= >"bottom.htm",name= >"B"}]]
+-+----+-+ ]
In YAML, here is how it looks like:
---
cols: 150,*
- src: left.htm
name: L
- rows: 100,*,50
- src: top.htm
name: T
- cols: *,100
- src: main.htm
name: C
- src: right.htm
name: R
- src: bottom.htm
name: B
...
Here is the testing codes:
my $fr = [{cols= >"150,*"},[
{src= >"left.htm",name= >"L"},
[{rows= >"100,*,50"},[
{src= >"top.htm",name= >"T"},
{src= >"main.htm",name= >"C"},
{src= >"bottom.htm",name= >"B"}]
]]
];
my $pr = {pretty= >1};
print $obj- >frame_set($fr,$pr);
# the following is the result:
< FRAMESET cols=150,* >
< FRAME src=left.htm name=L >
< FRAMESET rows=100,*,50 >
< FRAME src=top.htm name=T >
< FRAME src=main.htm name=C >
< FRAME src=bottom.htm name=B >
< / FRAMESET >
< / FRAMESET >
$pr- >{_frameset_count} = 0; # reset frame set counter
my $f2 = [ {cols= >"150,*"},[
{src= >"left.htm",name= >"L"},
[{rows= >"100,*,50"},[
{src= >"top.htm",name= >"T"},
[{cols= >"*,100"},[
{src= >"main.htm",name= >"C"},
{src= >"right.htm",name= >"R"}]
],
{src= >"bottom.htm",name= >"B"}]
]]
];
print $obj- >frame_set($f2,$pr);
# the following is the result:
< FRAMESET cols=150,* >
< FRAME src=left.htm name=L >
< FRAMESET rows=100,*,50 >
< FRAME src=top.htm name=T >
< FRAMESET cols=*,100 >
< FRAME src=main.htm name=C >
< FRAME src=right.htm name=R >
< / FRAMESET >
< FRAME src=bottom.htm name=B >
< / FRAMESET >
< / FRAMESET >
Return: HTML codes.
This method generates HTML codes based on the information provided. This method is also called < I >frameset< / I >.
Download (0.010MB)
Added: 2007-07-12 License: Perl Artistic License Price:
841 downloads
CGI::FastTemplate 1.09
CGI::FastTemplate is a Perl extension for managing templates, and performing variable interpolation. more>>
CGI::FastTemplate is a Perl extension for managing templates, and performing variable interpolation.
SYNOPSIS
use CGI::FastTemplate;
$tpl = new CGI::FastTemplate();
$tpl = new CGI::FastTemplate("/path/to/templates");
CGI::FastTemplate->set_root("/path/to/templates"); ## all instances will use this path
$tpl->set_root("/path/to/templates"); ## this instance will use this path
$tpl->define( main => "main.tpl",
row => "table_row.tpl",
all => "table_all.tpl",
);
$tpl->assign(TITLE => "I am the title.");
my %defaults = ( FONT => "",
EMAIL => jmoore@sober.com,
);
$tpl->assign(%defaults);
$tpl->parse(ROWS => ".row"); ## the . appends to ROWS
$tpl->parse(CONTENT => ["row", "all"]);
$tpl->parse(CONTENT => "main");
$tpl->print(); ## defaults to last parsed
$tpl->print("CONTENT"); ## same as print() as "CONTENT" was last parsed
$ref = $tpl->fetch("CONTENT");
<<lessSYNOPSIS
use CGI::FastTemplate;
$tpl = new CGI::FastTemplate();
$tpl = new CGI::FastTemplate("/path/to/templates");
CGI::FastTemplate->set_root("/path/to/templates"); ## all instances will use this path
$tpl->set_root("/path/to/templates"); ## this instance will use this path
$tpl->define( main => "main.tpl",
row => "table_row.tpl",
all => "table_all.tpl",
);
$tpl->assign(TITLE => "I am the title.");
my %defaults = ( FONT => "",
EMAIL => jmoore@sober.com,
);
$tpl->assign(%defaults);
$tpl->parse(ROWS => ".row"); ## the . appends to ROWS
$tpl->parse(CONTENT => ["row", "all"]);
$tpl->parse(CONTENT => "main");
$tpl->print(); ## defaults to last parsed
$tpl->print("CONTENT"); ## same as print() as "CONTENT" was last parsed
$ref = $tpl->fetch("CONTENT");
Download (0.013MB)
Added: 2006-08-01 License: Perl Artistic License Price:
1179 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above cgi federal search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed