[Chapter 2] 2.8 Examining Environment Variables
Author: Shishir Gundavaram
Date: Tue Aug 26 16:32:44 1997

#

| Chapter 2 Input to the Common Gateway Interface |

## 2.8 Examining Environment Variables

What would the chapter be without a program that displays some of the commonly used environment variables? Here it is:

    #!/usr/local/bin/perl
    %list = ('SERVER_SOFTWARE',   'The server software is: ',
             'SERVER_NAME',       'The server hostname, DNS alias, or IP address is: ',
             'GATEWAY_INTERFACE', 'The CGI specification revision is: ',
             'SERVER_PROTOCOL',   'The name and revision of info protocol is: ',
             'SERVER_PORT',       'The port number for the server is: ',
             'REQUEST_METHOD',    'The info request method is: ',
             'PATH_INFO',         'The extra path info is: ',
             'PATH_TRANSLATED',   'The translated PATH_INFO is: ',
             'DOCUMENT_ROOT',     'The server document root directory is: ',
             'SCRIPT_NAME',       'The script name is: ',
             'QUERY_STRING',      'The query string is (FORM GET): ',
             'REMOTE_HOST',       'The hostname making the request is: ',
             'REMOTE_ADDR',       'The IP address of the remote host is: ',
             'AUTH_TYPE',         'The authentication method is: ',
             'REMOTE_USER',       'The authenticated user is: ',
             'REMOTE_IDENT',      'The remote user is (RFC 931): ',
             'CONTENT_TYPE',      'The content type of the data is (POST, PUT): ',
             'CONTENT_LENGTH',    'The length of the content is: ',
             'HTTP_ACCEPT',       'The MIME types that the client will accept are: ',
             'HTTP_USER_AGENT',   'The browser of the client is: ',
             'HTTP_REFERER',      'The URL of the referer is: ');
    print "Content-type: text/html","\n\n";
    print "<HTML>", "\n";
    print  "<HEAD><TITLE>List of Environment Variables</TITLE></HEAD>", "\n";
    print "<BODY>", "\n";
    print "<H1>", "CGI Environment Variables", "</H1>", "<HR>", "\n";
    while ( ($env_var, $info) = each %list ) {
          print $info, "<B>", $ENV{$env_var}, "</B>", "<BR>","\n";
    }

    print "<HR>", "\n";
    print "</BODY>", "</HTML>", "\n";
    exit (0);

The associative array contains each environment variable and its description. The while loop iterates through the array one variable at a time with the each command. Figure 2.3 shows what the output will look in a browser window.

#### Figure 2.3: Output of example program

Other Languages on Macintosh Servers |  | Output from the Common Gateway Interface