16.10. Web-Related Variables
PHP automatically creates
variables for all the data it receives in an HTTP request. This can
include GET data, POST data, cookie data, and environment variables.
The variables are either in PHP's global symbol
table or in one of a number of superglobal arrays, depending on the
value of the register_globals setting in your
php.ini file.
Beginning with PHP 4.2.0, the default
setting for register_globals is
off. With register_globals off,
all the various variables that are usually available directly in the
global symbol table are now available via individual superglobal
arrays. There is a limited set of superglobals and they cannot be
created from a user-level script. The superglobal array to use
depends on the source of the variable. Here is the list:
- $_GET
-
GET-method variables. These are the variables supplied directly in
the URL. For example, with http://www.example.com/script.php?a=1&b=2,
$_GET['a'] and $_GET['b'] are
set to 1 and 2, respectively.
- $_POST
-
POST-method variables. Form field data from regular POST-method forms.
- $_COOKIE
-
Any cookies the browser sends end up in this array. The name of the
cookie is the key and the cookie value becomes the array value.
- $_REQUEST
-
This array contains all of the above variables (i.e., GET, POST, and
cookie). If a variable appears in multiple sources, the order in
which they are imported into $_REQUEST is given by
the setting of the variables_order
php.ini directive. The default is
'GPC', which means GET-method variables are
imported first, then POST-method variables (overriding any GET-method
variables of the same name), and finally cookie variables (overriding
the other two).
- $_SERVER
-
These are variables set by your web server. They are traditionally
things like DOCUMENT_ROOT,
REMOTE_ADDR, REMOTE_PORT,
SERVER_NAME, SERVER_PORT, and
many others. To get a full list, have a look at your
phpinfo( ) output, or run a script like the
following to have a look:
<?php
foreach($_SERVER as $key=>$val) {
echo '$_SERVER['.$key."] = $val<br>\n";
}
?>
- $_ENV
-
Any environment variables that were set when you started your web
server are available in this array.
- $_FILES
-
For RFC 1867-style file uploads the information for each uploaded
file is available in this array. For example, for a file upload form
containing:
<input name="userfile" type="file">
the $_FILES array will look something like this:
$_FILES['userfile']['name'] => photo.png
$_FILES['userfile']['type'] => image/png
$_FILES['userfile']['tmp_name'] => /tmp/phpo3kdGt
$_FILES['userfile']['error'] => 0
$_FILES['userfile']['size'] => 158918
Note that the 'error' field is new for PHP 4.2.0
and the values are: 0 (no error, file was
uploaded); 1 (the uploaded file exceeds the
upload_max_filesize directive in
php.ini); 2 (the uploaded
file exceeds the MAX_FILE_SIZE directive that was
specified in the HTML form); 3 (the actual number
of bytes uploaded was less than the specified upload file size); and
4 (no file was uploaded).
| | | 16.9. Functions | | 16.11. Sessions |
Copyright © 2003 O'Reilly & Associates. All rights reserved.
|
|