diff options
author | Adam Chlipala <adamc@hcoop.net> | 2009-05-03 15:38:49 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2009-05-03 15:38:49 -0400 |
commit | e57a588744ec72e443d69d2e47b4a9a199613745 (patch) | |
tree | 09387818d6f755a3b5eec66ad560cbe707f348dd /demo/cookieSec.ur | |
parent | 92df298250032469bab59565aa4e23a86b4a6e9a (diff) |
cookieSec demo
Diffstat (limited to 'demo/cookieSec.ur')
-rw-r--r-- | demo/cookieSec.ur | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/demo/cookieSec.ur b/demo/cookieSec.ur new file mode 100644 index 00000000..447d38ad --- /dev/null +++ b/demo/cookieSec.ur @@ -0,0 +1,39 @@ +cookie username : string + +table lastVisit : { User : string, When : time } + PRIMARY KEY User + +fun main () = + userO <- getCookie username; + + list <- queryX (SELECT * FROM lastVisit) + (fn r => <xml><tr><td>{[r.LastVisit.User]}</td> <td>{[r.LastVisit.When]}</td></tr></xml>); + + return <xml><body> + Cookie: {[userO]}<br/> + + <table> + <tr><th>User</th> <th>Last Visit</th></tr> + {list} + </table> + + <h2>Set cookie value</h2> + <form><textbox{#User}/> <submit action={set}/></form> + + <h2>Record your visit</h2> + <form><submit action={imHere}/></form> + </body></xml> + +and set r = + setCookie username r.User; + main () + +and imHere () = + userO <- getCookie username; + case userO of + None => return <xml>You don't have a cookie set!</xml> + | Some user => + dml (DELETE FROM lastVisit WHERE User = {[user]}); + dml (INSERT INTO lastVisit (User, When) VALUES ({[user]}, CURRENT_TIMESTAMP)); + main () + |