[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
URL structs in cgi^ script
I would like to be able to access the members of a struct from within a cgi^
script. The problem is that the url struct procedures don't work the way I
expect.
(I'm using DrScheme v.103)
Here's one of many attempts to get this to work (file: test4.cgi):
(require-library "web-servers.ss" "server")
(define test@
(unit/sig ()
(import [url : mzlib:url^] [cgi : cgi^])
`(html (head (title "Test"))
(body (h1 "This is test4.cgi")
(h2 ,(format "uri: ~s" (struct->vector cgi:uri)))
(h3 ,(format "query: ~s" (url:url? cgi:uri)))))))
(compound-unit/sig
(import (cgi : cgi^))
(link
[STRING : mzlib:string^ ((require-library-unit/sig "stringr.ss"))]
[FUN : mzlib:function^ ((require-library-unit/sig "functior.ss"))]
[FILE : mzlib:file^ ((require-library-unit/sig "filer.ss") STRING
FUN)]
[URL : mzlib:url^ ((require-library-unit/sig "urlr.ss" "net")
FILE)]
[BASE64 : mzlib:base64^ ((require-library-unit/sig "base64r.ss"
"net"))]
[XML : xml^ ((require-library-unit/sig "xmlr.ss" "xml")
FUN)]
[B : () (test@ URL cgi)])
(export))
Here's the resulting HTML from my browser:
<html>
<head><title>Test</title></head>
<body>
<h1>This is test4.cgi</h1>
<h2>uri: #8(struct:url #f #f #f "/cgi-bin/test4.cgi" #f
"these?are?the?args" #f)</h2>
<h3>query: #f</h3>
</body>
</html>
I would expect (url:url? cgi:uri) --> #t