Main Menu

KB#00702-Program to help see what the BASIC Web Utility Environment looks like

Title:

Program to help see what the BASIC Web Utility Environment looks like

Description:

While using the BASIC Web Utility (BWU), there are times when you'd like to have more information about the environment and the ENV$ and CGI$ string templates in specific. The ENV$ template contains information on the web client's environment, and the CGI$ template contains information that is sent from the user's browser. The CGI$ template will only be defined and contain information if the client's browser specifically sent information to the BWU. For example, setting the browser to: 

http://server/cgi-bin/stdcgi.exe 

will cause the CGI$ template to be null. However, if the browser passes information to the BWU as in: 

http://server/cgi-bin/stdcgi.exe?test_field=Testing_1_2_3 

the CGI$ template will be defined. 


There is a sample program included below (both in non-numbered version for easier reading and numbered so that you can cut and paste it into PRO/5) that will return the templates and their values. 

=============================================================== 

REM this program dumps the environment and cgi data 

call "utcgi.wbb",env$,cgi$,errmsg$ 

LET ENV_TEMP$=FATTR(ENV$) 
LET ENV_LIST$=FATTR(ENV$,"") 

REM loop through the environment string 
        LET HTML$=ENV_TEMP$+"<br><hr><ul>" 
        LET DONE=0 
        WHILE !(DONE) 
                 LET FPOS=POS($0A$=ENV_LIST$) 
                 IF FPOS<>0 THEN 
:                           LET FLDNAME$=ENV_LIST$(1,FPOS-1); 
:                           LET ENV_LIST$=ENV_LIST$(FPOS+1); 
:                           LET HTML$=HTML$+"<li>"+FLDNAME$+" = "+FIELD(ENV$,FLDNAME$)+"</li>" 
:                  ELSE 
:                           LET DONE=1 
        WEND 
        LET HTML$=HTML$+"</ul><br><hr>" 

LET CGI_TEMP$=FATTR(CGI$,err=done) 
LET CGI_LIST$=FATTR(CGI$,"")          

        REM loop through the cgi string 
        LET HTML$=HTML$+CGI_TEMP$+"<br><hr><ul>" 
        LET DONE=0 
        WHILE !(DONE) 
                 LET FPOS=POS($0A$=CGI_LIST$) 
                 IF FPOS<>0 THEN LET FLDNAME$=CGI_LIST$(1,FPOS-1); 
:                           LET CGI_LIST$=CGI_LIST$(FPOS+1); 
:                           LET HTML$=HTML$+"<li>"+FLDNAME$+" = "+FIELD(CGI$,FLDNAME$)+"</li>" 
:                  ELSE 
:                           LET DONE=1 
        WEND 
        LET HTML$=HTML$+"</ul><br><hr>" 

DONE: 
CALL "uttags.wbb","HTML",HTML$,FINALHTML$ 
CALL "utsend.wbb",FINALHTML$ 
CALL "utexit.wbb",CGI$ 

RELEASE 

=============================================================== 

0010 REM this program dumps the environment and cgi data 
0020 CALL "utcgi.wbb",ENV$,CGI$,ERRMSG$ 
0030 LET ENV_TEMP$=FATTR(ENV$) 
0040 LET ENV_LIST$=FATTR(ENV$,"") 
0050 REM loop through the environment string 
0060 LET HTML$=ENV_TEMP$+"<br><hr><ul>" 
0070 LET DONE=0 
0080 WHILE !(DONE) 
0090 LET FPOS=POS($0A$=ENV_LIST$) 
0100 IF FPOS<>0 THEN LET FLDNAME$=ENV_LIST$(1,FPOS-1); LET ENV_LIST$=ENV_LIST$ 
0100:(FPOS+1); LET HTML$=HTML$+"<li>"+FLDNAME$+" = "+FIELD(ENV$,FLDNAME$)+"</l 
0100:i>" ELSE LET DONE=1 
0110 WEND 
0120 LET HTML$=HTML$+"</ul><br><hr>" 
0130 LET CGI_TEMP$=FATTR(CGI$,ERR=DONE) 
0140 LET CGI_LIST$=FATTR(CGI$,"") 
0150 REM loop through the cgi string 
0160 LET HTML$=HTML$+CGI_TEMP$+"<br><hr><ul>" 
0170 LET DONE=0 
0180 WHILE !(DONE) 
0190 LET FPOS=POS($0A$=CGI_LIST$) 
0200 IF FPOS<>0 THEN LET FLDNAME$=CGI_LIST$(1,FPOS-1); LET CGI_LIST$=CGI_LIST$ 
0200:(FPOS+1); LET HTML$=HTML$+"<li>"+FLDNAME$+" = "+FIELD(CGI$,FLDNAME$)+"</l 
0200:i>" ELSE LET DONE=1 
0210 WEND 
0220 LET HTML$=HTML$+"</ul><br><hr>" 
0230 DONE: 
0240 CALL "uttags.wbb","HTML",HTML$,FINALHTML$ 
0250 CALL "utsend.wbb",FINALHTML$ 
0260 CALL "utexit.wbb",CGI$ 
0270 RELEASE 

