summaryrefslogtreecommitdiff
path: root/demo
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-11-26 14:20:00 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-11-26 14:20:00 -0500
commit20a451e11a5c10d4751beebcf09e0c86568ac5d2 (patch)
tree428c81f5418b09ac4d8f8bbfa61e16723e519f67 /demo
parent27e785f13b18b42885b15cb38a2cd48d7e8fbdd5 (diff)
More fun with cookies
Diffstat (limited to 'demo')
-rw-r--r--demo/cookie.ur27
1 files changed, 25 insertions, 2 deletions
diff --git a/demo/cookie.ur b/demo/cookie.ur
index ad4e19ec..7e011157 100644
--- a/demo/cookie.ur
+++ b/demo/cookie.ur
@@ -1,15 +1,30 @@
cookie c : {A : string, B : float, C : int}
fun set r =
- setCookie c {A = r.A, B = readError r.B, C = readError r.C};
+ setCookie c {Value = {A = r.A, B = readError r.B, C = readError r.C},
+ Expires = None,
+ Secure = False};
return <xml>Cookie set.</xml>
+fun setExp r =
+ setCookie c {Value = {A = r.A, B = readError r.B, C = readError r.C},
+ Expires = Some (readError "2012-11-6 00:00:00"),
+ Secure = False};
+ return <xml>Cookie set robustly.</xml>
+
+fun delete () =
+ clearCookie c;
+ return <xml>Cookie cleared.</xml>
+
fun main () =
ro <- getCookie c;
return <xml><body>
{case ro of
None => <xml>No cookie set.</xml>
- | Some v => <xml>Cookie: A = {[v.A]}, B = {[v.B]}, C = {[v.C]}</xml>}
+ | Some v => <xml>
+ Cookie: A = {[v.A]}, B = {[v.B]}, C = {[v.C]}<br/>
+ <form><submit value="Delete" action={delete}/></form>
+ </xml>}
<br/><br/>
<form>
@@ -17,5 +32,13 @@ fun main () =
B: <textbox{#B}/><br/>
C: <textbox{#C}/><br/>
<submit action={set}/>
+ </form><br/>
+
+ <form>
+ <b>Version that expires on November 6, 2012:</b><br/>
+ A: <textbox{#A}/><br/>
+ B: <textbox{#B}/><br/>
+ C: <textbox{#C}/><br/>
+ <submit action={setExp}/>
</form>
</body></xml>