Looking at Server Variables


PHP has a special array built in called $_SERVER, which contains a lot of useful information, such as $_SERVER['PHP_SELF'], which holds the name of the current script, and $_SERVER['REQUEST_METHOD'], which holds the request method that was used (GET, POST, and so on).

The most useful server variables available in $_SERVER are listed in Table 14.1.

Table 14.1: The Server Variables
Open table as spreadsheet

Server Variable

Description

AUTH_TYPE

When operating under Apache and using authenticated HTTP this variable holds the authentication type.

DOCUMENT_ROOT

Contains the document root directory under which the script is executing.

GATEWAY_INTERFACE

Contains the revision of the CGI specification the server is using.

HTTP_ACCEPT

Contains the text in the Accept: header from the current request.

HTTP_ACCEPT_CHARSET

Contains the text in the Accept-Charset: header from the current request.

HTTP_ACCEPT_ENCODING

Contains the text in the Accept-Encoding: header from the current request.

HTTP_ACCEPT_LANGUAGE

Contains the text in the Accept-Language: header from the current request.

HTTP_CONNECTION

Contains the text in the Connection: header from the current request.

HTTP_HOST

Contains the text in the Host: header from the current request.

HTTP_REFERER

Contains the address of the page (if any) that referred the user agent to the current page. Set by the browser.

HTTP_USER_AGENT

Contains the text in the User-Agent: header from the current request.

PATH_TRANSLATED

Specifies the file system-based path to the script.

PHP_AUTH_PW

When running under Apache using HTTP authentication, this variable holds the password the user provides.

PHP_AUTH_USER

When running under Apache using HTTP authentication, this variable holds the username the user provides.

PHP_SELF

Contains the filename of the currently executing script, relative to the document root.

QUERY_STRING

Contains the query string, if there was any.

REMOTE_ADDR

Contains the IP address from which the user is viewing the current page.

REMOTE_HOST

Contains the Host name from which the user is viewing the current page.

REMOTE_PORT

Contains the port being used on the user’s machine to communicate with the Web server.

REQUEST_METHOD

Specifies which request method was used to access the page; such as GET, HEAD, POST, PUT.

REQUEST_URI

The URL that was given in order to access this page, such as /index.html.

SCRIPT_FILENAME

The absolute pathname of the currently executing script.

SCRIPT_NAME

Contains the current script’s path. This is useful for pages that need to point to themselves.

SERVER_ADMIN

Contains the value given to the SERVER_ADMIN directive in the Web server configuration file.

SERVER_NAME

Contains the name of the server host under which the script is executing.

SERVER_PORT

Contains the port on the server machine being used by the Web server for communication.

SERVER_PROTOCOL

Contains the name and revision of the information protocol by which the page was requested.

SERVER_SIGNATURE

Contains the server version and virtual host name.

SERVER_SOFTWARE

Contains the server identification string.

Say you wanted to determine the type of browser the user has; you might want to use a <marquee> element, for example, which is supported only by Microsoft Internet Explorer. You could start with this page, browser.html:

 <html>   <head>     <title>       Finding browser type     </title>   </head>   <body>     <center>       <h1>Finding browser type</h1>       <form method="post" action="browser.php">         <input type="submit" value="Submit">         </form>     </center>   </body> </html>

In browser.php, you can check whether you’re dealing with Internet Explorer by using the PHP strpos function to search $_SERVER["HTTP_USER_AGENT"] for the text MSIE, which that string contains if you’re using Internet Explorer:

 <html>   <head>     <title>Finding browser type</title>   </head>   <body>     <center>         <h1>Finding browser type</h1>         <br>         <?           if(strpos($_SERVER["HTTP_USER_AGENT"], "MSIE")){           .           .           .           }         ?>     </center>   </body> </html>

If you are using Internet Explorer, you can display a <marquee> element; otherwise, you might just display a message:

 <html>   <head>     <title>Finding browser type</title>   </head>   <body>     <center>         <h1>Finding browser type</h1>         <br>         <?           if(strpos($_SERVER["HTTP_USER_AGENT"], "MSIE")){             echo("<marquee><h1>Welcome to my               page!</h1></marquee>");           }           else {               echo("<h1>Please get Internet Explorer</h1>");           }         ?>     </center>   </body> </html>

The browser.html page is shown in Figure 14.3.

image from book
Figure 14.3: The browser.html page

When you click the Submit button, you see the marquee if you’re using Internet Explorer, as shown in Figure 14.4.

image from book
Figure 14.4: The browser.php application

You can also group the data from a form into an array for easier handling in PHP, which is discussed in the next section.



Ajax Bible
Ajax Bible
ISBN: 0470102632
EAN: 2147483647
Year: 2004
Pages: 169

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net