Côté fureteur
Traiter des saisies issues du fureteur

Une page Web peut contenir des ordres de saisie
<form ....

A la fin de la saisie, un message spécial est envoyé vers le serveur, qui traite spécifiquement

(voir)


/* rexx */                             /* procédure d'essai de GET         */

   /* programme d'essai et de démonstration de l'usage des <forms> */

   /* accès aux données externes */
   method   = value( "REQUEST_METHOD",,"OS2ENVIRONMENT")
   strg     = value( "QUERY_STRING",,"OS2ENVIRONMENT")


   /* réponse à la page Ipso */

   Call MimeHeader
   say "<html><head>"
   say "<title>Esais Ipso</title>"
   say "</head><body>"
   say "<h1>Bilan d'un appel</h1>"

   say "<hr>"
   say "<p>REQUEST_METHOD" method
   say '<p>QUERY_STRING' strg

   strg = translate(strg, '&', '?')
   parse var strg 'machine=' nommach '&' .  ; nommach = decode(nommach)
   parse var strg 'location=' nomlieu '&' . ; nomlieu = decode(nomlieu)

   say  '<hr><font size=+2>machine : >'nommach'<., localisation : >'nomlieu'<.'
   say "<hr></body></html>"

   exit


MimeHeader: procedure
   dte = date('W')',' translate(date('N'),'-', ' ') time() 'GMT'
   say "HTTP/1.0 200 OK"
   say "MIME-Version: 1.0"
   say "Date:" dte
   say "Expires:" dte
   say "Content-Type: text/html"
   say ""
   say "<!- IPSO - B. Mailhol / Oct 1997 -->"
   return


Decode: procedure
   /* cette procédure reçoit une valeur codée reçue du Web, puis la décode */
   /* Attention, les caractères créés sont en code ISO 8859-1 (latin-1) */
   parse arg  valeur

   /* changer (back) les plus en espaces */
   valeur = translate( valeur, ' ', '+')

   /* changer (back) les valeurs hexadécimales */

   p=1
   Do while p >0
      p = pos( '%', valeur, p)
      If p = 0 then leave
      hexa =  substr( valeur, p+1, 2)
      valeur = substr( valeur, 1, p-1) || X2C(hexa) || substr(valeur, p+3)
      p = p +1
   End                                 /* End do                           */

   return valeur


/* répondre par une erreur */
HttpError: procedure
   parse arg msg
   say "HTTP/1.0 204" msg
   say ""
   exit