cgi bin
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 1145
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::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::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
mod_actions
mod_actions is an Apache module that provides functions for executing CGI scripts based on media type or request method. more>>
mod_actions is an Apache module that provides functions for executing CGI scripts based on media type or request method.
This module has two directives. The Action directive lets you run CGI scripts whenever a file of a certain type is requested. The Script directive lets you run CGI scripts whenever a particular method is used in a request. This makes it much easier to execute scripts that process files.
Action directive
Syntax: Action action-type cgi-script
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Status: Base
Module: mod_actions
Compatibility: Action is only available in Apache 1.1 and later
This directive adds an action, which will activate cgi-script when action-type is triggered by the request. The cgi-script is the URL-path to a resource that has been configured as a CGI script using ScriptAlias or AddHandler. The action-type can be either a handler or a MIME content type. It sends the URL and file path of the requested document using the standard CGI PATH_INFO and PATH_TRANSLATED environment variables.
Examples:
# Requests for files of a particular type:
Action image/gif /cgi-bin/images.cgi
# Files of a particular file extension
AddHandler my-file-type .xyz
Action my-file-type /cgi-bin/program.cgi
In the first example, requests for files with a MIME content type of image/gif will instead be handled by the specified cgi script /cgi-bin/images.cgi.
In the second example, requests for files with a file extension of .xyz are handled instead by the specified cgi script /cgi-bin/program.cgi.
Script directive
Syntax: Script method cgi-script
Context: server config, virtual host, directory
Status: Base
Module: mod_actions
Compatibility: Script is only available in Apache 1.1 and later; arbitrary method use is only available with 1.3.10 and later
This directive adds an action, which will activate cgi-script when a file is requested using the method of method. The cgi-script is the URL-path to a resource that has been configured as a CGI script using ScriptAlias or AddHandler. The URL and file path of the requested document is sent using the standard CGI PATH_INFO and PATH_TRANSLATED environment variables.
Prior to Apache 1.3.10, method can only be one of GET, POST, PUT, or DELETE. As of 1.3.10, any arbitrary method name may be used. Method names are case-sensitive, so Script PUT and Script put have two entirely different effects.
Note that the Script command defines default actions only. If a CGI script is called, or some other resource that is capable of handling the requested method internally, it will do so. Also note that Script with a method of GET will only be called if there are query arguments present (e.g., foo.html?hi). Otherwise, the request will proceed normally.
Examples:
# For < ISINDEX >-style searching
Script GET /cgi-bin/search
# A CGI PUT handler
Script PUT /~bob/put.cgi
<<lessThis module has two directives. The Action directive lets you run CGI scripts whenever a file of a certain type is requested. The Script directive lets you run CGI scripts whenever a particular method is used in a request. This makes it much easier to execute scripts that process files.
Action directive
Syntax: Action action-type cgi-script
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Status: Base
Module: mod_actions
Compatibility: Action is only available in Apache 1.1 and later
This directive adds an action, which will activate cgi-script when action-type is triggered by the request. The cgi-script is the URL-path to a resource that has been configured as a CGI script using ScriptAlias or AddHandler. The action-type can be either a handler or a MIME content type. It sends the URL and file path of the requested document using the standard CGI PATH_INFO and PATH_TRANSLATED environment variables.
Examples:
# Requests for files of a particular type:
Action image/gif /cgi-bin/images.cgi
# Files of a particular file extension
AddHandler my-file-type .xyz
Action my-file-type /cgi-bin/program.cgi
In the first example, requests for files with a MIME content type of image/gif will instead be handled by the specified cgi script /cgi-bin/images.cgi.
In the second example, requests for files with a file extension of .xyz are handled instead by the specified cgi script /cgi-bin/program.cgi.
Script directive
Syntax: Script method cgi-script
Context: server config, virtual host, directory
Status: Base
Module: mod_actions
Compatibility: Script is only available in Apache 1.1 and later; arbitrary method use is only available with 1.3.10 and later
This directive adds an action, which will activate cgi-script when a file is requested using the method of method. The cgi-script is the URL-path to a resource that has been configured as a CGI script using ScriptAlias or AddHandler. The URL and file path of the requested document is sent using the standard CGI PATH_INFO and PATH_TRANSLATED environment variables.
Prior to Apache 1.3.10, method can only be one of GET, POST, PUT, or DELETE. As of 1.3.10, any arbitrary method name may be used. Method names are case-sensitive, so Script PUT and Script put have two entirely different effects.
Note that the Script command defines default actions only. If a CGI script is called, or some other resource that is capable of handling the requested method internally, it will do so. Also note that Script with a method of GET will only be called if there are query arguments present (e.g., foo.html?hi). Otherwise, the request will proceed normally.
Examples:
# For < ISINDEX >-style searching
Script GET /cgi-bin/search
# A CGI PUT handler
Script PUT /~bob/put.cgi
Download (MB)
Added: 2007-05-05 License: The Apache License Price:
903 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::Simple 0.079
CGI::Simple is a simple totally OO CGI interface that is CGI.pm compliant. more>>
CGI::Simple is a simple totally OO CGI interface that is CGI.pm compliant.
SYNOPSIS
use CGI::Simple;
$CGI::Simple::POST_MAX = 1024; # max upload via post default 100kB
$CGI::Simple::DISABLE_UPLOADS = 0; # enable uploads
$q = new CGI::Simple;
$q = new CGI::Simple( { foo=>1, bar=>[2,3,4] } );
$q = new CGI::Simple( foo=1&bar=2&bar=3&bar=4 );
$q = new CGI::Simple( *FILEHANDLE );
$q->save( *FILEHANDLE ); # save current object to a file as used by new
@params = $q->param; # return all param names as a list
$value = $q->param(foo); # return the first value supplied for foo
@values = $q->param(foo); # return all values supplied for foo
%fields = $q->Vars; # returns untied key value pair hash
$hash_ref = $q->Vars; # or as a hash ref
%fields = $q->Vars("|"); # packs multiple values with "|" rather than " ";
@keywords = $q->keywords; # return all keywords as a list
$q->param( foo, some, new, values ); # set new foo values
$q->param( -name=>foo, -value=>bar );
$q->param( -name=>foo, -value=>[bar,baz] );
$q->param( foo, some, new, values ); # append values to foo
$q->append( -name=>foo, -value=>bar );
$q->append( -name=>foo, -value=>[some, new, values] );
$q->delete(foo); # delete param foo and all its values
$q->delete_all; # delete everything
$files = $q->upload() # number of files uploaded
@files = $q->upload(); # names of all uploaded files
$filename = $q->param(upload_file) # filename of uploaded file
$mime = $q->upload_info($filename,mime); # MIME type of uploaded file
$size = $q->upload_info($filename,size); # size of uploaded file
my $fh = $q->upload($filename); # get filehandle to read from
while ( read( $fh, $buffer, 1024 ) ) { ... }
# short and sweet upload
$ok = $q->upload( $q->param(upload_file), /path/to/write/file.name );
print "Uploaded ".$q->param(upload_file)." and wrote it OK!" if $ok;
$decoded = $q->url_decode($encoded);
$encoded = $q->url_encode($unencoded);
$escaped = $q->escapeHTML("&);
$unescaped = $q->unescapeHTML("&);
$qs = $q->query_string; # get all data in $q as a query string OK for GET
$q->no_cache(1); # set Pragma: no-cache + expires
print $q->header(); # print a simple header
# get a complex header
$header = $q->header( -type => image/gif
-nph => 1,
-status => 402 Payment required,
-expires =>+24h,
-cookie => $cookie,
-charset => utf-7,
-attachment => foo.gif,
-Cost => $2.00
);
# a p3p header (OK for redirect use as well)
$header = $q->header( -p3p => policyref="http://somesite.com/P3P/PolicyReferences.xml );
@cookies = $q->cookie(); # get names of all available cookies
$value = $q->cookie(foo) # get first value of cookie foo
@value = $q->cookie(foo) # get all values of cookie foo
# get a cookie formatted for header() method
$cookie = $q->cookie( -name => Password,
-values => [superuser,god,my dog woofie],
-expires => +3d,
-domain => .nowhere.com,
-path => /cgi-bin/database,
-secure => 1
);
print $q->header( -cookie=>$cookie ); # set cookie
print $q->redirect(http://go.away.now); # print a redirect header
dienice( $q->cgi_error ) if $q->cgi_error;
CGI::Simple provides a relatively lightweight drop in replacement for CGI.pm. It shares an identical OO interface to CGI.pm for parameter parsing, file upload, cookie handling and header generation. This module is entirely object oriented, however a complete functional interface is available by using the CGI::Simple::Standard module.
Essentially everything in CGI.pm that relates to the CGI (not HTML) side of things is available. There are even a few new methods and additions to old ones! If you are interested in what has gone on under the hood see the Compatibility with CGI.pm section at the end.
In practical testing this module loads and runs about twice as fast as CGI.pm depending on the precise task.
<<lessSYNOPSIS
use CGI::Simple;
$CGI::Simple::POST_MAX = 1024; # max upload via post default 100kB
$CGI::Simple::DISABLE_UPLOADS = 0; # enable uploads
$q = new CGI::Simple;
$q = new CGI::Simple( { foo=>1, bar=>[2,3,4] } );
$q = new CGI::Simple( foo=1&bar=2&bar=3&bar=4 );
$q = new CGI::Simple( *FILEHANDLE );
$q->save( *FILEHANDLE ); # save current object to a file as used by new
@params = $q->param; # return all param names as a list
$value = $q->param(foo); # return the first value supplied for foo
@values = $q->param(foo); # return all values supplied for foo
%fields = $q->Vars; # returns untied key value pair hash
$hash_ref = $q->Vars; # or as a hash ref
%fields = $q->Vars("|"); # packs multiple values with "|" rather than " ";
@keywords = $q->keywords; # return all keywords as a list
$q->param( foo, some, new, values ); # set new foo values
$q->param( -name=>foo, -value=>bar );
$q->param( -name=>foo, -value=>[bar,baz] );
$q->param( foo, some, new, values ); # append values to foo
$q->append( -name=>foo, -value=>bar );
$q->append( -name=>foo, -value=>[some, new, values] );
$q->delete(foo); # delete param foo and all its values
$q->delete_all; # delete everything
$files = $q->upload() # number of files uploaded
@files = $q->upload(); # names of all uploaded files
$filename = $q->param(upload_file) # filename of uploaded file
$mime = $q->upload_info($filename,mime); # MIME type of uploaded file
$size = $q->upload_info($filename,size); # size of uploaded file
my $fh = $q->upload($filename); # get filehandle to read from
while ( read( $fh, $buffer, 1024 ) ) { ... }
# short and sweet upload
$ok = $q->upload( $q->param(upload_file), /path/to/write/file.name );
print "Uploaded ".$q->param(upload_file)." and wrote it OK!" if $ok;
$decoded = $q->url_decode($encoded);
$encoded = $q->url_encode($unencoded);
$escaped = $q->escapeHTML("&);
$unescaped = $q->unescapeHTML("&);
$qs = $q->query_string; # get all data in $q as a query string OK for GET
$q->no_cache(1); # set Pragma: no-cache + expires
print $q->header(); # print a simple header
# get a complex header
$header = $q->header( -type => image/gif
-nph => 1,
-status => 402 Payment required,
-expires =>+24h,
-cookie => $cookie,
-charset => utf-7,
-attachment => foo.gif,
-Cost => $2.00
);
# a p3p header (OK for redirect use as well)
$header = $q->header( -p3p => policyref="http://somesite.com/P3P/PolicyReferences.xml );
@cookies = $q->cookie(); # get names of all available cookies
$value = $q->cookie(foo) # get first value of cookie foo
@value = $q->cookie(foo) # get all values of cookie foo
# get a cookie formatted for header() method
$cookie = $q->cookie( -name => Password,
-values => [superuser,god,my dog woofie],
-expires => +3d,
-domain => .nowhere.com,
-path => /cgi-bin/database,
-secure => 1
);
print $q->header( -cookie=>$cookie ); # set cookie
print $q->redirect(http://go.away.now); # print a redirect header
dienice( $q->cgi_error ) if $q->cgi_error;
CGI::Simple provides a relatively lightweight drop in replacement for CGI.pm. It shares an identical OO interface to CGI.pm for parameter parsing, file upload, cookie handling and header generation. This module is entirely object oriented, however a complete functional interface is available by using the CGI::Simple::Standard module.
Essentially everything in CGI.pm that relates to the CGI (not HTML) side of things is available. There are even a few new methods and additions to old ones! If you are interested in what has gone on under the hood see the Compatibility with CGI.pm section at the end.
In practical testing this module loads and runs about twice as fast as CGI.pm depending on the precise task.
Download (0.083MB)
Added: 2007-03-08 License: Perl Artistic License Price:
960 downloads
CGI::XMLForm 0.10
CGI::XMLForm is a Perl extension of CGI.pm which reads/generates formated XML. more>>
CGI::XMLForm is a Perl extension of CGI.pm which reads/generates formated XML. NB: This is a subclass of CGI.pm, so can be used in its place.
SYNOPSIS
use CGI::XMLForm;
my $cgi = new CGI::XMLForm;
if ($cgi->param) {
print $cgi->header, $cgi->pre($cgi->escapeHTML($cgi->toXML));
}
else {
open(FILE, "test.xml") or die "Cant open: $!";
my @queries = (/a, /a/b*, /a/b/c*, /a/d);
print $cgi->header,
$cgi->pre($cgi->escapeHTML(
join "n", $cgi->readXML(*FILE, @queries)));
}
<<lessSYNOPSIS
use CGI::XMLForm;
my $cgi = new CGI::XMLForm;
if ($cgi->param) {
print $cgi->header, $cgi->pre($cgi->escapeHTML($cgi->toXML));
}
else {
open(FILE, "test.xml") or die "Cant open: $!";
my @queries = (/a, /a/b*, /a/b/c*, /a/d);
print $cgi->header,
$cgi->pre($cgi->escapeHTML(
join "n", $cgi->readXML(*FILE, @queries)));
}
Download (0.014MB)
Added: 2007-07-06 License: Perl Artistic License Price:
843 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::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::SpeedyCGI 2.22
SpeedyCGI is a Perl module to speed up perl scripts by running them persistently. more>>
SpeedyCGI is a Perl module to speed up perl scripts by running them persistently.
SYNOPSIS
#!/usr/bin/speedy
### Your Script Here. For example:
print "Content-type: text/htmlnnHello World!n";
##
## Optionally, use the CGI::SpeedyCGI module for various things
##
# Create a SpeedyCGI object
use CGI::SpeedyCGI;
my $sp = CGI::SpeedyCGI->new;
# See if we are running under SpeedyCGI or not.
print "Running under speedy=", $sp->i_am_speedy ? yes : no, "n";
# Register a shutdown handler
$sp->add_shutdown_handler(sub { do something here });
# Register a cleanup handler
$sp->register_cleanup(sub { do something here });
# Set/get some SpeedyCGI options
$sp->setopt(timeout, 30);
print "maxruns=", $sp->getopt(maxruns), "n";
SpeedyCGI is a way to run perl scripts persistently, which can make them run much more quickly. A script can be made to to run persistently by changing the interpreter line at the top of the script from:
#!/usr/bin/perl
to
#!/usr/bin/speedy
After the script is initially run, instead of exiting, the perl interpreter is kept running. During subsequent runs, this interpreter is used to handle new executions instead of starting a new perl interpreter each time. A very fast frontend program, written in C, is executed for each request. This fast frontend then contacts the persistent Perl process, which is usually already running, to do the work and return the results.
By default each perl script runs in its own Unix process, so one perl script cant interfere with another. Command line options can also be used to deal with programs that have memory leaks or other problems that might keep them from otherwise running persistently.
SpeedyCGI can be used to speed up perl CGI scripts. It conforms to the CGI specification, and does not run perl code inside the web server. Since the perl interpreter runs outside the web server, it cant cause problems for the web server itself.
SpeedyCGI also provides an Apache module so that under the Apache web server, scripts can be run without the overhead of doing a fork/exec for each request. With this module a small amount of frontend code is run within the web server - the perl interpreters still run outside the server.
SpeedyCGI and PersistentPerl are currently both names for the same code. SpeedyCGI was the original name, but because people werent sure what it did, the name PersistentPerl was picked as an alias. At some point SpeedyCGI will be replaced by PersistentPerl, or become a sub-class of PersistentPerl to avoid always having two distributions.
<<lessSYNOPSIS
#!/usr/bin/speedy
### Your Script Here. For example:
print "Content-type: text/htmlnnHello World!n";
##
## Optionally, use the CGI::SpeedyCGI module for various things
##
# Create a SpeedyCGI object
use CGI::SpeedyCGI;
my $sp = CGI::SpeedyCGI->new;
# See if we are running under SpeedyCGI or not.
print "Running under speedy=", $sp->i_am_speedy ? yes : no, "n";
# Register a shutdown handler
$sp->add_shutdown_handler(sub { do something here });
# Register a cleanup handler
$sp->register_cleanup(sub { do something here });
# Set/get some SpeedyCGI options
$sp->setopt(timeout, 30);
print "maxruns=", $sp->getopt(maxruns), "n";
SpeedyCGI is a way to run perl scripts persistently, which can make them run much more quickly. A script can be made to to run persistently by changing the interpreter line at the top of the script from:
#!/usr/bin/perl
to
#!/usr/bin/speedy
After the script is initially run, instead of exiting, the perl interpreter is kept running. During subsequent runs, this interpreter is used to handle new executions instead of starting a new perl interpreter each time. A very fast frontend program, written in C, is executed for each request. This fast frontend then contacts the persistent Perl process, which is usually already running, to do the work and return the results.
By default each perl script runs in its own Unix process, so one perl script cant interfere with another. Command line options can also be used to deal with programs that have memory leaks or other problems that might keep them from otherwise running persistently.
SpeedyCGI can be used to speed up perl CGI scripts. It conforms to the CGI specification, and does not run perl code inside the web server. Since the perl interpreter runs outside the web server, it cant cause problems for the web server itself.
SpeedyCGI also provides an Apache module so that under the Apache web server, scripts can be run without the overhead of doing a fork/exec for each request. With this module a small amount of frontend code is run within the web server - the perl interpreters still run outside the server.
SpeedyCGI and PersistentPerl are currently both names for the same code. SpeedyCGI was the original name, but because people werent sure what it did, the name PersistentPerl was picked as an alias. At some point SpeedyCGI will be replaced by PersistentPerl, or become a sub-class of PersistentPerl to avoid always having two distributions.
Download (0.15MB)
Added: 2007-02-23 License: Perl Artistic License Price:
979 downloads
Psunami Bulletin Board 0.5.3
Psunami Bulletin Board is an Open Source alternative to the popular Ultimate Bulletin Board software. more>>
Psunami Bulletin Board is an Open Source alternative to the popular Ultimate Bulletin Board software, and aims for speed, ease of use, and a full feature set.
For installation, do the following:
1)Recursively copy everything from ./cgi-bin/ into your servers cgi-bin/ directory.
2)Recursively chown (chown -R) the psunami/ directory to the user that your web server uses (www-data on Debian, nobody on Slack, httpd on RHat-based systems (Ive been told that it is nobody on someRHat systems), wwwrun on SuSE. Anyone know what it is for others?) If you are unable to chown (eg. you are not the superuser) then make sure it is all readable/writable by the user (777 works, but is probably much too generous). Also do this to the psunami.conf file in cgi-bin.
3)Make psunami.cgi, psunami_admin.cgi, and psunami_moderate.cgi executable by the user that your web server uses. (chmod u+x *.cgi)
4)Change the paths to your perl executable if necessary. The paths are at the top of psunami.cgi, psunami_moderate.pl, and psunami_admin.cgi and default to /usr/bin/perl. Type which perl at a command prompt if you dont know where the executable is.
5)Run psunami_admin.cgi and create a new board. The initial login is psunami and the password is bulletin (no quotes).
6)Make sure that your mail program is configured properly in the preferences. It defaults to /usr/bin/sendmail.
7)Once you have created an account for yourself and given it admin rights, make sure you delete the psunami user.
<<lessFor installation, do the following:
1)Recursively copy everything from ./cgi-bin/ into your servers cgi-bin/ directory.
2)Recursively chown (chown -R) the psunami/ directory to the user that your web server uses (www-data on Debian, nobody on Slack, httpd on RHat-based systems (Ive been told that it is nobody on someRHat systems), wwwrun on SuSE. Anyone know what it is for others?) If you are unable to chown (eg. you are not the superuser) then make sure it is all readable/writable by the user (777 works, but is probably much too generous). Also do this to the psunami.conf file in cgi-bin.
3)Make psunami.cgi, psunami_admin.cgi, and psunami_moderate.cgi executable by the user that your web server uses. (chmod u+x *.cgi)
4)Change the paths to your perl executable if necessary. The paths are at the top of psunami.cgi, psunami_moderate.pl, and psunami_admin.cgi and default to /usr/bin/perl. Type which perl at a command prompt if you dont know where the executable is.
5)Run psunami_admin.cgi and create a new board. The initial login is psunami and the password is bulletin (no quotes).
6)Make sure that your mail program is configured properly in the preferences. It defaults to /usr/bin/sendmail.
7)Once you have created an account for yourself and given it admin rights, make sure you delete the psunami user.
Download (0.063MB)
Added: 2006-06-27 License: GPL (GNU General Public License) Price:
1216 downloads
Acmemail 2.2.4
acmemail is a multiuser IMAP/POP3 to Web gateway (or webmail program). more>>
Acmemail is a multiuser IMAP/POP3 to Web gateway (or webmail program). It reads mail from a mail server and displays it using HTML on a web server. It is written in Perl, has full support for MIME (and mod_perl) and is quite pretty.
This program has support for MIME, is written in Perl and is very pretty.
Enhancements:
- Fix for mkdir problem BSD/OS 4.2. Patch from A.Lalev
- Fixing a nasty CSS vulnerability. Basically it was possible for somebody to run JavaScript code like this: http://yourdomain/cgi-bin/acmemail.cgi?aredir=javascript:alert(document.cookie).
- Ths patches forces aredir to be a http:// or https:// link.
- Found by Nick Cleaton
- Add RFC822 compliant Date header to outgoing messages
- Handle the case where there is no Date header, so that the full version of the epoch is not used
- Documentation updates, to reflect changes over the last couple of years.
- Rewrote the installation of perl modules and c-client section
- Switch to the Date::Format and Date::Parse, which apparently come included on modern Linux distributions. Patch from Wayne Davison
- Switch from MD5 to Digest::MD5. Patch from Wayne Davison
<<lessThis program has support for MIME, is written in Perl and is very pretty.
Enhancements:
- Fix for mkdir problem BSD/OS 4.2. Patch from A.Lalev
- Fixing a nasty CSS vulnerability. Basically it was possible for somebody to run JavaScript code like this: http://yourdomain/cgi-bin/acmemail.cgi?aredir=javascript:alert(document.cookie).
- Ths patches forces aredir to be a http:// or https:// link.
- Found by Nick Cleaton
- Add RFC822 compliant Date header to outgoing messages
- Handle the case where there is no Date header, so that the full version of the epoch is not used
- Documentation updates, to reflect changes over the last couple of years.
- Rewrote the installation of perl modules and c-client section
- Switch to the Date::Format and Date::Parse, which apparently come included on modern Linux distributions. Patch from Wayne Davison
- Switch from MD5 to Digest::MD5. Patch from Wayne Davison
Download (0.094MB)
Added: 2006-06-12 License: GPL (GNU General Public License) Price:
1229 downloads
CGI::Wiki::Kwiki 0.59
CGI::Wiki::Kwiki is an instant wiki built on CGI::Wiki. more>>
CGI::Wiki::Kwiki is an instant wiki built on CGI::Wiki.
A simple-to-use front-end to CGI::Wiki. It can be used for several purposes: to migrate from a CGI::Kwiki wiki (its original purpose), to provide a quickly set up wiki that can later be extended to use more of CGI::Wikis capabilities, and so on. It uses the Template Toolkit to allow quick and easy customisation of your wikis look without you needing to dive into the code.
INSTALLATION
The distribution ships with and installs a script called cgi-wiki-kwiki-install. Create an empty directory somewhere that your web server can see, and run the script. It will set up a SQLite database, install the default templates into the current directory, and create a cgi script to run the wiki. You now have a wiki - edit wiki.cgi to change any of the default options, and youre done.
MORE DETAILS
wiki.cgi will look something like this:
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI;
use CGI::Wiki::Kwiki;
my %config = (
db_type => SQLite,
db_name => /home/wiki/data/node.db,
formatters => {
default => CGI::Wiki::Formatter::Default,
},
);
my %vars = CGI::Vars();
eval {
CGI::Wiki::Kwiki->new(%config)->run(%vars);
};
if ($@) {
print "Content-type: text/plainnn";
print "There was a problem with CGI::Wiki::Kwiki:nn--n";
print "$@";
print "n--n";
print STDERR $@;
}
In the following directions, we use "webserver" to mean the user that your webserver executes CGI scripts as. Often this is actually you yourself; sometimes it is "www-data" or "apache". If you dont know, ask your ISP.
In the script above and in the following, replace /home/wiki/data/node.db with a filename in a directory that you will be able to make readable and writeable by the webserver. SQLite requires access to both the file (for writing data) and the directory it resides in (for creating a lockfile).
<<lessA simple-to-use front-end to CGI::Wiki. It can be used for several purposes: to migrate from a CGI::Kwiki wiki (its original purpose), to provide a quickly set up wiki that can later be extended to use more of CGI::Wikis capabilities, and so on. It uses the Template Toolkit to allow quick and easy customisation of your wikis look without you needing to dive into the code.
INSTALLATION
The distribution ships with and installs a script called cgi-wiki-kwiki-install. Create an empty directory somewhere that your web server can see, and run the script. It will set up a SQLite database, install the default templates into the current directory, and create a cgi script to run the wiki. You now have a wiki - edit wiki.cgi to change any of the default options, and youre done.
MORE DETAILS
wiki.cgi will look something like this:
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI;
use CGI::Wiki::Kwiki;
my %config = (
db_type => SQLite,
db_name => /home/wiki/data/node.db,
formatters => {
default => CGI::Wiki::Formatter::Default,
},
);
my %vars = CGI::Vars();
eval {
CGI::Wiki::Kwiki->new(%config)->run(%vars);
};
if ($@) {
print "Content-type: text/plainnn";
print "There was a problem with CGI::Wiki::Kwiki:nn--n";
print "$@";
print "n--n";
print STDERR $@;
}
In the following directions, we use "webserver" to mean the user that your webserver executes CGI scripts as. Often this is actually you yourself; sometimes it is "www-data" or "apache". If you dont know, ask your ISP.
In the script above and in the following, replace /home/wiki/data/node.db with a filename in a directory that you will be able to make readable and writeable by the webserver. SQLite requires access to both the file (for writing data) and the directory it resides in (for creating a lockfile).
Download (0.025MB)
Added: 2007-07-17 License: Perl Artistic License Price:
831 downloads
DAXFi 1.1
DAXFi is a Python package that helps configure several different kinds of firewalls in a consistent way. more>>
DAXFi is a Python package that helps configure several different kinds of firewalls in a consistent way.
The rules can be written in XML files, XML strings, or generated directly by the code.
It comes with a Python package, useful to build other applications aimed to manipulate different firewalls in a homogeneous way and includes some useful example programs.
Installation:
copy the ./cgi-bin/daxfidemo cgi script to your cgi-bin directory; be sure its executable.
Copy the ./html/index.html somewhere in your web pages. By default the daxfidemo cgi assumes the the index.html is in the directory /daxfidemo under the root of your
web servers pages; modify it accordingly to the location you choose.
Enhancements:
- Every patch that has accumulated in the past few years has been applied to this release.
<<lessThe rules can be written in XML files, XML strings, or generated directly by the code.
It comes with a Python package, useful to build other applications aimed to manipulate different firewalls in a homogeneous way and includes some useful example programs.
Installation:
copy the ./cgi-bin/daxfidemo cgi script to your cgi-bin directory; be sure its executable.
Copy the ./html/index.html somewhere in your web pages. By default the daxfidemo cgi assumes the the index.html is in the directory /daxfidemo under the root of your
web servers pages; modify it accordingly to the location you choose.
Enhancements:
- Every patch that has accumulated in the past few years has been applied to this release.
Download (0.002MB)
Added: 2007-04-25 License: GPL (GNU General Public License) Price:
912 downloads
The Data Mine 1.0
The Data Mine is a search engine designed to give users an unusually powerful interface. more>>
The Data Mine is a search engine designed to give users an unusually powerful interface. It is designed around human-computer intelligent interaction (making the computer a tool so humans can use their intelligence).
The project divides the screen into two halves: one lets you find all the instances of your querys keywords, and the other lets you look through a highlighted version of the results you choose.
Installation:
Basics
To install, run "./install" and answer the questions provided. This will run a Unix-flavor install-style script and should create a working, out-of-the-box installation when supplied appropriate values.
See USAGE below if are curions about how to use the Data Mine.
Setup and Customization
The Configure link at the bottom of the Data Mine search page provides a menu you can use to customize the data mine.
The main engine is intended for anyone to be able to use; the setup pages are written for techies. If you arent sure what a regular expression is, for instance, ask someone whos more technical.
Security
The present release of the Data Mine has not been closely scrutinized for security, and should be treated as such by security-conscious administrators. If you discover a vulnerability, please contact the author.
You are strongly encouraged to change the password in /usr/share/datamine/password.
The default installation sets /usr/share/datamine and contents to a relatively permissive mode. Administrators are encouraged to set directory and contents to mode 700, owned by the effective user ID that CGI scripts will be running under. This is usually apache or nobody.
Usage:
The Data Mine is designed to be run as a straightforward web application, with much administrative activity performed on-web.
Once it is set up via the Configure link, just explore.
http://[your hostname]/cgi-bin/datamine
(That is the location provided by RPM installation and the default for the provided installer. The provided installer allows you to specify another location; if you specified another location, substitute that for "/cgi-bin/furball".)
<<lessThe project divides the screen into two halves: one lets you find all the instances of your querys keywords, and the other lets you look through a highlighted version of the results you choose.
Installation:
Basics
To install, run "./install" and answer the questions provided. This will run a Unix-flavor install-style script and should create a working, out-of-the-box installation when supplied appropriate values.
See USAGE below if are curions about how to use the Data Mine.
Setup and Customization
The Configure link at the bottom of the Data Mine search page provides a menu you can use to customize the data mine.
The main engine is intended for anyone to be able to use; the setup pages are written for techies. If you arent sure what a regular expression is, for instance, ask someone whos more technical.
Security
The present release of the Data Mine has not been closely scrutinized for security, and should be treated as such by security-conscious administrators. If you discover a vulnerability, please contact the author.
You are strongly encouraged to change the password in /usr/share/datamine/password.
The default installation sets /usr/share/datamine and contents to a relatively permissive mode. Administrators are encouraged to set directory and contents to mode 700, owned by the effective user ID that CGI scripts will be running under. This is usually apache or nobody.
Usage:
The Data Mine is designed to be run as a straightforward web application, with much administrative activity performed on-web.
Once it is set up via the Configure link, just explore.
http://[your hostname]/cgi-bin/datamine
(That is the location provided by RPM installation and the default for the provided installer. The provided installer allows you to specify another location; if you specified another location, substitute that for "/cgi-bin/furball".)
Download (0.070MB)
Added: 2007-02-23 License: GPL (GNU General Public License) Price:
977 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 bin 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