aboutsummaryrefslogtreecommitdiffhomepage
path: root/demo/cookieSec.ur
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-05-03 15:38:49 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-05-03 15:38:49 -0400
commite57a588744ec72e443d69d2e47b4a9a199613745 (patch)
tree09387818d6f755a3b5eec66ad560cbe707f348dd /demo/cookieSec.ur
parent92df298250032469bab59565aa4e23a86b4a6e9a (diff)
cookieSec demo
Diffstat (limited to 'demo/cookieSec.ur')
-rw-r--r--demo/cookieSec.ur39
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 ()
+