You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by Brice Hamon <no...@gmail.com> on 2013/07/12 19:58:18 UTC

Rivet 2.1.1 Session

Hi Guys,

I am trying to get the Session package working on a River 2.1.2
distribution using Mysql.

I managed to get the DB working, and the configuration as specified in the
documentation.

When I run the session-demo.rvt I see new sessions been created and added
to the session table in the DB.

Good.

However I don't see cookies been set on my browser and I get an error in
the rvt (with DEBUG set to 1).

Session Demo ::SESSION (debug) activate: checking out the situation
::SESSION (debug) id: no session cookie 'rivetSession'
::SESSION (debug) activate: new session, reason 'no_cookie'
::SESSION (debug) gen_session_id - feeding this to md5:
'13736499122980338089108.35.26.181373649912some random string'
::SESSION (debug) create_session: ip 108.35.26.18, id
'7E992E073C539CE5F816E3D542A1B2C8'

------------------------------
Cannot manipulate headers - already sent
    invoked from within
"headers add $cookieKey $cookieValue"
    (procedure "cookie" line 22)
    invoked from within
"cookie set $cookieName $value  -path $cookiePath  -minutes
$cookieLifetime  -secure $cookieSecure  -HttpOnly $cookieHttpOnly"
    (object "::SESSION" method "::Session::set_session_cookie" body line 2)
    invoked from within
"set_session_cookie $id"
    (object "::SESSION" method "::Session::activate" body line 23)
    invoked from within
"SESSION activate"
    (in namespace eval "::request" script line 5)
    invoked from within
"namespace eval request {
puts -nonewline "


Any ideas?

Thank you

Brice.

Re: Rivet 2.1.1 Session

Posted by Brice Hamon <no...@gmail.com>.
Hi Massimo,

Got it. Working perfectly. Fantastic.

Thank you very much for your quick help.

Have a good WE guys,

Brice.


On Fri, Jul 12, 2013 at 2:43 PM, Massimo Manghi <ma...@unipr.it>wrote:

> you have to direct the debugging output to some file, otherwise you are
> forcing mod_rivet to send data to the client before your headers are sent
> consistently with HTTP.
>
> The technique is simple: just pass a file handle to the Session instance
>
> e.g.
>
> Session ::SESSION -dioObject $dbms                              \
>                             -debugMode              1           \
>                             .....
>                             -debugFile            [open [file join /tmp
> "session-[pid].log"] w+]
>
>
> the [pid] call creates a single log file per child process avoiding the
> file name clashing. If you need to debug a specific child you may run httpd
> -X thus telling apache to create just one child process
>
>  cheers
>
>  -- Massimo
>
>
>
>
> On 12-07-2013 19:58, Brice Hamon wrote:
>
>> Hi Guys,
>>
>> I am trying to get the Session package working on a River 2.1.2
>> distribution using Mysql.
>>
>> I managed to get the DB working, and the configuration as specified in
>> the documentation.
>>
>> When I run the session-demo.rvt I see new sessions been created and
>> added to the session table in the DB.
>>
>> Good.
>>
>> However I dont see cookies been set on my browser and I get an error
>>
>> in the rvt (with DEBUG set to 1).
>>
>> SESSION DEMO
>>
>>
>>  ::SESSION (debug) activate: checking out the situation
>>  ::SESSION (debug) id: no session cookie rivetSession
>>  ::SESSION (debug) activate: new session, reason no_cookie
>>  ::SESSION (debug) gen_session_id - feeding this to md5:
>> 13736499122980338089108.35.26.**181373649912some random string
>>  ::SESSION (debug) create_session: ip 108.35.26.18, id
>> 7E992E073C539CE5F816E3D542A1B2**C8
>>
>> -------------------------
>>
>> Cannot manipulate headers - already sent
>>  invoked from within
>> "headers add $cookieKey $cookieValue"
>>  (procedure "cookie" line 22)
>>  invoked from within
>> "cookie set $cookieName $value -path $cookiePath -minutes
>> $cookieLifetime -secure $cookieSecure -HttpOnly $cookieHttpOnly"
>>  (object "::SESSION" method "::Session::set_session_**cookie" body line
>> 2)
>>  invoked from within
>> "set_session_cookie $id"
>>  (object "::SESSION" method "::Session::activate" body line 23)
>>  invoked from within
>> "SESSION activate"
>>  (in namespace eval "::request" script line 5)
>>  invoked from within
>> "namespace eval request {
>> puts -nonewline "
>>
>> Any ideas?
>>
>> Thank you
>>
>> Brice.
>>
>
>

Re: Rivet 2.1.1 Session

Posted by Massimo Manghi <ma...@unipr.it>.
you have to direct the debugging output to some file, otherwise you are 
forcing mod_rivet to send data to the client before your headers are 
sent consistently with HTTP.

The technique is simple: just pass a file handle to the Session 
instance

e.g.

Session ::SESSION -dioObject $dbms                              \
                             -debugMode              1           \
                             .....
                             -debugFile            [open [file join /tmp 
"session-[pid].log"] w+]


the [pid] call creates a single log file per child process avoiding the 
file name clashing. If you need to debug a specific child you may run 
httpd -X thus telling apache to create just one child process

  cheers

  -- Massimo



On 12-07-2013 19:58, Brice Hamon wrote:
> Hi Guys,
>
> I am trying to get the Session package working on a River 2.1.2
> distribution using Mysql.
>
> I managed to get the DB working, and the configuration as specified 
> in
> the documentation.
>
> When I run the session-demo.rvt I see new sessions been created and
> added to the session table in the DB.
>
> Good.
>
> However I dont see cookies been set on my browser and I get an error
> in the rvt (with DEBUG set to 1).
>
> SESSION DEMO
>
>  ::SESSION (debug) activate: checking out the situation
>  ::SESSION (debug) id: no session cookie rivetSession
>  ::SESSION (debug) activate: new session, reason no_cookie
>  ::SESSION (debug) gen_session_id - feeding this to md5:
> 13736499122980338089108.35.26.181373649912some random string
>  ::SESSION (debug) create_session: ip 108.35.26.18, id
> 7E992E073C539CE5F816E3D542A1B2C8
>
> -------------------------
> Cannot manipulate headers - already sent
>  invoked from within
> "headers add $cookieKey $cookieValue"
>  (procedure "cookie" line 22)
>  invoked from within
> "cookie set $cookieName $value -path $cookiePath -minutes
> $cookieLifetime -secure $cookieSecure -HttpOnly $cookieHttpOnly"
>  (object "::SESSION" method "::Session::set_session_cookie" body line
> 2)
>  invoked from within
> "set_session_cookie $id"
>  (object "::SESSION" method "::Session::activate" body line 23)
>  invoked from within
> "SESSION activate"
>  (in namespace eval "::request" script line 5)
>  invoked from within
> "namespace eval request {
> puts -nonewline "
>
> Any ideas?
>
> Thank you
>
> Brice.


---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org