I've ran into this problem recently too. Sometimes forcing users to accept cookies is not an option. You might want to skip on cookies alltogether, or use both (cookies and query_string options). I chose for the last (for I hate links/URIs that contain session IDs).

First I see wheter the user accepts cookies or not. The basic idea of how to do that can be found at merlyn's WebTechniques pages.

If the user does not accept cookies, you store that information in the session (no_cookies = true, or -might be nicer-, cookies = false). That way, you can tell your template to throw in the session id. It's a hellish task to change all URLs this way, but at least Template Toolkit gives you the power to add macros. I've used something like this:

[% MACRO gen_link BLOCK %] <a href="/[% m %]/[% p | uri | html %][% IF no_cookies %]/[% sid %][% +END %]">[% t %]</a> [% END %]

(I use CGI::Application and have a little URI Parser set up to strip the session id from the path info)

Then I call that macro like this

# m = CGI::Application "module" # p = the "page" in question # t = the linked "text" [% gen_link(m="shop", p="band/$item.bandname", t="$item.bandname") %]

There are probably better ways to tackle all of this (you might be interested in Template::Plugin::URL), but at least it "works" for me ;)

--
b10m

All code is usually tested, but rarely trusted.

In reply to Re: Passing Sesion ID with CGI::Session by b10m
in thread Passing Sesion ID with CGI::Session by tanger

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.