| 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
/* 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