192 lines
7.5 KiB
Plaintext
Executable File
192 lines
7.5 KiB
Plaintext
Executable File
|
|
* v2.0 - 20 Aug 2000 b.d.low@ieee.org
|
|
|
|
I (Ben Low) have assumed maintenance over CGI_Lite. First point of action
|
|
(and probably last, the module is quite stable both bug- and feature-wise :-)
|
|
is to change the name to fit in with perl's module naming conventions:
|
|
CGI_Lite is dead, long live CGI::Lite.
|
|
|
|
|
|
* v1.9 - 31 Jan, 1999, 17 Apr 2000 BDL
|
|
|
|
Added parse_new_form_data(), for use under persistant applications
|
|
(e.g. FCGI, mod_perl). This function simply clears the CGI object's
|
|
state before calling parse_form_data().
|
|
i.e. rather than creating a new CGI object for each request, you can
|
|
now write
|
|
$CGI = new CGI_Lite;
|
|
while (FCGI::accept > 0)
|
|
{
|
|
$Query = $CGI->parse_new_form_data();
|
|
<process query>
|
|
}
|
|
|
|
Minor change in _decode_url_encoded_data() to avoid warnings when
|
|
no value is provided in the query.
|
|
|
|
All changes marked with "BDL". Ben Low <ben@snrc.uow.edu.au>
|
|
|
|
* v1.8 - May 10, 1997
|
|
|
|
Removed $` and $' from the code, and "optimized" an important regexp.
|
|
As a result, the module is much more efficient. Fixed a minor bug in
|
|
multipart boundary parsing. Corrected an error when storing a key that
|
|
has multiple values which caused more than one array to be allocated.
|
|
Just a note: if you call get_multiple_values method with a scalar
|
|
value, the method no longer returns an undef, but the value itself.
|
|
|
|
As of this version, you can pass a request method (optional) to the
|
|
parse_form_data method. This gives you a bit more flexibility when
|
|
dealing with forms.
|
|
|
|
The set_file_type method now works as it should. In earlier versions,
|
|
CGI_Lite created "handles" in all cases. Added the close_all_files
|
|
method to close uploaded files that are opened as a result of passing
|
|
"handle" to set_file_type.
|
|
|
|
The print_form_data and print_cookie_data are deprecated as of this
|
|
version, but have not been removed (for compatibility reasons). It's
|
|
better to use the print_data method, which prints the key/value pairs
|
|
in the order they were parsed. As a side effect of this change,
|
|
if you want to parse form data and cookies in an application,
|
|
you have to create two instances of the CGI_Lite object, which
|
|
only makes sense.
|
|
|
|
Added the get_ordered_keys method which will return the list
|
|
of _keys_ in the order in which they were parsed. Modified the
|
|
wrap_textarea method; it now works properly.
|
|
|
|
Also, added the add_mime_type, remove_mime_type and get_mime_types
|
|
methods to deal with EOL translation based on MIME types. Added
|
|
the filter_filename method to alter the way in which uploaded
|
|
files are named. Added the add_timestamp method which allows you
|
|
to turn off timestamps on uploaded files. NOTE: CGI_Lite no longer
|
|
returns the full path of the uploaded file, but simply, the file name.
|
|
|
|
Added a set of miscellaneous functions: browser_escape, url_encode,
|
|
url_decode, is_dangerous, escape_dangerous_chars. CGI_Lite now handles
|
|
errors better; you can use the newly implemented is_error, and
|
|
get_error_message methods. I've bought back the return_error
|
|
method, which you can use to return errors to the browser and
|
|
exit. However, this method no longer outputs the HTTP header,
|
|
as it did in versions prior to v1.7.
|
|
|
|
In addition, this version allows you to debug your CGI scripts
|
|
"offline" by letting you pass query information through standard
|
|
input. I got this idea from CGI.pm, though it's handled a bit
|
|
differently. Thanks Lincoln!
|
|
|
|
* v1.7 - December 28, 1996
|
|
|
|
Maybe, I should release this version as 2.0 :-) There were a lot of
|
|
changes made:
|
|
|
|
- *Totally* re-wrote the multipart form parsing algorithm. It's
|
|
_much_ more efficient with large uploads. It still needs tweaking
|
|
to remove the $` and $' -- maybe in the next release.
|
|
- Multiple values per field are no longer returned as a null-character
|
|
delimited string. Instead, a reference to an array is returned.
|
|
You need to de-reference, or call the get_multiple_values method
|
|
to get at the array. There was no way I could make this backward
|
|
compatible. Please check your scripts, because a few might break.
|
|
I apologize.
|
|
- Fields containing more than one value in multipart forms are now
|
|
handled correctly.
|
|
- Added the wrap_textarea method that allows you to neatly "wrap"
|
|
long strings.
|
|
- You can now parse/decode cookies in much the same manner as forms.
|
|
- When saving uploaded files, the module adds a timestamp. As of this
|
|
version, the timestamp is added to the front of the file,
|
|
as opposed to the end, so that file extensions are preserved.
|
|
Note: this module makes no effort to URL decode the filename for
|
|
security reasons.
|
|
- Added the following new methods: set_buffer_size, parse_cookies,
|
|
print_cookie_data, wrap_textarea, get_multiple_values and
|
|
create_variables.
|
|
- Removed the return_error subroutine and, instead, added _error,
|
|
which dumps a message to STDERR and dies.
|
|
- You can now install this module in a convenient manner. Also,
|
|
fixed up the docs, moved this list of revisions from the module
|
|
to a separate file, and added a directory with simple examples.
|
|
- Fixed up numerous little bugs, including the "Use of uninitialized..."
|
|
warnings.
|
|
|
|
* v1.62 - January 17, 1996
|
|
|
|
Modified the parse_multipart_data subroutine so that it
|
|
returns the name of the file as the filehandle -- if set_file_type
|
|
function is called with the "handle" parameter.
|
|
|
|
Added the function determine_package to determine the
|
|
calling package.
|
|
|
|
* v1.61 - January 1, 1996
|
|
|
|
Fixed a minor bug that resulted in end of line characters being removed
|
|
from certain binary files.
|
|
|
|
* v1.6 - December 30, 1995
|
|
|
|
Added code to handle other header information that the browser might
|
|
send after the "Content-Disposition" header.
|
|
|
|
Added set_platform function so that uploaded text files display
|
|
properly.
|
|
|
|
The function set_file_type no longer returns a status.
|
|
|
|
Fixed spacing within code.
|
|
|
|
* v1.5 - November 13, 1995
|
|
|
|
Corrected two major bugs that caused several fields to be lost (when
|
|
the fields before them were either too small or too large).
|
|
|
|
Added code to make sure that there are no "\r\n" characters in the
|
|
regular form fields. Textarea elements and fields that contain uploaded
|
|
information from different platforms (i.e Macintosh and PC) will
|
|
contain "\r" characters.
|
|
|
|
* v1.4 - October 15, 1995
|
|
|
|
Added pod style documentation. Now you can see this manual page by doing
|
|
the following:
|
|
|
|
pod2man CGI_Lite.pm | nroff -man | more
|
|
|
|
Also, modified the parse_form_data method so that it can return
|
|
the actual associative array (if called within an array context).
|
|
|
|
* v1.3 - October 12, 1995
|
|
|
|
Completely modified the parse_multipart_data method. It no longer
|
|
reads the multipart message line by line, but rather in small size
|
|
blocks (or "chunks"). This also eliminated a major bug that caused
|
|
Netscape to hang.
|
|
|
|
Since some browsers do not send a "\r\n" character string at the end
|
|
of header lines, the parse_multipart_data method conditionally checks
|
|
for and removes them. This also allows you to emulate a multipart/form-data
|
|
request by storing a sample request in a file and piping it to your program:
|
|
|
|
cat multipart.txt | test.pl
|
|
|
|
* v1.2 - October 12, 1995
|
|
|
|
Added the set_file_type method to return filehandles for the stored
|
|
files.
|
|
|
|
* v1.1 - October 10, 1995
|
|
|
|
The environment variable CONTENT_TYPE is used to determine the type of
|
|
encoding scheme. In v1.0, the body of the POST request was parsed.
|
|
|
|
This module no longer outputs an error message if an invalid directory
|
|
is passed to the set_directory method. Instead, it returns a status
|
|
of 0 to indicate failure.
|
|
|
|
* v1.0 - September 26, 1995
|
|
|
|
Initial Release
|
|
|