Mercurial > urweb
view demo/cookieSec.ur @ 1083:2eb585274501
Stop skipping Especialization of generated functions; fix Compiler.parseUrp; expose uw_really_write(); allow more NULL arguments to uw_register_transactional()
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Wed, 23 Dec 2009 12:25:34 -0500 |
parents | 731e6aa6655a |
children |
line wrap: on
line source
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 {Value = r.User, Expires = None, Secure = False}; 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 ()