********************************************************************
* Sample RPG Script - Sample RPG script that returns input values
*
* Source: WWWSAMPLES/QRPGSRC (CGIRTEST)
* Object: WWWCGI/CGIRTEST *PGM
*
* Program notes:
* 1)4 server APIs are called:
* WWWGETEN - Get environment variables
* WWWWRTHD - Return response header to the browser (2 CR,LF)
* WWWWRTCL - Return results to the browser (1 CR,LF)
* WWWWRITE - Return results to the browser (0 CR,LF)
*
* Compile notes:
* 1)Add library WWWSERVER to the library list.
* 2)Text is uppercased so the script will work correctly when
* running under CCSID 5026.
********************************************************************
********************************************************************
*
* Array definitions
E ENV 1 19 20
E TXT 1 3 80
E VAR 20 1
E VALA 999 1
*
********************************************************************
*
* Constants used by the sample program
I '' C HTML
I '' C EHTML
I '
' C BODY
I '' C EBODY
I '' C EUL
I '' C LI
I ' = ' C EQ
*
* Binary fields used by the sample program
IBINFLD DS
I B 1 40VARLEN
I B 5 80VALBP
I B 9 120VALBA
I B 13 160BYTIN
I B 17 200BYTOUT
I B 21 240I
I B 25 280J
IVAL DS
I 1 999 VALA
*
* PLIST for WWWGETEN API
C GETEN PLIST
C PARM VAR
C PARM VARLEN
C PARM VAL
C PARM VALBP
C PARM VALBA
*
* PLIST for WWWWRITE, WWWWRTHD, WWWWRTCL APIs
C WWRITE PLIST
C PARM VAL
C PARM BYTIN
C PARM BYTOUT
*
********************************************************************
********************************************************************
*
* MAIN
*
********************************************************************
C EXSR SRTOP
C EXSR SRGET
C EXSR SREND
C SETON LR
C RETRN
*
* Subroutine used to retrieve form variables and write to survey database
C SRGET BEGSR
C Z-ADD1 I
C I DOWLE19
* Return
C MOVELLI VAL
C Z-ADD4 BYTIN
C CALL 'WWWWRITE'WWRITE
* Set environment variable name and length
C MOVEAENV,I VAR
C Z-ADD1 J
C VAR,J DOWNE*BLANK
C ADD 1 J
C ENDDO
C J SUB 1 VARLEN
* Return environment variable name
C MOVEAVAR VAL
C Z-ADDVARLEN BYTIN
C CALL 'WWWWRITE'WWRITE
* Return =
C MOVELEQ VAL
C Z-ADD3 BYTIN
C CALL 'WWWWRITE'WWRITE
* Retrieve environment variable
C Z-ADD999 VALBP
C CALL 'WWWGETEN'GETEN
* Return environment variable value
C Z-ADDVALBA BYTIN
C CALL 'WWWWRTCL'WWRITE
C ADD 1 I
C ENDDO
C ENDSR
*
* Subroutine used to return the top of the document
C SRTOP BEGSR
* Send response header which sets the document content type
C MOVEATXT,1 VAL
C Z-ADD80 BYTIN
C CALL 'WWWWRTHD'WWRITE
*
C MOVELHTML VAL
C Z-ADD6 BYTIN
C CALL 'WWWWRTCL'WWRITE
*
C MOVEATXT,2 VAL
C Z-ADD80 BYTIN
C CALL 'WWWWRTCL'WWRITE
*
C MOVELBODY VAL
C Z-ADD6 BYTIN
C CALL 'WWWWRTCL'WWRITE
*
C MOVEATXT,3 VAL
C Z-ADD80 BYTIN
C CALL 'WWWWRTCL'WWRITE
*
C MOVELUL VAL
C Z-ADD4 BYTIN
C CALL 'WWWWRTCL'WWRITE
C ENDSR
*
* Subroutine used to return the end of the document
C SREND BEGSR
*
C MOVELEUL VAL
C Z-ADD5 BYTIN
C CALL 'WWWWRTCL'WWRITE
*
C MOVELEBODY VAL
C Z-ADD7 BYTIN
C CALL 'WWWWRTCL'WWRITE
*
C MOVELEHTML VAL
C Z-ADD7 BYTIN
C CALL 'WWWWRTCL'WWRITE
C ENDSR
**
SERVER_SOFTWARE
SERVER_NAME
GATEWAY_INTERFACE
SERVER_PROTOCOL
SERVER_PORT
REQUEST_METHOD
PATH_INFO
PATH_TRANSLATED
SCRIPT_NAME
QUERY_STRING
REMOTE_HOST
REMOTE_ADDR
REMOTE_USER
REMOTE_PASSWORD_MD5
AUTH_TYPE
CONTENT_TYPE
CONTENT_LENGTH
HTTP_USER_AGENT
HTTP_ACCEPT
**
CONTENT-TYPE: TEXT/HTML
CGI/1.1 RPG TEST SCRIPT REPORT
CGI/1.1 RPG TEST SCRIPT REPORT: