Hi Henrik,

> separate problem, I want to jump to http://localhost:8080/@desktop but
> the GUI stuff is overriding something so I end up for instance at
> http://localhost:54688/@desktop.

Yes. This is because the browser assumes a local URL and thus uses the
base href to produce the full address. The base href contains the port
of the current session. As you say, you can easily circumvent this by

   (redirect "http://localhost:8080/@desktop";)

or (if with httpGate)

   (redirect "http://localhost/8080/@desktop";)

> the cookie was not set after all.

This is because the cookie header information is normally set in

However, 'redirect' calls 'httpStat', which builds its own head (without
setting the cookie information). But I doubt it would help to send the
cookies here anyway, because the browser won't probably pass them to the
new address (?)

I'm not sure if that answers all your questions ...

> (if Uid
>    (cookie 'uid 123455)
>    (url "@signin"))

BTW, (url "@signin") is not needed here. It is implicit by the 'form'
mechanism which always POSTs back to iteself. Instead, you could display
an error message, e.g.:

   (gui '(+Button) "Login"
      '(ifn (chkLogin (val> (: home uname)) (val> (: home pwd)))
         (err "Could not log in")
         (cookie 'uid Uid)  # Implicit 'prog' in the 'else' part
         ... ) )

- Alex

Reply via email to