sessions

Faruk S. Can farukscan at gmail.com
Sat Mar 15 17:46:09 UTC 2014


Upon login it shows the value of (session-value *'username)
on the top of the page as desired.
And when I refresh the page it is still ok.
But when page is doubled for the second time it is gone
and the elements that is programmed to be shown
when (signed-in-p) is nil is shown.


On Sat, Mar 15, 2014 at 7:42 PM, Faruk S. Can <farukscan at gmail.com> wrote:

> morph composes home-page has changed
> (defun morph-columns1 ()
>  (html ()
>       (head ()
>          (link (list :rel "stylesheet" :href "reset.css"))
>          (link (list :rel "stylesheet" :href "main.css"))
>          (script () +js-sign-in+ +js-logout+ +jswritingdesk+
> +jssavewriting+ +jsnotepad+))
>
> (body ()
>
>       (morph-categories-axis)
>       (morph-time-axis)
>       (div (list :style "height: 45px; border: 1px solid;")
>            (morph-name)
>            (morph-search)
>
>            (div (list :id "online-xor-offline"
>                        :style "height: 45px; border: 1px solid;
> float:left;")
>                 (if (signed-in-p);!!!t
>
>                   (div (list :id "if-online")
>                        (div (list :id "numbers-online" :style "border:1px
> solid; float:left;")  "123 users online")
>                        (div (list :id "username" :style "border:1px solid;
> float:left;") (session-value '*username));!!!"sess val"
>                        (button (list :onclick "ajaxlogout()") "logout")
>                        (a (list :onclick "writingdesk()") "writing desk")
>                        (a (list :onclick "notepad()") "note pad")
>                        (a (list :onclick "published()") "published")
>                        (a (list :onclick "preferences()") "preferences"))
>
>                   (div (list :id "if-offline")
>                        (morph-sign-in-form)
>                        (morph-signup-link)
>                        )))))))
>
>
>
> On Sat, Mar 15, 2014 at 7:40 PM, Faruk S. Can <farukscan at gmail.com> wrote:
>
>> my problem persists. once it has gone but i could not figure out how.
>>  but now the problem is back.
>> any help?
>>
>>
>> On Wed, Mar 12, 2014 at 7:19 PM, Faruk S. Can <farukscan at gmail.com>wrote:
>>
>>> hi
>>> i cannot sustain a session.
>>> i login to my app. it shows my login name as i programmed.
>>> when i refresh the page it stays there.
>>> but when i refresh for the second time my session name and
>>> other things goes away and instead i see what is there for the
>>> not loginned case.
>>>
>>> I think i miss something in hunchentoot session hadling.
>>>
>>> ;all html generated by a macro:
>>>
>>> (defmacro ff (tag)
>>>   `(defun ,tag (&rest c)
>>>      (with-output-to-string (*standard-output*)
>>>        (format t "<~a ~{~a='~a' ~}> ~{~a ~}</~a>" ',tag (car c) (cdr c)
>>> ',tag))))
>>>
>>> ;;defining all tag functions:
>>> (progn
>>>   (ff html)
>>>   (ff title)
>>>   (ff head)
>>>   (ff meta)
>>>   (ff link)
>>>   (ff style)
>>>   (ff script)
>>>   (ff body)
>>>   (ff span)
>>>   (ff div)
>>>   (ff section)
>>>   (ff p)
>>>   (ff form)
>>>   (ff input)
>>>   (ff button)
>>>   (ff textarea)
>>>   (ff a)
>>>   (ff h1)
>>>   (ff h2)
>>>   (ff h3)
>>>   (ff h4)
>>>   (ff h5)
>>>   (ff h6)
>>>   (ff ol)
>>>   (ff ul)
>>>   (ff li))
>>>
>>> ;authentication utilities used by the home page function at the bottom:
>>>
>>> (defun signed-in-p ()
>>>   (if (and (boundp '*session*) (session-value '*signed-in *session*))
>>>       t
>>>       nil))
>>>
>>> (defun signed-up-p (x y)
>>>   (if (with-connection *conn1spec*
>>>          (query  (:select 'username 'password :from 'users.users
>>>                           :where (:and (:= 'username x)
>>>                                        (:= 'password y)))))
>>>     t
>>>     nil))
>>>
>>> (defun sign-in ()
>>>   (let ((username (parameter "username"))
>>> (password (parameter "password")))
>>>     (if (signed-up-p username password)
>>>       (progn
>>>         (start-session)
>>>         (setf (session-value '*username) username)
>>>         (setf (session-value '*signed-in) t)
>>>         (morph-status-plate (session-value '*username)))
>>>       (with-output-to-string (s)
>>>         (princ (morph-sign-in-form) s)
>>>         (princ "No record found!" s)
>>>         (princ (a (list :href "/form-sign-up") "Sign up") s)
>>>          ))))
>>> ;the data base querying functions are working correctly
>>> ;views generated:
>>>
>>> (defun morph-write-button ()
>>>   (div (list :style "border:1px solid; float:left;")
>>>      (a (list :href "/writingp") "write")))
>>>
>>> (defun morph-status-plate (username)
>>>    (div (list :id "status-plate" :style "border:1px solid; float:left;")
>>>      (span () "123 users online")
>>>      (span () username)
>>>      (button (list :onclick "ajaxlogout()") "logout")))
>>>
>>> (defun morph-sign-in-form ()
>>>   (div (list :id "sign-in-form" :style "border:1px solid; float:left;")
>>>    (form (list :method "" :action "")
>>>     (input (list :id "username" :type "input" :name "username"))
>>>     (input (list :id "password" :type "input" :name "password"))
>>>     (input (list :onClick "ajaxsignin()" :type "button" :value
>>> "login")))))
>>>
>>> ;at last
>>> ;the page i generate as home page:
>>> (div (list :id "sign-in-form-or-status-plate"
>>>                       :style "height: 45px; border: 1px solid;
>>> float:left;")
>>>                 (if (signed-in-p);;;;;;
>>>                   (with-output-to-string (s)
>>>                     (start-session)
>>>                     (princ (morph-status-plate (session-value
>>> '*username)) s)
>>>                     (princ (morph-write-button) s))
>>>                   (with-output-to-string (s)
>>>                     (princ (morph-sign-in-form) s)
>>>                     (princ (a (list :href "form-sign-up") "Sign up")
>>> s))))
>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/tbnl-devel/attachments/20140315/bebc062e/attachment.html>


More information about the Tbnl-devel mailing list