=============================================================== 
Sample Output 
=============================================================== 

COMPUTERNAME:C(1*=0),COMSPEC:C(1*=0),CONTENT_LENGTH:C(1*=0),CVSROOT:C(1*=0),GATEWAY_INTERFACE:C(1*=0),HTTP_ACCEPT:C(1*=0),HTTP_ACCEPT_LANGUAGE:C(1*=0),HTTP_HOST:C(1*=0),HTTP_USER_AGENT:C(1*=0),HTTP_ACCEPT_ENCODING:C(1*=0),HTTPS:C(1*=0),INCLUDE:C(1*=0),INSTANCE_ID:C(1*=0),LIB:C(1*=0),LOCAL_ADDR:C(1*=0),MSINPUT:C(1*=0),NUMBER_OF_PROCESSORS:C(1*=0),OS2LIBPATH:C(1*=0),OS:C(1*=0),PATH:C(1*=0),PATH_TRANSLATED:C(1*=0),PATHEXT:C(1*=0),PROCESSOR_ARCHITECTURE:C(1*=0),PROCESSOR_IDENTIFIER:C(1*=0),PROCESSOR_LEVEL:C(1*=0),PROCESSOR_REVISION:C(1*=0),QUERY_STRING:C(1*=0),REMOTE_ADDR:C(1*=0),REMOTE_HOST:C(1*=0),REQUEST_METHOD:C(1*=0),SCRIPT_NAME:C(1*=0),SERVER_NAME:C(1*=0),SERVER_PORT:C(1*=0),SERVER_PORT_SECURE:C(1*=0),SERVER_PROTOCOL:C(1*=0),SERVER_SOFTWARE:C(1*=0),SYSTEMDRIVE:C(1*=0),SYSTEMROOT:C(1*=0),USERPROFILE:C(1*=0),WINDIR:C(1*=0)

-------------------------------------------------------------------------------- 

COMPUTERNAME = SERVER 
COMSPEC = C:\WINNT\system32\cmd.exe 
CONTENT_LENGTH = 0 
GATEWAY_INTERFACE = CGI/1.1 
HTTP_ACCEPT = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, */* 
HTTP_ACCEPT_LANGUAGE = en-us 
HTTP_HOST = double 
HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 4.01; Windows NT) 
HTTP_ACCEPT_ENCODING = gzip, deflate 
HTTPS = off 
INCLUDE = C:\Program Files\comm\Mts\Include 
INSTANCE_ID = 1 
LIB = C:\Program Files\comm\Mts\Lib 
LOCAL_ADDR = 192.168.1.192 
MSINPUT = C:\Program Files\util\intellipoint 
NUMBER_OF_PROCESSORS = 1 
OS2LIBPATH = C:\WINNT\system32\os2\dll; 
OS = Windows_NT 
PATH = C:\WINNT\system32;C:\WINNT;C:\Program Files\comm\Mts 
PATH_TRANSLATED = C:\Inetpub\wwwroot 
PATHEXT = .COM;.EXE;.BAT;.CMD;.VBS;.JS 
PROCESSOR_ARCHITECTURE = x86 
PROCESSOR_IDENTIFIER = x86 Family 5 Model 8 Stepping 0, AuthenticAMD 
PROCESSOR_LEVEL = 5 
PROCESSOR_REVISION = 0800 
QUERY_STRING = test_field=Testing_1_2_3 
REMOTE_ADDR = 192.168.1.4 
REMOTE_HOST = 192.168.1.4 
REQUEST_METHOD = GET 
SCRIPT_NAME = /cgi-bin/stdcgi.exe 
SERVER_NAME = double 
SERVER_PORT = 80 
SERVER_PORT_SECURE = 0 
SERVER_PROTOCOL = HTTP/1.0 
SERVER_SOFTWARE = Microsoft-IIS/4.0 
SYSTEMDRIVE = C: 
SYSTEMROOT = C:\WINNT 
USERPROFILE = C:\WINNT\Profiles\Default User 
WINDIR = C:\WINNT 


-------------------------------------------------------------------------------- 
TEST_FIELD:C(1*=0) 

-------------------------------------------------------------------------------- 

TEST_FIELD = Testing_1_2_3 


-------------------------------------------------------------------------------- 



Last Modified: 03/31/2004 Product: BASIC Web Utility Operating System: N/A

BASIS structures five components of their technology into the BBx Generations.

View BASIS LinkedIN Profile Visit our Twitter Feed Check out our Facebook Public Profile Click to View the BASIS youTube channel