view demo/cookieSec.ur @ 1909:659d1f4e95bf

make dist: Use fewer wildcards The remaining ones only work by accident: http://www.gnu.org/software/automake/manual/html_node/Wildcards.html and they have some practical problems too (we don?t really want to distribute include/urweb/config.h or src/config.sml), but this is enough for now to pass ?make distcheck? as long as we don?t run it from a separate build directory. Signed-off-by: Anders Kaseorg <andersk@mit.edu> --- Makefile.am | 6 +++--- src/c/Makefile.am | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)
author Anders Kaseorg <andersk@mit.edu>
date Fri, 22 Nov 2013 09:36:14 -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 ()