| Esempio di stringa di input: cgiinp01=George&cgiinp02=Brown
 
 Una volta che il CGI ha letto la stringa di input
        inviata dal browser remoto, deve capire la richiesta.
        Per farlo, occorre qualche routine che faccia lo scan
        della stringa di input per tutte le possibili keyword
        in input e ne salvi i valori dentro variabili del programma,
        dimodochè il programma possa poi elaborare
        la specifica richiesta.
        Questa operazione di "spezzettamento" della stringa
        di input ha il nome di "parsing".
        1. Procedura di parsing "zhbGetVar"
 Il service program di CGIDEV2 fornisce le seguenti sottoprocedure di parsing:
 La procedura di parsing zhbgetvar
        consente di reperire uno alla volta i singoli parametri
        della stringa di input copiandoli in campi definiti
        dal programma.La procedura di parsing
        zhbgetvarupper
        consente altresì di convertire in maiuscolo
        i parametri ricevuti.
 La procedura di parsing
        zhbgetvarlower
        consente invece di convertire in minuscolo
        i parametri ricevuti.
 L'esempio seguente ilustra come usare zhbGetVar in un programma CGI:
         
        | 
 * Definizione dei prototipi e della DS standard per i codici errore delle API
 /copy CGIDEV2/qrpglesrc,prototypeb
 /copy CGIDEV2/qrpglesrc,usec
 * Numero di variabili di input ricevute
DnbrVars          s             10i 0
 *
 * Query string ricevuta
Dsavedquerystring...
D                 s          32767    varying
 *
 * Variabili inviate dal browser
D custname        s             40
D emailadd        s             40
D state           s              2
            ... ecc. ...
 * Acquisisci il buffer di input spedito dal browser del client
C                   eval      nbrVars =
C                             zhbgetinput(savedquerystring:qusec)
 * Fai il parsing delle variabili di input:
 * - nome cliente
C                   eval      custname = zhbgetvar('custname')
 * - indirizzo email
C                   eval      emailadd = zhbgetvar('emailadd')
 * - stato
C                   eval      state = zhbgetvar('state')
         |  Per un esempio completo vedi l'origine del programma
        TEMPLATE3.
        
 2. Procedura di parsing zhbGetVarPtr
 La procedura di parsing zhbgetvarptr
        restituisce un pointer ad una data variabile di input.
        Questo č utile quando la lunghezza dela variabile di input puņ superare la lunghezza massima (32767)
        supportata da ZhbGetVar. In questo caso la massima lunghezza puņ essere 64000.Se il pointer contiene il valore *null, questo significa che la variabile di input non č stata trovata,
        oppure che la sua lunghezza č 0.
 L'esempio seguente ilustra come usare zhbGetVarPtr in un programma CGI:
         
        | 
 * Definizione dei prototipi e della DS standard per i codici errore delle API
 /copy CGIDEV2/qrpglesrc,prototypeb
 /copy CGIDEV2/qrpglesrc,usec
 * Numero delle variabili ricevute
DnbrVars          s             10i 0
 * Query string ricevuta
Dsavedquerystring...
D                 s          32767    varying
 *
 * Pointer restituito da zhbGetVarPtr
D ReturnVarP      s               *
 * Variabili usate da zhbGetVarPtr
D  varnamein      s             50
D  occurrence     s             10i 0
D  varLenOut      s             10i 0
            ... etc. ...
 * Acquisisci il buffer di input spedito dal browser del client
C                   eval      nbrVars =
C                             zhbgetinput(savedquerystring:qusec)
 * Acquisici il pointer per la variabile di input denominata 'longstring':
C                   eval      occurrence = 1
C                   eval      ReturnVarP = zhbGetVarPtr('longstring':
C                             occurrence:
C                             varLenOut) |  Nota.
        Non si usi questa procedura per leggere un file upload-ato dal browser.
        Vedi Uploading PC files.
        
 3. Altre procedure di parsing
 
        ZhbCountAllVars:
            restituisce il numero di presenze di tutte le variabili
            nella stringa di input
            (ovviamente bisogna aver prima eseguito la procedura ZhbGetInput)
        ZhbGetVarDetails:
                l'utente specifica il numero della variabile
                (entro il range ottenuto da
                ZhbCountAllVars) e riceve le
                informazioni seguenti:
                nome della variabile,
                numero di ripetizione di questa variabile,
                indicatore (car. 0/1) di variabile trovata.
              
        | 
D  nbrInpVars     s             10i 0
D  ThisVarVal     s           1000a
D  ThisOccur      s             10i 0
D  ThisVarName    s             50
D  ThisVarOccur   s             10i 0
D  FoundInd       s               n
 * Acquisisco il buffer di input spedito dal browser del client
C                   eval      nbrVars =
C                             zhbgetinput(savedquerystring:qusec)
 * Ricevo il numero totale di variabili di input (duplicati compresi) trasmesse dal browser
C                   eval      nbrInpVars = ZhbCountAllVars
 * Ricevo informazioni dettagliate su ciascuna variabile di input
C                   if        nbrInpVars > 0
C     1             do        nbrInpVars    ThisOccur
C                   eval      ThisVarVal =
C                             ZhbGetVarDetails(ThisOccur:
C                             ThisVarName:
C                             ThisVarOccur:
C                             FoundInd)
C                   enddo
C                   endif |  
 4. Ricevere in nomi delle variabilli di input
 Si puņ presentare il caso in cui il programma CGI non sa a priori i nomi delle variabili di input
        e quindi se li deve trovare.In un caso simile, il problema puņ essere risolto eseguendo in sequenza le procedure seguenti:
 
        ZhbGetInput
        ZhbCountAllVars
        ZhbGetVarDetails
         
 
 
 |