cgi scripts
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 4270
Slackware Packaging Scripts 04-30-2005
Slackware Packaging Scripts provides a collection of scripts for simple automated Slackware packaging. more>>
Slackware Packaging Scripts provides a collection of scripts for simple automated Slackware packaging.
Slacktools is a collection of simple shell scripts that can be used to build most source tarballs into slackware packages.
They are probably the least advanced of any automated packaging system, but they work surprisingly well for source that supports the DESTDIR variable [correctly].
Scripts provided:
.backoutpkg
.slackconfig
.slackmake
.slackpack
<<lessSlacktools is a collection of simple shell scripts that can be used to build most source tarballs into slackware packages.
They are probably the least advanced of any automated packaging system, but they work surprisingly well for source that supports the DESTDIR variable [correctly].
Scripts provided:
.backoutpkg
.slackconfig
.slackmake
.slackpack
Download (MB)
Added: 2007-03-13 License: GPL (GNU General Public License) Price:
566 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
Snippets 1.0
Snippets is a CGI script where fortune cookie meets wiki. more>>
Snippets is a CGI script where fortune cookie meets wiki. The project provides:
- A way for people to share quotes, recipes, jokes...
- A private niche where a person can keep track of sites to visit, people to e-mail.
- A tool for administrators to turn a large repository of static content into a manageable amount of dynamic content.
Snippets is designed to be easy to configure and customize.
Snippets is a versatile CGI script that allows administrators to turn a large amount of static content into a small amount of dynamic content, and users to have an editable quote of the day. Its a cross between a fortune cookie program and a wiki. Snippets can be used for much more than memorable quotes, though; Snippets can be used to show people, or remind them of:
- Jokes
- Quotes
- Recipes
- Websites to visit
- Friends to write/e-mail/call
- Long-term to do items
- Places to visit
- Books to read
- Favorite pictures
- Etc.
Go ahead and play around with it; see what it can do.
<<less- A way for people to share quotes, recipes, jokes...
- A private niche where a person can keep track of sites to visit, people to e-mail.
- A tool for administrators to turn a large repository of static content into a manageable amount of dynamic content.
Snippets is designed to be easy to configure and customize.
Snippets is a versatile CGI script that allows administrators to turn a large amount of static content into a small amount of dynamic content, and users to have an editable quote of the day. Its a cross between a fortune cookie program and a wiki. Snippets can be used for much more than memorable quotes, though; Snippets can be used to show people, or remind them of:
- Jokes
- Quotes
- Recipes
- Websites to visit
- Friends to write/e-mail/call
- Long-term to do items
- Places to visit
- Books to read
- Favorite pictures
- Etc.
Go ahead and play around with it; see what it can do.
Download (0.046MB)
Added: 2007-02-23 License: GPL (GNU General Public License) Price:
973 downloads
CGI::MxScreen 0.103
CGI::MxScreen is a multi-screen stateful CGI framework. more>>
CGI::MxScreen is a multi-screen stateful CGI framework.
SYNOPSIS
require CGI::MxScreen;
my $manager = CGI::MxScreen->make(
-bgcolor => "#dedeef",
-screens =>
{
"state_1" =>
[-class => "STATE_1", -title => "Hello"],
"state_2" =>
[-class => "STATE_2", -title => "Hello #2"],
},
-initial => "state_1",
-version => "1.0",
);
$manager->play();
CGI::MxScreen is a framework for building multi-screen stateful CGI programs. It is rather object-oriented, with some peculiarities brought by persistency constraints: all objects must be handled by Storable.
CGI::MxScreen is based on the CGI module, and co-operates with it, meaning you are able to use most CGI calls normally. The few places where you should not is where CGI::MxScreen supersedes the CGI functionalities: for instance, theres no need to propagate hidden values when you use CGI::MxScreen.
CGI::MxScreen is architected around the concept of screens. Among the set of defined screens within the same script, only one is visible at a time. One moves around the various screens by pressing buttons, which submit data to the server and possibly move you to a different screen. The state machine is handled by CGI::MxScreen, the user only defines which state (screen) a button shall move the application to.
CGI::MxScreen is stateful in the sense that many of the runtime objects created to operate (and screens are among those) are made persistent. This is a very interesting property, because you do not have to worry too much about the underlying stateless nature of the CGI protocol. The CGI module brought the statefulness to the level of form controls, but CGI::MxScreen raises it to the level of the application itself.
CGI::MxScreen is not meant to be used for so-called quick and dirty scripts, or for scripts which do not require some fair amount of round trips between the browser and the server. Youll be better off with using the good old CGI module. However, for more complex web applications, where there is a fair amount of processing required on the server side, and where each script involves several states, CGI::MxScreen is for you.
<<lessSYNOPSIS
require CGI::MxScreen;
my $manager = CGI::MxScreen->make(
-bgcolor => "#dedeef",
-screens =>
{
"state_1" =>
[-class => "STATE_1", -title => "Hello"],
"state_2" =>
[-class => "STATE_2", -title => "Hello #2"],
},
-initial => "state_1",
-version => "1.0",
);
$manager->play();
CGI::MxScreen is a framework for building multi-screen stateful CGI programs. It is rather object-oriented, with some peculiarities brought by persistency constraints: all objects must be handled by Storable.
CGI::MxScreen is based on the CGI module, and co-operates with it, meaning you are able to use most CGI calls normally. The few places where you should not is where CGI::MxScreen supersedes the CGI functionalities: for instance, theres no need to propagate hidden values when you use CGI::MxScreen.
CGI::MxScreen is architected around the concept of screens. Among the set of defined screens within the same script, only one is visible at a time. One moves around the various screens by pressing buttons, which submit data to the server and possibly move you to a different screen. The state machine is handled by CGI::MxScreen, the user only defines which state (screen) a button shall move the application to.
CGI::MxScreen is stateful in the sense that many of the runtime objects created to operate (and screens are among those) are made persistent. This is a very interesting property, because you do not have to worry too much about the underlying stateless nature of the CGI protocol. The CGI module brought the statefulness to the level of form controls, but CGI::MxScreen raises it to the level of the application itself.
CGI::MxScreen is not meant to be used for so-called quick and dirty scripts, or for scripts which do not require some fair amount of round trips between the browser and the server. Youll be better off with using the good old CGI module. However, for more complex web applications, where there is a fair amount of processing required on the server side, and where each script involves several states, CGI::MxScreen is for you.
Download (0.074MB)
Added: 2006-10-07 License: Perl Artistic License Price:
1113 downloads
mkcgi 2.1
mkcgi is a simple command line utility for producing a perl CGI script instantly by parsing an existing HTML form. more>>
mkcgi is a simple command line utility for producing a perl CGI script instantly by parsing an existing HTML form. The resulting perl script is easy to understand and customize.
Features include error checking, confirmation email sent to the admin and user, plain text tab delimited logging, MySQL support and redirection to a thank you page.
mkcgi takes 2 arguments. The first is the html file name of the form you want it to parse and the second is the file name of the cgi you want to create.
mkcgi will load the form field values into your favorite UNIX editor. Youll need to verify the field names look accurate and remove any duplicates (radio buttons) or other unnecessary HTML.
Next edit the proper field names that will be used for error checking and displayed to the user.
Next edit configuration information and comment out fields that are not required or add special error checking.
A SQL file will be created that you can load into MySQL so your data can be inserted. Your CGI script is ready!
Enhancements:
- Command line switches were added for easy configuration.
<<lessFeatures include error checking, confirmation email sent to the admin and user, plain text tab delimited logging, MySQL support and redirection to a thank you page.
mkcgi takes 2 arguments. The first is the html file name of the form you want it to parse and the second is the file name of the cgi you want to create.
mkcgi will load the form field values into your favorite UNIX editor. Youll need to verify the field names look accurate and remove any duplicates (radio buttons) or other unnecessary HTML.
Next edit the proper field names that will be used for error checking and displayed to the user.
Next edit configuration information and comment out fields that are not required or add special error checking.
A SQL file will be created that you can load into MySQL so your data can be inserted. Your CGI script is ready!
Enhancements:
- Command line switches were added for easy configuration.
Download (0.004MB)
Added: 2006-05-19 License: GPL (GNU General Public License) Price:
1253 downloads
CGI::Test 0.104
CGI::Test is a CGI regression test framework. more>>
CGI::Test is a CGI regression test framework.
SYNOPSIS
# In some t/script.t regression test, for instance
use CGI::Test; # exports ok()
my $ct = CGI::Test->new(
-base_url => "http://some.server:1234/cgi-bin",
-cgi_dir => "/path/to/cgi-bin",
);
my $page = $ct->GET("http://some.server:1234/cgi-bin/script?arg=1");
ok 1, $page->content_type =~ m|text/htmlb|;
my $form = $page->forms->[0];
ok 2, $form->action eq "/cgi-bin/some_target";
my $menu = $form->menu_by_name("months");
ok 3, $menu->is_selected("January");
ok 4, !$menu->is_selected("March");
ok 5, $menu->multiple;
my $send = $form->submit_by_name("send_form");
ok 6, defined $send;
#
# Now interact with the CGI
#
$menu->select("March"); # "click" on the March label
my $answer = $send->press; # "click" on the send button
ok 7, $answer->is_ok; # and make sure we dont get an HTTP error
The CGI::Test module provides a CGI regression test framework which allows you to run your CGI programs offline, i.e. outside a web server, and interact with them programmatically, without the need to type data and click from a web browser.
If youre using the CGI module, you may be familiar with its offline testing mode. However, this mode is appropriate for simple things, and there is no support for conducting a full session with a stateful script. CGI::Test fills this gap by providing the necessary infrastructure to run CGI scripts, then parse the output to construct objects that can be queried, and on which you can interact to "play" with the scripts control widgets, finally submitting data back. And so on...
Note that the CGI scripts you can test with CGI::Test need not be implemented in Perl at all. As far as this framework is concerned, CGI scripts are executables that are run on a CGI-like environment and which produce an output.
To use the CGI::Test framework, you need to configure a CGI::Test object to act like a web server, by providing the URL base where CGI scripts lie on this pseudo-server, and which physical directory corresponds to that URL base.
From then on, you may issue GET and POST requests giving an URL, and the pseudo-server returns a CGI::Test::Page object representing the outcome of the request. This page may be an error, plain text, some binary data, or an HTML page (see CGI::Test::Page for details).
The latter (an HTML page) can contain one or more CGI forms (identified by tags), which are described by instances of CGI::Test::Form objects (see CGI::Test::Form for details).
Forms can be queried to see whether they contain a particular type of widget (menu, text area, button, etc...), of a particular name (thats the CGI parameter name). Once found, one may interact with a widget as the user would from a browser. Widgets are described by polymorphic objects which conform to the CGI::Test::Form::Widget type. The specific interaction that is offered depends on the dynamic type of the object (see CGI::Test::Form::Widget for details).
An interaction with a form ends by a submission of the form data to the server, and getting a reply back. This is done by pressing a submit button, and the press() routine returns a new page. Naturally, no server is contacted at all within the CGI::Test framework, and the CGI script is ran through a proper call to one of the GET/POST method on the CGI::Test object.
Finally, since CGI::Test is meant to be used from regression test scripts, it exports a single ok() routine which merely prints the messages expected by Test::Harness. This is the only functional routine in this module, all other accesses being made through a CGI::Test object.
<<lessSYNOPSIS
# In some t/script.t regression test, for instance
use CGI::Test; # exports ok()
my $ct = CGI::Test->new(
-base_url => "http://some.server:1234/cgi-bin",
-cgi_dir => "/path/to/cgi-bin",
);
my $page = $ct->GET("http://some.server:1234/cgi-bin/script?arg=1");
ok 1, $page->content_type =~ m|text/htmlb|;
my $form = $page->forms->[0];
ok 2, $form->action eq "/cgi-bin/some_target";
my $menu = $form->menu_by_name("months");
ok 3, $menu->is_selected("January");
ok 4, !$menu->is_selected("March");
ok 5, $menu->multiple;
my $send = $form->submit_by_name("send_form");
ok 6, defined $send;
#
# Now interact with the CGI
#
$menu->select("March"); # "click" on the March label
my $answer = $send->press; # "click" on the send button
ok 7, $answer->is_ok; # and make sure we dont get an HTTP error
The CGI::Test module provides a CGI regression test framework which allows you to run your CGI programs offline, i.e. outside a web server, and interact with them programmatically, without the need to type data and click from a web browser.
If youre using the CGI module, you may be familiar with its offline testing mode. However, this mode is appropriate for simple things, and there is no support for conducting a full session with a stateful script. CGI::Test fills this gap by providing the necessary infrastructure to run CGI scripts, then parse the output to construct objects that can be queried, and on which you can interact to "play" with the scripts control widgets, finally submitting data back. And so on...
Note that the CGI scripts you can test with CGI::Test need not be implemented in Perl at all. As far as this framework is concerned, CGI scripts are executables that are run on a CGI-like environment and which produce an output.
To use the CGI::Test framework, you need to configure a CGI::Test object to act like a web server, by providing the URL base where CGI scripts lie on this pseudo-server, and which physical directory corresponds to that URL base.
From then on, you may issue GET and POST requests giving an URL, and the pseudo-server returns a CGI::Test::Page object representing the outcome of the request. This page may be an error, plain text, some binary data, or an HTML page (see CGI::Test::Page for details).
The latter (an HTML page) can contain one or more CGI forms (identified by tags), which are described by instances of CGI::Test::Form objects (see CGI::Test::Form for details).
Forms can be queried to see whether they contain a particular type of widget (menu, text area, button, etc...), of a particular name (thats the CGI parameter name). Once found, one may interact with a widget as the user would from a browser. Widgets are described by polymorphic objects which conform to the CGI::Test::Form::Widget type. The specific interaction that is offered depends on the dynamic type of the object (see CGI::Test::Form::Widget for details).
An interaction with a form ends by a submission of the form data to the server, and getting a reply back. This is done by pressing a submit button, and the press() routine returns a new page. Naturally, no server is contacted at all within the CGI::Test framework, and the CGI script is ran through a proper call to one of the GET/POST method on the CGI::Test object.
Finally, since CGI::Test is meant to be used from regression test scripts, it exports a single ok() routine which merely prints the messages expected by Test::Harness. This is the only functional routine in this module, all other accesses being made through a CGI::Test object.
Download (0.050MB)
Added: 2007-06-12 License: Perl Artistic License Price:
864 downloads
CGI::Utils 0.09
CGI::Utils is a Perl module for retrieving information through the Common Gateway Interface and mod_perl. more>>
CGI::Utils is a Perl module for retrieving information through the Common Gateway Interface and mod_perl.
Enhancements:
- This release adds support for mod_perl 2 in addition to mod_perl 1.
- It fixes some formatting issues with the POD documentation and adds underscore versions of more methods.
<<lessEnhancements:
- This release adds support for mod_perl 2 in addition to mod_perl 1.
- It fixes some formatting issues with the POD documentation and adds underscore versions of more methods.
Download (0.020MB)
Added: 2006-06-28 License: Perl Artistic License Price:
1214 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
Class::CGI 0.20
Class::CGI is a Perl module to fetch objects from your CGI object. more>>
Class::CGI is a Perl module to fetch objects from your CGI object.
SYNOPSIS
use Class::CGI
handlers => {
customer_id => My::Customer::Handler
};
my $cgi = Class::CGI->new;
my $customer = $cgi->param(customer_id);
my $name = $customer->name;
my $email = $cgi->param(email); # behaves like normal
if ( my %errors = $cgi->errors ) {
# do error handling
}
For small CGI scripts, its common to get a parameter, untaint it, pass it to an object constructor and get the object back. This module would allow one to to build Class::CGI handler classes which take the parameter value, automatically perform those steps and just return the object. Much grunt work goes away and you can get back to merely pretending to work.
<<lessSYNOPSIS
use Class::CGI
handlers => {
customer_id => My::Customer::Handler
};
my $cgi = Class::CGI->new;
my $customer = $cgi->param(customer_id);
my $name = $customer->name;
my $email = $cgi->param(email); # behaves like normal
if ( my %errors = $cgi->errors ) {
# do error handling
}
For small CGI scripts, its common to get a parameter, untaint it, pass it to an object constructor and get the object back. This module would allow one to to build Class::CGI handler classes which take the parameter value, automatically perform those steps and just return the object. Much grunt work goes away and you can get back to merely pretending to work.
Download (0.017MB)
Added: 2006-10-20 License: Perl Artistic License Price:
1099 downloads
Network Security Analysis Tool 1.5
Network Security Analysis Tool is a fast, stable bulk security scanner designed to audit remote network services. more>>
Network Security Analysis Tool is a fast, stable bulk security scanner designed to audit remote network services and check for versions, security problems, gather information about the servers and the machine, and much more.
A manpage providing extensive information on NSAT has been included in the distribution. It is available after a make install, or just by typing man doc/nsat.8 from this dir. It is suggested that you inform yourself at least about the -v (scan verbosity) option and edit the configuration file. To learn about changes in this version, please consult doc/CHANGES.
New to this version is support for distributed scanning. The manpage describes how to do a distributed scan. Note that distributed scanning in this version is just a preliminary, proof-of-concept, implementation with no guarantees for its security, reliability, or performance.
Check for updated vulnerability lists, config files, etc. from
http://nsat.sourceforge.net
Currently, these are lists of vulnerabilities:
nsat.cgi (CGI scripts)
nsat.conf (configuration)
src/mod/snmp.h (SNMP community names)
<<lessA manpage providing extensive information on NSAT has been included in the distribution. It is available after a make install, or just by typing man doc/nsat.8 from this dir. It is suggested that you inform yourself at least about the -v (scan verbosity) option and edit the configuration file. To learn about changes in this version, please consult doc/CHANGES.
New to this version is support for distributed scanning. The manpage describes how to do a distributed scan. Note that distributed scanning in this version is just a preliminary, proof-of-concept, implementation with no guarantees for its security, reliability, or performance.
Check for updated vulnerability lists, config files, etc. from
http://nsat.sourceforge.net
Currently, these are lists of vulnerabilities:
nsat.cgi (CGI scripts)
nsat.conf (configuration)
src/mod/snmp.h (SNMP community names)
Download (0.40MB)
Added: 2006-07-14 License: GPL (GNU General Public License) Price:
1204 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
Firepass 1.1.2a
Firepass is a tunneling tool. more>>
Firepass - is a tunneling tool, allowing to bypass firewall restrictions and encapsulate data flows inside legal ones to use HTTP POST requests. TCP or UDP based protocols may be tunneled with Firepass. For now, both - client and server parts are written in Perl and the server script acts as a CGI program.
The Firepass key feature is that you may use several type of installation of the server part script in the external network. You do not need to bind any port on the external box. Firepass may also be usable for the reverse task, when the server script is located at the corporative web server and when client interact with it from the external network.
To run FIREPASS youll need the following dependencies:
A box located inside your local network, with Perl and the ability to send HTTP messages to the external network (Internet), either directly or indirectly through a HTTP proxy
A HTTPd server located on the external network (with Perl also) where you can place / run CGI scripts and establish outgoing connections (Most commercial hosting providers and some public ones allow this)
FIREPASS key feature is that you can chain several installations of the server and they never need to bind to a port; therefore, it is undetectable by most Administrators. There is only an unusual HTTP dialog between the client and server ; aswell, the HTTP messages are send fairly often. But this is configurable in the FIREPASS client with a special delay option between HTTP requests, and can be used for any non-time-critical protocols.
This FIREPASS version is alpha, so there still may be some bugs... including SECURITY bugs! Please read the section "HOW IT WORKS" carefully to understand all the possible risks you may be exposed to. I do not provide any guarantees that this program works properly.
Enhancements:
- New FIREPASS client directive :
- - use HTTP proxy to resolve hostnames.
- Minor corrections:
- A UDP protocol-related bug has been fixed in the client.
<<lessThe Firepass key feature is that you may use several type of installation of the server part script in the external network. You do not need to bind any port on the external box. Firepass may also be usable for the reverse task, when the server script is located at the corporative web server and when client interact with it from the external network.
To run FIREPASS youll need the following dependencies:
A box located inside your local network, with Perl and the ability to send HTTP messages to the external network (Internet), either directly or indirectly through a HTTP proxy
A HTTPd server located on the external network (with Perl also) where you can place / run CGI scripts and establish outgoing connections (Most commercial hosting providers and some public ones allow this)
FIREPASS key feature is that you can chain several installations of the server and they never need to bind to a port; therefore, it is undetectable by most Administrators. There is only an unusual HTTP dialog between the client and server ; aswell, the HTTP messages are send fairly often. But this is configurable in the FIREPASS client with a special delay option between HTTP requests, and can be used for any non-time-critical protocols.
This FIREPASS version is alpha, so there still may be some bugs... including SECURITY bugs! Please read the section "HOW IT WORKS" carefully to understand all the possible risks you may be exposed to. I do not provide any guarantees that this program works properly.
Enhancements:
- New FIREPASS client directive :
- - use HTTP proxy to resolve hostnames.
- Minor corrections:
- A UDP protocol-related bug has been fixed in the client.
Download (0.024MB)
Added: 2006-07-13 License: GPL (GNU General Public License) Price:
1202 downloads
CGI::Cache 1.4200
CGI::Cache is a Perl extension to help cache output of time-intensive CGI scripts. more>>
CGI::Cache is a Perl extension to help cache output of time-intensive CGI scripts.
WARNING
The interface as of version 1.01 has changed considerably and is NOT compatible with earlier versions. A smaller interface change also occurred in version 1.20.
SYNOPSIS
Heres a simple example:
#!/usr/bin/perl
use CGI;
use CGI::Cache;
# Set up cache
CGI::Cache::setup();
my $cgi = new CGI;
# CGI::Vars requires CGI version 2.50 or better
CGI::Cache::set_key($cgi->Vars);
# This should short-circuit the rest of the loop if a cache value is
# already there
CGI::Cache::start() or exit;
print $cgi->header, "n";
print < body >
< p >
This prints to STDOUT, which will be cached.
If the next visit is within 24 hours, the cached STDOUT
will be served instead of executing this print.
< /body >< /html >
EOF
Heres a more complex example:
use CGI;
use CGI::Cache;
my $query = new CGI;
# Set up a cache in /tmp/CGI_Cache/demo_cgi, with publicly
# unreadable cache entries, a maximum size of 20 megabytes,
# and a time-to-live of 6 hours.
CGI::Cache::setup( { cache_options =>
{ cache_root => /tmp/CGI_Cache,
namespace => demo_cgi,
directory_umask => 077,
max_size => 20 * 1024 * 1024,
default_expires_in => 6 hours,
}
} );
# CGI::Vars requires CGI version 2.50 or better
CGI::Cache::set_key( $query->Vars );
CGI::Cache::invalidate_cache_entry()
if $query->param( force_regenerate ) eq true;
CGI::Cache::start() or exit;
print "Content-type: text/htmlnn";
print < body >
< p >
This prints to STDOUT, which will be cached.
If the next visit is within 6 hours, the cached STDOUT
will be served instead of executing these prints.
< /p >
EOF
CGI::Cache::pause();
print<<less
WARNING
The interface as of version 1.01 has changed considerably and is NOT compatible with earlier versions. A smaller interface change also occurred in version 1.20.
SYNOPSIS
Heres a simple example:
#!/usr/bin/perl
use CGI;
use CGI::Cache;
# Set up cache
CGI::Cache::setup();
my $cgi = new CGI;
# CGI::Vars requires CGI version 2.50 or better
CGI::Cache::set_key($cgi->Vars);
# This should short-circuit the rest of the loop if a cache value is
# already there
CGI::Cache::start() or exit;
print $cgi->header, "n";
print < body >
< p >
This prints to STDOUT, which will be cached.
If the next visit is within 24 hours, the cached STDOUT
will be served instead of executing this print.
< /body >< /html >
EOF
Heres a more complex example:
use CGI;
use CGI::Cache;
my $query = new CGI;
# Set up a cache in /tmp/CGI_Cache/demo_cgi, with publicly
# unreadable cache entries, a maximum size of 20 megabytes,
# and a time-to-live of 6 hours.
CGI::Cache::setup( { cache_options =>
{ cache_root => /tmp/CGI_Cache,
namespace => demo_cgi,
directory_umask => 077,
max_size => 20 * 1024 * 1024,
default_expires_in => 6 hours,
}
} );
# CGI::Vars requires CGI version 2.50 or better
CGI::Cache::set_key( $query->Vars );
CGI::Cache::invalidate_cache_entry()
if $query->param( force_regenerate ) eq true;
CGI::Cache::start() or exit;
print "Content-type: text/htmlnn";
print < body >
< p >
This prints to STDOUT, which will be cached.
If the next visit is within 6 hours, the cached STDOUT
will be served instead of executing these prints.
< /p >
EOF
CGI::Cache::pause();
print<<less
Download (0.043MB)
Added: 2006-11-01 License: Perl Artistic License Price:
1087 downloads
CGI::XMLApplication 1.1.3
CGI::XMLApplication is an Object Oriented Interface for CGI Script Applications. more>>
CGI::XMLApplication is an Object Oriented Interface for CGI Script Applications.
SYNOPSIS
use CGI::XMLApplication;
$script = new CGI::XMLApplication;
$script->setStylesheetPath( "the/path/to/the/stylesheets" );
# either this for simple scripts
$script->run();
# or if you need more control ...
$script->run(%context_hash); # or a context object
CGI::XMLApplication is a CGI application class, that intends to enable perl artists to implement CGIs that make use of XML/XSLT functionality, without taking too much care about specialized errorchecking or even care too much about XML itself. It provides the power of the XML::LibXML/ XML::LibXSLT module package for content deliverment.
As well CGI::XMLApplication is designed to support project management on code level. The class allows to split web applications into several simple parts. Through this most of the code stays simple and easy to maintain. Throughout the whole runtime of a script CGI::XMLApplication tries to keep the application stable. As well a programmer has not to bother about some of XML::LibXML/ XML::LibXSLT transformation pitfalls.
The class module extends the CGI class. While all functionality of the original CGI package is still available, it should be not such a big problem, to port existing scripts to CGI::XMLApplication, although most functions used here are the access function for client data such as param().
CGI::XMLApplication, intended to be an application class should make writing of XML enabled CGI scripts more easy. Especially because of the use of object orientated concepts, this class enables much more transparent implemententations with complex functionality compared to what is possible with standard CGI-scripts.
The main difference with common perl CGI implementation is the fact, that the client-output is not done from perl functions, but generated by an internally build XML DOM that gets processed with an XSLT stylesheet. This fact helps to remove a lot of the HTML related functions from the core code, so a script may be much easier to read, since only application relevant code is visible, while layout related information is left out (commonly in an XSLT file).
This helps to write and test a complete application faster and less layout related. The design can be appended and customized later without effecting the application code anymore.
Since the class uses the OO paradigma, it does not force anybody to implement a real life application with the complete overhead of more or less redundant code. Since most CGI-scripts are waiting for events, which is usually the code abstraction of a click of a submit button or an image, CGI::XMLApplication implements a simple event system, that allows to keep event related code as separated as possible.
Therefore final application class is not ment to have a constructor anymore. All functionality should be encapsulated into implicit or explicit event handlers. Because of a lack in Perls OO implementation the call of a superclass constructor before the current constructor call is not default behavior in Perl. For that reason I decided to have special events to enable the application to initialize correctly, excluding the danger of leaving important variables undefined. Also this forces the programmer to implement scripts more problem orientated, rather than class or content focused.
Another design aspect for CGI::XMLApplication is the strict differentiation between CODE and PRESENTATION. IMHO this, in fact being one of the major problems in traditional CGI programming. To implement this, the XML::LibXML and XML::LibXSLT modules are used by default but may be replaced easily by any other XML/XSLT capable modules. Each CGI Script should generate an XML-DOM, that can be processed with a given stylesheet.
<<lessSYNOPSIS
use CGI::XMLApplication;
$script = new CGI::XMLApplication;
$script->setStylesheetPath( "the/path/to/the/stylesheets" );
# either this for simple scripts
$script->run();
# or if you need more control ...
$script->run(%context_hash); # or a context object
CGI::XMLApplication is a CGI application class, that intends to enable perl artists to implement CGIs that make use of XML/XSLT functionality, without taking too much care about specialized errorchecking or even care too much about XML itself. It provides the power of the XML::LibXML/ XML::LibXSLT module package for content deliverment.
As well CGI::XMLApplication is designed to support project management on code level. The class allows to split web applications into several simple parts. Through this most of the code stays simple and easy to maintain. Throughout the whole runtime of a script CGI::XMLApplication tries to keep the application stable. As well a programmer has not to bother about some of XML::LibXML/ XML::LibXSLT transformation pitfalls.
The class module extends the CGI class. While all functionality of the original CGI package is still available, it should be not such a big problem, to port existing scripts to CGI::XMLApplication, although most functions used here are the access function for client data such as param().
CGI::XMLApplication, intended to be an application class should make writing of XML enabled CGI scripts more easy. Especially because of the use of object orientated concepts, this class enables much more transparent implemententations with complex functionality compared to what is possible with standard CGI-scripts.
The main difference with common perl CGI implementation is the fact, that the client-output is not done from perl functions, but generated by an internally build XML DOM that gets processed with an XSLT stylesheet. This fact helps to remove a lot of the HTML related functions from the core code, so a script may be much easier to read, since only application relevant code is visible, while layout related information is left out (commonly in an XSLT file).
This helps to write and test a complete application faster and less layout related. The design can be appended and customized later without effecting the application code anymore.
Since the class uses the OO paradigma, it does not force anybody to implement a real life application with the complete overhead of more or less redundant code. Since most CGI-scripts are waiting for events, which is usually the code abstraction of a click of a submit button or an image, CGI::XMLApplication implements a simple event system, that allows to keep event related code as separated as possible.
Therefore final application class is not ment to have a constructor anymore. All functionality should be encapsulated into implicit or explicit event handlers. Because of a lack in Perls OO implementation the call of a superclass constructor before the current constructor call is not default behavior in Perl. For that reason I decided to have special events to enable the application to initialize correctly, excluding the danger of leaving important variables undefined. Also this forces the programmer to implement scripts more problem orientated, rather than class or content focused.
Another design aspect for CGI::XMLApplication is the strict differentiation between CODE and PRESENTATION. IMHO this, in fact being one of the major problems in traditional CGI programming. To implement this, the XML::LibXML and XML::LibXSLT modules are used by default but may be replaced easily by any other XML/XSLT capable modules. Each CGI Script should generate an XML-DOM, that can be processed with a given stylesheet.
Download (0.021MB)
Added: 2006-09-09 License: Perl Artistic License Price:
1140 downloads
ip-filter-cgi 0.1
ip-filter-cgi is a set of perl script to modify rules of IP Filter (IP Filter is a TCP/IP packet filter cf: http://coombs.anu.ed more>>
ip-filter-cgi is a set of perl script to modify rules of IP Filter (IP Filter is a TCP/IP packet filter cf: http://coombs.anu.edu.au/~avalon/ip-filter.html). If you make any improvement, correction send it back to. The scripts is not complete and is provided for testing purpose.
adulau@metatix.com .
Main features:
- Perl 5.0 (+CGI.pm)
- a HTTP server (Apache)
<<lessadulau@metatix.com .
Main features:
- Perl 5.0 (+CGI.pm)
- a HTTP server (Apache)
Download (0.047MB)
Added: 2006-06-22 License: GPL (GNU General Public License) Price:
1221 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 scripts 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