10.7. CGI.pm Reference
The following methods are supported by CGI.pm.
$query->accept(['content_type'])
Returns a list of media types that the
browser accepts.
- content_type
-
If specified, returns instead the browser's
preference for the specified content type, between 0.0 and 1.0
$query->append(-name=>'name',-values=>'value')
Appends a value or list of values to
the named parameter.
- -name=>'name'
-
The parameter to append.
- -values=>'value'
-
The value to append. Multiple values can be specified as a reference
to an anonymous array.
auth_type( )
Returns the authorization method.
$query->autoEscape(undef)
Turns off autoescaping of form
elements.
print $query->button('name','function')
Generates a JavaScript button.
- name
-
The name of the button.
- function
-
The function to execute when the button is clicked. Using named
parameters, the syntax is:
print $query->button(-name=>'name',
-value=>'label',
-onClick=>"function");
- -value=>'label'
-
The label to display for the button
print $query->checkbox('name' [,'checked','value','label'])
Generates a single checkbox.
- name
-
The name to assign the input to (required).
- checked
-
Checkbox should be checked initially.
- value
-
The value to return when checked (default is on).
- label
-
The label to use for the checkbox (default is the name of the
checkbox). Using named parameters, the syntax is:
print $query->checkbox(-name=>'name',
-checked=>'checked',
-value=>'value',
-label=>'label',
-onClick=>function);
- -onClick=>function
-
Browser should execute function when the
user clicks on any checkbox in the group
print $query->checkbox_group('name', \@list [, selected,'true',\%labelhash ])
Generates a list of checkbox elements.
- name
-
The name to assign the input to (required).
- \@list
-
An array reference with the list items. You can also use an anonymous
array reference.
- selected
-
The menu item(s) to be initially selected (default is that nothing is
selected). This can be a single value or a reference to an array of
values.
- 'true'
-
Insert newlines between the checkboxes.
- \%labelhash
-
A hash reference listing labels for each list item. Default is the
list text itself. See popup_menu for an example.
Using named parameters, the syntax is:
print $query->checkbox_group(-name=>'name',
-values=>\@list,
-default=>selected,
-linebreak=>'true',
-labels=>\%labelhash,
-columns=>n,
-columnheader=>'string',
-rows=>m,
-rowheader=>'string',
-onClick=>function);
- -columns=>n
-
The number of columns to use.
- -columnheader=>'string'
-
A header for the column.
- -rows=m
-
The number of rows to use. If omitted, and
-columns is specified, the rows will be calculated
for you.
- -rowheader=>'string'
-
A header for the row.
- -onClick=>function
-
Browser should execute function when the
user clicks on any checkbox in the group.
$cookie=$query->cookie('name')
Defines or retrieves a cookie. See also
header.
- name
-
Name of the cookie (required). Using named parameters, the syntax is:
$cookie = $query->cookie(-name=>'name',
-value=>'value',
-expires=>'expcode',
-path=>'partial_url',
-domain=>'domain_name',
-secure=>1);
print $query->header(-cookie=>$cookie);
- -value=>'value'
-
A value to assign to the cookie. You can supply a scalar value, or a
reference to an array or hash. If omitted, a cookie will be retrieved
rather than defined.
- -expires=>expcode
-
Specifies an expiration timestamp (such as +3d for
three days). Values for expcode are:
- ns
-
n seconds
- nm
-
n minutes
- nh
-
n hours
- nd
-
n days
- nM
-
n months
- ny
-
n years
- day_of_week, dd-MMM-YY hh:mm:ss GMT
-
At the specified time.
- now
-
Expires immediately.
- -path=>'partial_url'
-
The partial URL for which the cookie is valid. Default is the current
URL.
- -domain=>'domain_name'
-
The domain for which the cookie is valid.
- -secure=>1
-
Use this cookie only for a secure session.
print $query->defaults('label')
Generates a button that resets the form
to its defaults. See also reset.
- 'label'
-
The label to use for the button. If omitted, the label is
Defaults.
$query->delete('parameter')
Deletes a parameter.
- 'parameter'
-
The parameter to delete
$query->delete_all( )
Deletes the entire CGI object.
print $query->dump([true])
Dumps all name/value pairs as an HTML
list.
- true
-
If specified, prints as plain text
print $query->end_html( )
Ends an HTML document.
print $query->filefield('name' [,'default',size,maxlength ])
Generates a file upload field for Netscape browsers.
- name
-
The filename to assign the supplied file contents to (required)
- default
-
The initial value (filename) to place in the text field
- size
-
The size of the text field (in characters)
- maxlength
-
The maximum length of the text field (in characters)
Using named parameters, the syntax is:
print $query->textfield(-name=>'name',
-default=>'value',
-size=>size,
-maxlength=>maxlength,
-override=>1,
-onChange=>function,
-onFocus=>function,
-onBlur=>function,
-onSelect=>function);
- -override=>1
-
Text field should not inherit its value from a previous invocation of
the script
- -onChange=>function
-
Browser should execute function when the
user changes the text field
- -onFocus=>function
-
Browser should execute function when the
focus is on the text field
- -onBlur=>function
-
Browser should execute function when the
focus leaves the text field
- -onSelect=>function
-
Browser should execute function when the
user changes a selected portion of the text field
print $query->header([content_type ,status ,headers])
Generates the HTTP header for the
document.
- content_type
-
The content type to return. Default is text/html.
- status
-
The HTTP status code and description to return. Default is
200 OK.
- headers
-
Additional headers to include, such as Content-Length:
123. Using named parameters, the syntax is:
print $query->header(-type=>'content_type',
-nph=>1,
-status=>'status_code',
-expires=>'expcode',
-cookie=>'cookie',
-target=>'frame',
-header=>'value');
- -type=>content_type
-
Specifies the content type.
- -nph=>1
-
Uses headers for a no-parse-header script.
- -status=>status_code
-
Specifies the status code.
- -expires=>expcode
-
Specifies an expiration timestamp (such as +3d for
three days). Values for expcode are:
- ns
-
n seconds
- nm
-
n minutes
- nh
-
n hours
- nd
-
n days
- nM
-
n months
- ny
-
n years
- day_of_week, dd-MMM-YY hh:mm:ss GMT
-
At the specified time
- now
-
Expires immediately
- -cookie=>cookie
-
Specifies a cookie. The cookie may be a scalar value or an array
reference.
- -header=>value
-
Specifies any HTTP header.
- -target=>frame
-
Writes to specified frame.
print $query->hidden('name', 'value' [,'value'... ])
Generates a hidden text field.
- name
-
The name to give the value (required).
- value
-
The value to assign to name. Multiple
values can be specified. Using named parameters, the syntax is:
print $query->hidden(-name=>'name',
-default=>'value');
With named parameters, the value can also be represented as a
reference to an array, such as:
print $query->hidden(-name=>'name',
-default=>['value1', 'value2',
... ]);
print $query->image_button('name','url' [,'align'])
Generates a clickable image map.
- name
-
The name to use. When clicked, the
x,yposition is returned as
name.xand
name.y,
respectively.
- url
-
The URL of the image for the image map.
- align
-
The alignment type. May be TOP,
BOTTOM, or MIDDLE. Using named
parameters, the syntax is:
print $query->image_button(-name=>'name',
-src=>'url',
-align=>'align',
-onClick=>function);
- -onClick=>function
-
Browser should execute function when the
user clicks on the image
$query->import_names('package')
Creates variables in the specified
package. Called import in older versions of
CGI.pm.
- package
-
The package to import names into
print $query->isindex([action])
Generates an
<ISINDEX> tag.
- action
-
The URL of the index script. Default is the current URL. Using named
parameters, the syntax is:
print $query->isindex(-action=>$action);
@keyarray = $query->keywords( )
Retrieves keywords from an <ISINDEX> search.
- @keyarray
-
The array that will contain the retrieved keywords
nph(1)
Treats a CGI script as a
no-parsed-header (NPH) script.
@name = $query->param([parameter [newvalue1, newvalue2, ...] ])
Gets or sets parameter names.
- @name
-
The array that will contain the parameter names.
- parameter
-
An optional single parameter to fetch. When used with no arguments,
param returns a list of all known parameter names.
- newvalue1, newvalue2, ...
-
The optional new values to assign to the parameter. Using named
parameters, the syntax is:
$query->param(-name=>'parameter',
-value=>'newvalue');
or:
$query->param(-name=>'parameter',
-values=>'newvalue1', 'newvalue2', ...);
print $query->password_field('name' [,'value',size,maxlength ])
Generates a password input field.
- name
-
The name to assign the input to (required).
- value
-
The default password to place in the password field.
- size
-
The size of the password field (in characters).
- maxlength
-
The maximum length of the password field (in characters). Using named
parameters, the syntax is:
print $query->password_field(-name=>'name',
-default=>'value',
-size=>size,
-maxlength=>maxlength,
-override=>1,
-onChange=>function,
-onFocus=>function,
-onBlur=>function,
-onSelect=>function);
- -override=>1
-
Text field should not inherit its value from a previous invocation of
the script
- -onChange=>function
-
Browser should execute function when the
user changes the text field
- -onFocus=>function
-
Browser should execute function when the
focus is on the text field
- -onBlur=>function
-
Browser should execute function when the
focus leaves the text field
- -onSelect=>function
-
Browser should execute function when the
user changes a selected portion of the text field
path_info( )
Returns extra path information.
path_translated( )
Returns translated extra path
information.
print $query->popup_menu('name', \@array [,'selected', \%labelhash])
Generates a popup menu.
- name
-
The name to assign the input to (required).
- \@array
-
An array reference listing the menu items. You can also use an
anonymous array reference (see example below).
- selected
-
The menu item to be initially selected (default is first menu item or
the item selected in previous queries).
- \%labelhash
-
A hash reference listing labels for each menu item. Default is menu
item text. For example:
%labels = ('UPS'=>'United Parcel Service (UPS)',
'FedExO'=>'Federal Express Overnight - 10AM delivery',
'FedExS'=>'Federal Express Standard - 2PM delivery',
'FedEx2'=>'Federal Express 2nd Day Delivery');
print $query->popup_menu('delivery_method',
['UPS', 'FedExO', 'FedExS', 'FedEx2'],
'FedExO',
\%labels);
Using named parameters, the syntax is:
print $query->popup_menu(-name=>'name',
-values=>\@array,
-default=>'selected',
-labels=>\%labelhash,
-onChange=>function,
-onFocus=>function,
-onBlur=>function);
- -onChange=>function
-
Browser should execute function when the
user changes the text field
- -onFocus=>function
-
Browser should execute function when the
focus is on on the text field
- -onBlur=>function
-
Browser should execute function when the
focus leaves the text field
print $query->radio_group('name', \@list [, selected, 'true', \%label ])
Generates a set of radio buttons.
- name
-
The name to assign the input to (required).
- \@list
-
An array reference with the list items. You can also use an anonymous
array reference.
- selected
-
The menu item to be initially selected.
- 'true'
-
Inserts newlines between radio buttons.
- \%label
-
A hash reference listing labels for each list item. Default is the
list text itself. (See popup_menu for an example.)
Using named parameters, the syntax is:
print $query->radio_group(-name=>'name',
-values=>\@list,
-default=>'selected',
-linebreak=>'true',
-labels=>\%labelhash,
-columns=>n,
-columnheader=>'string',
-rows=>m,
-rowheader=>'string');
- -columns=>n
-
The number of columns to use.
- -columnheader=>'string'
-
A header for the column.
- -rows=m
-
The number of rows to use. If omitted, and
-columns is specified, the rows will be calculated
for you.
- -rowheader=>'string'
-
A header for the row.
raw_cookie( )
Returns the value of the HTTP_COOKIE
header.
ReadParse( )
Creates a hash named
%in containing query information. Used for
backwards compatibility with the Perl4
cgi-lib.pl.
print $query->redirect('url')
Generates a header for redirecting the
browser.
- url
-
The absolute URL to redirect to. Using named parameters, the syntax
is:
print $query->redirect(-uri=>'url',
-nph=>1);
referer( )
Returns the referring URL.
remote_host( )
Returns the remote hostname or IP
address, depending on the configuration of the server.
remote_user( )
Returns the username supplied for
authorization.
request_method( )
Returns the request method.
print $query->reset
Generates a button that resets the form
to its initial values. See also defaults.
$query->save(filehandle)
Saves the form to the specified
filehandle, to be read back with the new
constructor.
- filehandle
-
The filehandle to save the file to
script_name( )
Returns the current partial URL.
print
$query->scrolling_list('name',\@list[,selected,size,'true',\%labelhash]);
| |
Generates a scrolling list.
- name
-
The name to assign the input to (required).
- \@list
-
An array reference with the list items. You can also use an anonymous
array reference.
- selected
-
The menu item(s) to be initially selected (default is that nothing is
selected). This can be a single value or a reference to a list of
values.
- size
-
The number of elements to display in the list box.
- 'true'
-
Allows multiple selections.
- \%labelhash
-
A hash reference listing labels for each list item. Default is the
list text itself. (See popup_menu for an example.)
Using named parameters, the syntax is:
print $query->scrolling_list(-name=>'name',
-values=>\@listarray,
-default=>selected,
-size=>size,
-multiple=>'true',
-labels=>\%labelhash,
-onChange=>function,
-onFocus=>function,
-onBlur=>function);
- -onChange=>function
-
Browser should execute function when the
user changes the text field
- -onFocus=>function
-
Browser should execute function when the
focus is on on the text field
- -onBlur=>function
-
Browser should execute function when the
focus leaves the text field
$url = $query->self_url
Returns the URL of the current script
with all its state information intact.
print $query->start_html(['title', 'email', 'base', attribute='value'])
Generates
<HTML> and <BODY>
tags.
- title
-
The title of the page.
- email
-
The author's email address.
- base
-
Whether to use a <BASE> tag in the header.
- attribute='value'
-
Specifies an attribute to the <BODY> tag.
Using named parameters, the syntax is:
print $query->start_html(-title=>'title',
-author=>'email_address',
-base=>'true',
-xbase=>'url',
-meta=>{'metatag1'=>'value1',
'metatag2'=>
'value2'},
-script=>'$script',
-onLoad=>'$function',
-onUnload=>'$function',
-attribute=>'value');
- -title=>'title'
-
Specifies the title of the page.
- -author=>'email_address'
-
Specifies the author's email address.
- -xbase=>'url'
-
Provides an HREF for the <BASE> tag. Default
is the current location.
- -meta=>{'metatag1'=>'value1', ... }
-
Adds arbitrary meta information to the header as a reference to a
hash. Valid tags are:
- keywords
-
Keywords for this document
- copyright
-
Copyright for this document description
- description
-
Description for this document
- attribute=>'value'
-
Specifies an attribute to the <BODY> tag
- -script=>'$script'
-
Specifies a JavaScript script to be embedded within a
<SCRIPT> block.
- -onLoad=>'$function'
-
Browser should execute specified function upon entering page.
- -onUnload=>'$function'
-
Browser should execute specified function upon leaving page.
print $query->startform([method, action, encoding])
Generates a
<FORM> tag.
- method
-
The request method for the form. Values are:
- POST
-
Use the POST method (default).
- GET
-
Use the GET method.
- action
-
The URL of the CGI script. Default is the current URL.
- encoding
-
The encoding scheme. Possible values are
application/x-www-form-urlencoded and
multipart/form-data. Using named parameters, the
syntax is:
print $query->startform(-method=>$method,
-action=>$action,
-encoding=>$encoding,
-name=>$name,
-target=>frame,
-onSubmit=>function);
- -name=>name
-
Names the form for identification by JavaScript functions
- -target=>frame
-
Writes to the specified frame
- -onSubmit=>function
-
A JavaScript function that the browser should execute upon submitting
the form
print $query->start_multipart_form([method, action])
Generates
<HTML> and <BODY>
tags. Same as startform, but assumes
multipart/form-data encoding as the default.
print $query->submit([ 'label','value' ])
Generates a Submit button.
- label
-
The label to use for the button.
- value
-
The value to return when the form is submitted. Using named
parameters, the syntax is:
print $query->submit(-name=>'name',
-value=>'value',
-onClick=>function);
- -onClick=>function
-
Browser should execute function when the
user clicks on the image
print $query->textarea('name' [,'value',rows,columns ])
Generates a large multiline text input
box.
- name
-
The name to assign the input to (required).
- value
-
The initial value to place into the text input box.
- rows
-
The number of rows to display.
- columns
-
The number of columns to display. Using named parameters, the syntax
is:
print $query->textarea(-name=>'name',
-default=>'value',
-rows=>rows,
-columns=>columns,
-override=>1,
-onChange=>function,
-onFocus=>function,
-onBlur=>function,
-onSelect=>function);
- -override=>1
-
Text field should not inherit its value from a previous invocation of
the script
- -onChange=>function
-
Browser should execute function when the
user changes the text field
- -onFocus=>function
-
Browser should execute function when the
focus is on the text field
- -onBlur=>function
-
Browser should execute function when the
focus leaves the text field
- -onSelect=>function
-
Browser should execute function when the
user changes a selected portion of the text field
print $query->textfield('name' [,'value', size, maxlength])
Generates a text input field.
- name
-
The name to assign the input to (required).
- value
-
The initial value to place in the text field.
- size
-
The size of the text field (in characters).
- maxlength
-
The maximum length of the text field (in characters). Using named
parameters, the syntax is:
print $query->textfield(-name=>'name',
-default=>'value',
-size=>size,
-maxlength=>maxlength,
-override=>1,
-onChange=>function,
-onFocus=>function,
-onBlur=>function,
-onSelect=>function);
- -override=>1
-
Text field should not inherit its value from a previous invocation of
the script
- -onChange=>function
-
Browser should execute function when the
user changes the text field
- -onFocus=>function
-
Browser should execute function when the
focus is on the text field
- -onBlur=>function
-
Browser should execute function when the
focus leaves the text field
- -onSelect=>function
-
Browser should execute function when the
user changes a selected portion of the text field
$url = $query->url
Returns a URL of the current script
without query information.
use_named_parameters( )
Specifies that functions should take
named parameters.
$query->user_agent( [string] )
Returns the value of the
HTTP_USER_AGENT header.
- string
-
If specified, returns only headers matching the specified string
user_name( )
Returns the remote
user's login name; unreliable.
| | |
10.6. Debugging | | 11. Web Server Programmingwith mod_perl |
Copyright © 2002 O'Reilly & Associates. All rights reserved.