<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-460494576591090006</id><updated>2011-07-28T07:43:23.451-07:00</updated><category term='getCookieVal'/><category term='Set-Cookie'/><category term='lotusscript'/><category term='cookies'/><category term='agent'/><title type='text'>Notes Chat</title><subtitle type='html'>Discusses Lotus Notes/Domino coding and programming techniques</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://noteschat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/460494576591090006/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://noteschat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dietrich</name><uri>http://www.blogger.com/profile/17594193533055060710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-460494576591090006.post-5277267870810956945</id><published>2008-02-13T22:27:00.000-08:00</published><updated>2008-02-13T22:34:41.177-08:00</updated><title type='text'>Add Cookie manipulation to WebSession Class</title><content type='html'>To add the getCookieVal function and the setCookie subroutine to Jake Howlett's &lt;a href="http://www.codestore.info/store.nsf/unid/BLOG-20080211"&gt;WebSession class&lt;/a&gt;, add them and the escape and unescape functions at the end of the class.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=lotusscript&gt;&lt;br /&gt;&lt;font class=ls-statement&gt;Class&lt;/font&gt; WebSession &lt;br /&gt; &lt;font class=ls-keyword&gt;Public&lt;/font&gt; session &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-class&gt;Notessession&lt;/font&gt;&lt;br /&gt; &lt;font class=ls-keyword&gt;Public&lt;/font&gt; &lt;font class=ls-constant&gt;database&lt;/font&gt; &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-class&gt;NotesDatabase&lt;/font&gt;&lt;br /&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;font class=ls-statement&gt;Sub&lt;/font&gt; &lt;font class=ls-statement&gt;return&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;URL &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;If&lt;/font&gt; &lt;font class=ls-function&gt;Left&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;URL&lt;font class=ls-operator&gt;,&lt;/font&gt; 1&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;&amp;#60;&lt;/font&gt;&lt;font class=ls-operator&gt;&amp;#62;&lt;/font&gt;&lt;font class=ls-quote&gt;"/"&lt;/font&gt; &lt;font class=ls-statement&gt;Then&lt;/font&gt;&lt;br /&gt;   URL &lt;font class=ls-operator&gt;=&lt;/font&gt; &lt;font class=ls-quote&gt;"/"&lt;/font&gt;&lt;font class=ls-operator&gt;+&lt;/font&gt;URL&lt;br /&gt;  &lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;If&lt;/font&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;font class=ls-function&gt;Print&lt;/font&gt; &lt;font class=ls-quote&gt;"Location: "&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; URL&lt;br /&gt; &lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;Sub&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font class=ls-comment&gt;' insert functions and subroutines here&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font class=ls-comment&gt;' escape function is the same&lt;/font&gt;&lt;br /&gt; &lt;font class=ls-statement&gt;Function&lt;/font&gt; escape&lt;font class=ls-operator&gt;(&lt;/font&gt;strIn &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt; &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; strAllowed &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; i &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;Integer&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; strChar &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; strReturn &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;br /&gt;  escape &lt;font class=ls-operator&gt;=&lt;/font&gt; strReturn&lt;br /&gt; &lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;Function&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font class=ls-comment&gt;' unescape function is the same&lt;/font&gt;&lt;br /&gt; &lt;font class=ls-statement&gt;Function&lt;/font&gt; unescape&lt;font class=ls-operator&gt;(&lt;/font&gt;strIn &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt; &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; i &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;Integer&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; strChar &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; strReturn &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;br /&gt;  unescape &lt;font class=ls-operator&gt;=&lt;/font&gt; strReturn&lt;br /&gt; &lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;Function&lt;/font&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;font class=ls-comment&gt;' getCookieValfunction is the same &lt;/font&gt;&lt;br /&gt; &lt;font class=ls-statement&gt;Function&lt;/font&gt; getCookieVal&lt;font class=ls-operator&gt;(&lt;/font&gt;thisname &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt; &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; cookie &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; prefix &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;&lt;br /&gt;  getCookieVal &lt;font class=ls-operator&gt;=&lt;/font&gt; unescape&lt;font class=ls-operator&gt;(&lt;/font&gt;&lt;font class=ls-function&gt;Mid$&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;cookie&lt;font class=ls-operator&gt;,&lt;/font&gt; begin&lt;font class=ls-operator&gt;+&lt;/font&gt;&lt;font class=ls-keyword&gt;Len&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;prefix&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;,&lt;/font&gt; ending &lt;font class=ls-operator&gt;-&lt;/font&gt; begin &lt;font class=ls-operator&gt;-&lt;/font&gt;&lt;font class=ls-keyword&gt;Len&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;prefix&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;+&lt;/font&gt;1&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt; &lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;Function&lt;/font&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;font class=ls-comment&gt;' the setCookie sub  needs a small adjustment where the database path (dbpath) is calculated &lt;/font&gt;&lt;br /&gt; &lt;font class=ls-statement&gt;Sub&lt;/font&gt; setCookie&lt;font class=ls-operator&gt;(&lt;/font&gt;compName &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;font class=ls-operator&gt;,&lt;/font&gt; compValue &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;font class=ls-operator&gt;,&lt;/font&gt; adjYear &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;Integer&lt;/font&gt;&lt;font class=ls-operator&gt;,&lt;/font&gt; adjHour &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;Integer&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; thistime &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-class&gt;NotesDateTime&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; gmttime &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-class&gt;NotesDateTime&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; gmtvar &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;Variant&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; cooktime &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Set&lt;/font&gt; thistime &lt;font class=ls-operator&gt;=&lt;/font&gt; &lt;font class=ls-keyword&gt;New&lt;/font&gt; &lt;font class=ls-class&gt;NotesDateTime&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;&lt;font class=ls-quote&gt;""&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-function&gt;Call&lt;/font&gt; thistime&lt;font class=ls-operator&gt;.&lt;/font&gt;SetNow&lt;br /&gt;  &lt;font class=ls-statement&gt;If&lt;/font&gt; adjHour &lt;font class=ls-operator&gt;&amp;#60;&lt;/font&gt;&lt;font class=ls-operator&gt;&amp;#62;&lt;/font&gt; 0 &lt;font class=ls-statement&gt;Then&lt;/font&gt;&lt;br /&gt;   &lt;font class=ls-function&gt;Call&lt;/font&gt; thistime&lt;font class=ls-operator&gt;.&lt;/font&gt;AdjustHour&lt;font class=ls-operator&gt;(&lt;/font&gt;adjHour&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;If&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;If&lt;/font&gt; adjYear &lt;font class=ls-operator&gt;&amp;#60;&lt;/font&gt;&lt;font class=ls-operator&gt;&amp;#62;&lt;/font&gt; 0 &lt;font class=ls-statement&gt;Then&lt;/font&gt;&lt;br /&gt;   &lt;font class=ls-function&gt;Call&lt;/font&gt; thistime&lt;font class=ls-operator&gt;.&lt;/font&gt;AdjustYear&lt;font class=ls-operator&gt;(&lt;/font&gt;adjYear&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;If&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Set&lt;/font&gt; gmttime &lt;font class=ls-operator&gt;=&lt;/font&gt; &lt;font class=ls-keyword&gt;New&lt;/font&gt; &lt;font class=ls-class&gt;NotesDateTime&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;&lt;font class=ls-function&gt;Left$&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;thistime&lt;font class=ls-operator&gt;.&lt;/font&gt;GMTTime&lt;font class=ls-operator&gt;,&lt;/font&gt; &lt;font class=ls-keyword&gt;Len&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;thistime&lt;font class=ls-operator&gt;.&lt;/font&gt;GMTTime&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;-&lt;/font&gt;4&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt;  gmtvar &lt;font class=ls-operator&gt;=&lt;/font&gt; gmttime&lt;font class=ls-operator&gt;.&lt;/font&gt;LSLocalTime&lt;br /&gt;  cooktime &lt;font class=ls-operator&gt;=&lt;/font&gt; &lt;font class=ls-function&gt;Format&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;gmtvar&lt;font class=ls-operator&gt;,&lt;/font&gt; &lt;font class=ls-quote&gt;"dddd"&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;", "&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-function&gt;Format&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;gmtvar&lt;font class=ls-operator&gt;,&lt;/font&gt; &lt;font class=ls-quote&gt;"dd"&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;"-"&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-function&gt;Format&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;gmtvar&lt;font class=ls-operator&gt;,&lt;/font&gt; &lt;font class=ls-quote&gt;"mmm"&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;"-"&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-function&gt;Format&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;gmtvar&lt;font class=ls-operator&gt;,&lt;/font&gt; &lt;font class=ls-quote&gt;"yyyy"&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt;&lt;font class=ls-operator&gt;_&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-quote&gt;" "&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-function&gt;Format&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;gmtvar&lt;font class=ls-operator&gt;,&lt;/font&gt; &lt;font class=ls-quote&gt;"hh:mm:ss"&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;" GMT"&lt;/font&gt;&lt;br /&gt;  compName &lt;font class=ls-operator&gt;=&lt;/font&gt; escape&lt;font class=ls-operator&gt;(&lt;/font&gt;compName&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt;  compValue &lt;font class=ls-operator&gt;=&lt;/font&gt; escape&lt;font class=ls-operator&gt;(&lt;/font&gt;compValue&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-statement&gt;Dim&lt;/font&gt; dbpath &lt;font class=ls-keyword&gt;As&lt;/font&gt; &lt;font class=ls-keyword&gt;String&lt;/font&gt;&lt;br /&gt;  dbpath &lt;font class=ls-operator&gt;=&lt;/font&gt; &lt;font class=ls-function&gt;Strleft&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;&lt;font class=ls-function&gt;Lcase&lt;/font&gt;&lt;font class=ls-operator&gt;(&lt;/font&gt;&lt;font class=ls-keyword&gt;Me&lt;/font&gt;&lt;font class=ls-operator&gt;.&lt;/font&gt;document&lt;font class=ls-operator&gt;.&lt;/font&gt;Path_Info_Decoded&lt;font class=ls-operator&gt;(&lt;/font&gt;0&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt;&lt;font class=ls-operator&gt;,&lt;/font&gt; &lt;font class=ls-quote&gt;".nsf"&lt;/font&gt;&lt;font class=ls-operator&gt;)&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;".nsf"&lt;/font&gt;&lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;"/"&lt;/font&gt;&lt;br /&gt;  &lt;font class=ls-function&gt;Print&lt;/font&gt; &lt;font class=ls-quote&gt;"Set-Cookie: "&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; compName &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;"="&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; compValue &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;"; expires="&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; cooktime &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;"; path="&lt;/font&gt; &lt;font class=ls-operator&gt;+&lt;/font&gt; dbpath &lt;font class=ls-operator&gt;+&lt;/font&gt; &lt;font class=ls-quote&gt;";"&lt;/font&gt;&lt;br /&gt; &lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;Sub&lt;/font&gt;&lt;br /&gt; &lt;br /&gt;&lt;font class=ls-statement&gt;End&lt;/font&gt; &lt;font class=ls-statement&gt;Class&lt;/font&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/460494576591090006-5277267870810956945?l=noteschat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noteschat.blogspot.com/feeds/5277267870810956945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=460494576591090006&amp;postID=5277267870810956945' title='34 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/460494576591090006/posts/default/5277267870810956945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/460494576591090006/posts/default/5277267870810956945'/><link rel='alternate' type='text/html' href='http://noteschat.blogspot.com/2008/02/add-cookie-manipulation-to-websession.html' title='Add Cookie manipulation to WebSession Class'/><author><name>Dietrich</name><uri>http://www.blogger.com/profile/17594193533055060710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>34</thr:total></entry><entry><id>tag:blogger.com,1999:blog-460494576591090006.post-3814975234432086454</id><published>2008-02-04T20:12:00.000-08:00</published><updated>2008-02-04T22:02:13.907-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cookies'/><category scheme='http://www.blogger.com/atom/ns#' term='lotusscript'/><category scheme='http://www.blogger.com/atom/ns#' term='getCookieVal'/><category scheme='http://www.blogger.com/atom/ns#' term='Set-Cookie'/><category scheme='http://www.blogger.com/atom/ns#' term='agent'/><title type='text'>setCookie and getCookie using LotusScript</title><content type='html'>&lt;span style="font-family:times new roman;"&gt;These are two functions that can be used in LotusScript agents to set and get cookie values.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;setCookie&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:Times New Roman;"&gt;The technique used to set a cookie value prints a header code. You need to have set the Content-Type with,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;color:#6600cc;"&gt;Print&lt;/span&gt; &lt;span style="font-family:arial;font-size:85%;color:#330000;"&gt;"Content-Type:text/html"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;getCookieVal&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;The getCookieVal function uses the value obtained from doc.http_cookie(0) to obtain the value of the cookie name. For example, doc.http_cookie(0) may give you &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;test=thistest; user_name=Dietrich%20Willing&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Times New Roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Times New Roman;"&gt;The getCookieVal function will give 'thistest' if the parameter you used was 'test'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;So, here are the functions. I provide the escape and unescape functions, as they are used to ensure all characters can be stored and read.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Function&lt;/span&gt; getCookieVal&lt;span class="ls-operator"&gt;(&lt;/span&gt; cookie &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;span class="ls-operator"&gt;,&lt;/span&gt; thisname &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; prefix &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;prefix &lt;span class="ls-operator"&gt;=&lt;/span&gt; thisname &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;"="&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; begin &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;Integer&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; ending &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;Integer&lt;/span&gt;&lt;br /&gt;begin &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-function"&gt;Instr&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;cookie&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-quote"&gt;"; "&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; prefix&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;If&lt;/span&gt; begin &lt;span class="ls-operator"&gt;=&lt;/span&gt; 0 &lt;span class="ls-statement"&gt;Then&lt;/span&gt;&lt;br /&gt;begin &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-function"&gt;Instr&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;cookie&lt;span class="ls-operator"&gt;,&lt;/span&gt; prefix&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;If&lt;/span&gt; begin &lt;span class="ls-operator"&gt;=&lt;/span&gt; 0 &lt;span class="ls-statement"&gt;Then&lt;/span&gt;&lt;br /&gt;getCookieVal &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-quote"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Exit&lt;/span&gt; &lt;span class="ls-statement"&gt;Function&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Else&lt;/span&gt;&lt;br /&gt;begin &lt;span class="ls-operator"&gt;=&lt;/span&gt; begin &lt;span class="ls-operator"&gt;+&lt;/span&gt;2&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;If&lt;/span&gt;&lt;br /&gt;ending &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-function"&gt;Instr&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;begin&lt;span class="ls-operator"&gt;,&lt;/span&gt; cookie&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-quote"&gt;";"&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-operator"&gt;-&lt;/span&gt; 1&lt;br /&gt;&lt;span class="ls-statement"&gt;If&lt;/span&gt; ending &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-operator"&gt;-&lt;/span&gt;1 &lt;span class="ls-statement"&gt;Then&lt;/span&gt;&lt;br /&gt;ending &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-keyword"&gt;Len&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;cookie&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;If&lt;/span&gt;&lt;br /&gt;getCookieVal &lt;span class="ls-operator"&gt;=&lt;/span&gt; unescape&lt;span class="ls-operator"&gt;(&lt;/span&gt;&lt;span class="ls-function"&gt;Mid$&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;cookie&lt;span class="ls-operator"&gt;,&lt;/span&gt; begin&lt;span class="ls-operator"&gt;+&lt;/span&gt;&lt;span class="ls-keyword"&gt;Len&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;prefix&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;,&lt;/span&gt; ending &lt;span class="ls-operator"&gt;-&lt;/span&gt; begin &lt;span class="ls-operator"&gt;-&lt;/span&gt;&lt;span class="ls-keyword"&gt;Len&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;prefix&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;+&lt;/span&gt;1&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;Function&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Sub&lt;/span&gt; setCookie&lt;span class="ls-operator"&gt;(&lt;/span&gt;doc &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-class"&gt;NotesDocument&lt;/span&gt;&lt;span class="ls-operator"&gt;,&lt;/span&gt; compName &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;span class="ls-operator"&gt;,&lt;/span&gt; compValue &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;span class="ls-operator"&gt;,&lt;/span&gt; adjYear &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;Integer&lt;/span&gt;&lt;span class="ls-operator"&gt;,&lt;/span&gt; adjHour &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;Integer&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-comment"&gt;' uses a print statement to set the cookie&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-comment"&gt;' uses adjYear and adjHour to set the expiry time of the cookie.&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-comment"&gt;' If the cookie is needed for the one particular session set adjHour to 1, then the cookie is active for an hour&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-comment"&gt;' If you want to expire a cookie, use a negative number for either adjYear or adjHour.&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; thistime &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-class"&gt;NotesDateTime&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; gmttime &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-class"&gt;NotesDateTime&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; gmtvar &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;Variant&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; cooktime &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Set&lt;/span&gt; thistime &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-keyword"&gt;New&lt;/span&gt; &lt;span class="ls-class"&gt;NotesDateTime&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;&lt;span class="ls-quote"&gt;""&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-function"&gt;Call&lt;/span&gt; thistime&lt;span class="ls-operator"&gt;.&lt;/span&gt;SetNow&lt;br /&gt;&lt;span class="ls-statement"&gt;If&lt;/span&gt; adjHour &lt;span class="ls-operator"&gt;&lt;&lt;/span&gt;&lt;span class="ls-operator"&gt;&gt;&lt;/span&gt; 0 &lt;span class="ls-statement"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-function"&gt;Call&lt;/span&gt; thistime&lt;span class="ls-operator"&gt;.&lt;/span&gt;AdjustHour&lt;span class="ls-operator"&gt;(&lt;/span&gt;adjHour&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;If&lt;/span&gt; adjYear &lt;span class="ls-operator"&gt;&lt;&lt;/span&gt;&lt;span class="ls-operator"&gt;&gt;&lt;/span&gt; 0 &lt;span class="ls-statement"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-function"&gt;Call&lt;/span&gt; thistime&lt;span class="ls-operator"&gt;.&lt;/span&gt;AdjustYear&lt;span class="ls-operator"&gt;(&lt;/span&gt;adjYear&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Set&lt;/span&gt; gmttime &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-keyword"&gt;New&lt;/span&gt; &lt;span class="ls-class"&gt;NotesDateTime&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;&lt;span class="ls-function"&gt;Left$&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;thistime&lt;span class="ls-operator"&gt;.&lt;/span&gt;GMTTime&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-keyword"&gt;Len&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;thistime&lt;span class="ls-operator"&gt;.&lt;/span&gt;GMTTime&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;-&lt;/span&gt;4&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;gmtvar &lt;span class="ls-operator"&gt;=&lt;/span&gt; gmttime&lt;span class="ls-operator"&gt;.&lt;/span&gt;LSLocalTime&lt;br /&gt;cooktime &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-function"&gt;Format&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;gmtvar&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-quote"&gt;"dddd"&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;", "&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-function"&gt;Format&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;gmtvar&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-quote"&gt;"dd"&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;"-"&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-function"&gt;Format&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;gmtvar&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-quote"&gt;"mmm"&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;"-"&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-function"&gt;Format&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;gmtvar&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-quote"&gt;"yyyy"&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt;&lt;span class="ls-operator"&gt;_&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-quote"&gt;" "&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-function"&gt;Format&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;gmtvar&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-quote"&gt;"hh:mm:ss"&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;" GMT"&lt;/span&gt;&lt;br /&gt;compName &lt;span class="ls-operator"&gt;=&lt;/span&gt; escape&lt;span class="ls-operator"&gt;(&lt;/span&gt;compName&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;compValue &lt;span class="ls-operator"&gt;=&lt;/span&gt; escape&lt;span class="ls-operator"&gt;(&lt;/span&gt;compValue&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; dbpath &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;dbpath &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-function"&gt;Strleft&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;&lt;span class="ls-function"&gt;Lcase&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;doc&lt;span class="ls-operator"&gt;.&lt;/span&gt;Path_Info_Decoded&lt;span class="ls-operator"&gt;(&lt;/span&gt;0&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;,&lt;/span&gt; &lt;span class="ls-quote"&gt;".nsf"&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;".nsf"&lt;/span&gt;&lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;"/"&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-function"&gt;Print&lt;/span&gt; &lt;span class="ls-quote"&gt;"Set-Cookie: "&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; compName &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;"="&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; compValue &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;"; expires="&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; cooktime &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;"; path="&lt;/span&gt; &lt;span class="ls-operator"&gt;+&lt;/span&gt; dbpath &lt;span class="ls-operator"&gt;+&lt;/span&gt; &lt;span class="ls-quote"&gt;";"&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Function&lt;/span&gt; escape&lt;span class="ls-operator"&gt;(&lt;/span&gt;strIn &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; strAllowed &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; i &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;Integer&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; strChar &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; strReturn &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;strAllowed &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-quote"&gt;"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"&lt;/span&gt; &lt;span class="ls-operator"&gt;&amp;amp;&lt;/span&gt; &lt;span class="ls-quote"&gt;"@/.*-_"&lt;/span&gt;&lt;br /&gt;i &lt;span class="ls-operator"&gt;=&lt;/span&gt; 1&lt;br /&gt;strReturn &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-quote"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;While&lt;/span&gt; &lt;span class="ls-operator"&gt;Not&lt;/span&gt; &lt;span class="ls-operator"&gt;(&lt;/span&gt;i &lt;span class="ls-operator"&gt;&gt;&lt;/span&gt; &lt;span class="ls-keyword"&gt;Len&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;strIn&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;strChar &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-function"&gt;Mid$&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;strIn&lt;span class="ls-operator"&gt;,&lt;/span&gt; i&lt;span class="ls-operator"&gt;,&lt;/span&gt; 1&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;If&lt;/span&gt; &lt;span class="ls-function"&gt;Instr&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;1&lt;span class="ls-operator"&gt;,&lt;/span&gt; strAllowed&lt;span class="ls-operator"&gt;,&lt;/span&gt; strChar&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-operator"&gt;&gt;&lt;/span&gt; 0 &lt;span class="ls-statement"&gt;Then&lt;/span&gt;&lt;br /&gt;strReturn &lt;span class="ls-operator"&gt;=&lt;/span&gt; strReturn &lt;span class="ls-operator"&gt;&amp;amp;&lt;/span&gt; strChar&lt;br /&gt;&lt;span class="ls-statement"&gt;Else&lt;/span&gt;&lt;br /&gt;strReturn &lt;span class="ls-operator"&gt;=&lt;/span&gt; strReturn &lt;span class="ls-operator"&gt;&amp;amp;&lt;/span&gt; &lt;span class="ls-quote"&gt;"%"&lt;/span&gt; &lt;span class="ls-operator"&gt;&amp;amp;&lt;/span&gt; &lt;span class="ls-function"&gt;Hex&lt;/span&gt;$&lt;span class="ls-operator"&gt;(&lt;/span&gt;&lt;span class="ls-function"&gt;Asc&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;strChar&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;If&lt;/span&gt;&lt;br /&gt;i &lt;span class="ls-operator"&gt;=&lt;/span&gt; i &lt;span class="ls-operator"&gt;+&lt;/span&gt; 1&lt;br /&gt;&lt;span class="ls-statement"&gt;Wend&lt;/span&gt;&lt;br /&gt;escape &lt;span class="ls-operator"&gt;=&lt;/span&gt; strReturn&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;Function&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Function&lt;/span&gt; unescape&lt;span class="ls-operator"&gt;(&lt;/span&gt;strIn &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt; &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; i &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;Integer&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; strChar &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;Dim&lt;/span&gt; strReturn &lt;span class="ls-keyword"&gt;As&lt;/span&gt; &lt;span class="ls-keyword"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;i &lt;span class="ls-operator"&gt;=&lt;/span&gt; 1&lt;br /&gt;strReturn &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-quote"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;While&lt;/span&gt; &lt;span class="ls-operator"&gt;Not&lt;/span&gt; &lt;span class="ls-operator"&gt;(&lt;/span&gt;i &lt;span class="ls-operator"&gt;&gt;&lt;/span&gt; &lt;span class="ls-keyword"&gt;Len&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;strIn&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;strChar &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-function"&gt;Mid$&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;strIn&lt;span class="ls-operator"&gt;,&lt;/span&gt; i&lt;span class="ls-operator"&gt;,&lt;/span&gt; 1&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span class="ls-statement"&gt;If&lt;/span&gt; &lt;span class="ls-operator"&gt;Not&lt;/span&gt; strChar &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-quote"&gt;"%"&lt;/span&gt; &lt;span class="ls-statement"&gt;Then&lt;/span&gt;&lt;br /&gt;strReturn &lt;span class="ls-operator"&gt;=&lt;/span&gt; strReturn &lt;span class="ls-operator"&gt;&amp;amp;&lt;/span&gt; strChar&lt;br /&gt;&lt;span class="ls-statement"&gt;Else&lt;/span&gt;&lt;br /&gt;i &lt;span class="ls-operator"&gt;=&lt;/span&gt; i &lt;span class="ls-operator"&gt;+&lt;/span&gt; 1&lt;br /&gt;strChar &lt;span class="ls-operator"&gt;=&lt;/span&gt; &lt;span class="ls-quote"&gt;"&amp;amp;H"&lt;/span&gt; &lt;span class="ls-operator"&gt;&amp;amp;&lt;/span&gt; &lt;span class="ls-function"&gt;Mid$&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;strIn&lt;span class="ls-operator"&gt;,&lt;/span&gt; i&lt;span class="ls-operator"&gt;,&lt;/span&gt; 2&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;strReturn &lt;span class="ls-operator"&gt;=&lt;/span&gt; strReturn &lt;span class="ls-operator"&gt;&amp;amp;&lt;/span&gt; &lt;span class="ls-function"&gt;Chr$&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;&lt;span class="ls-function"&gt;Val&lt;/span&gt;&lt;span class="ls-operator"&gt;(&lt;/span&gt;strChar&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;span class="ls-operator"&gt;)&lt;/span&gt;&lt;br /&gt;i &lt;span class="ls-operator"&gt;=&lt;/span&gt; i &lt;span class="ls-operator"&gt;+&lt;/span&gt; 1&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;If&lt;/span&gt;&lt;br /&gt;i &lt;span class="ls-operator"&gt;=&lt;/span&gt; i &lt;span class="ls-operator"&gt;+&lt;/span&gt; 1&lt;br /&gt;&lt;span class="ls-statement"&gt;Wend&lt;/span&gt;&lt;br /&gt;unescape &lt;span class="ls-operator"&gt;=&lt;/span&gt; strReturn&lt;br /&gt;&lt;span class="ls-statement"&gt;End&lt;/span&gt; &lt;span class="ls-statement"&gt;Function&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These functions and subs can be incorporated into Codestore's WebSession class. I'll show that tomorrow.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;div style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 8pt; MARGIN: 5px 50px; BORDER-LEFT: 1px solid; COLOR: gray; BORDER-BOTTOM: 1px solid; FONT-FAMILY: sans-serif"&gt;&lt;center&gt;This LotusScript was converted to HTML using the &lt;b&gt;&lt;i&gt;ls2html&lt;/i&gt;&lt;/b&gt; routine,&lt;br /&gt;provided by Julian Robichaux at &lt;a href="http://www.nsftools.com/" target="_blank"&gt;nsftools.com&lt;/a&gt;.&lt;/center&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/460494576591090006-3814975234432086454?l=noteschat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://noteschat.blogspot.com/feeds/3814975234432086454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=460494576591090006&amp;postID=3814975234432086454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/460494576591090006/posts/default/3814975234432086454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/460494576591090006/posts/default/3814975234432086454'/><link rel='alternate' type='text/html' href='http://noteschat.blogspot.com/2008/02/setcookie-and-getcookie-using.html' title='setCookie and getCookie using LotusScript'/><author><name>Dietrich</name><uri>http://www.blogger.com/profile/17594193533055060710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
