I'd break my query string into parts, a session ID and a product ID. The "recommend" link would have just the product ID in the URL.

As far as preventing the SessionID from being reused (i.e. for those users that copy the URL), you can check out apache's mod_unique (IIRC, that's what it's called) which generates a unique ID for each browser session. You can use that ID to generate your session ID, and then validate the session ID on each request against Apache's unique ID. If an invalid (non-matching) sessionID comes in, you simply generate a new one and rewrite the URL (if you have mod_perl) or send a redirect (if you don't).

HTH

Philosophy can be made out of anything. Or less -- Jerry A. Fodor


In reply to Re: The sound of one cookie (not) authenticating by arturo
in thread The sound of one cookie (not) authenticating by Hero Zzyzzx

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.