[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ic] CookieName directive fails


On Fri, 22 Jul 2005, Bruno Cantieni wrote:

I'm having trouble getting CookieName to work on a "merchant network"
consisting of about 40 catalogs.
[snip]
With the CookieName directive it would look like:
Variable    MERCHANT_ID        1001
.
.
Cookies Yes
CookieName	MV___MERCHANT_ID___SESSION_ID

I presume you have ParseVariables Yes before those directives, right?

I've not used CookieName before, but from looking at the code is would appear that you need to also set a CookiePattern. See Vend::Dispatch:

    elsif ($::Instance->{CookieName} and defined $CGI::cookie) {
        $CGI::cookie =~ m{$::Instance->{CookieName}=($Vend::Cfg->{CookiePattern})};
        $seed = $sessionid = $1;
        $::Instance->{ExternalCookie} = $sessionid || 1;
        $Vend::CookieID = $Vend::Cookie = 1;
    }
    elsif (defined $CGI::cookie and
         $CGI::cookie =~ /\bMV_SESSION_ID=(\w{8,32})
                                [:_] (
                                    (   \d{1,3}\.   # An IP ADDRESS
                                        \d{1,3}\.
                                        \d{1,3}\.
                                        \d{1,3})
                                    # A user name or domain
                                    |   (suppressed) )?
                                    \b/x)
    {
        $sessionid = $1
            unless defined $CGI::values{mv_pc} and $CGI::values{mv_pc} eq 'RESET';
        $CGI::cookiehost = $3;
        $CGI::cookieuser = $4;
        $Vend::CookieID = $Vend::Cookie = 1;
    }

If you set CookieName, then a different code block is called which
requires a CookiePattern (a regular expression). If you don't set
CookieName, a hard-coded cookie pattern is used, in the next block.

Interestingly, the $CGI::cookiehost and $CGI::cookieuser won't be set if you use a custom CookieName, and the mv_pc=RESET trick to clear your session for testing won't work either. I think those could be considered bugs.

I'm interested to hear if setting CookiePattern fixes your problem.

HTH,
Jon

--
Jon Jensen
End Point Corporation
http://www.endpoint.com/
Software development with Interchange, Perl, PostgreSQL, Apache, Linux, ...
_______________________________________________
interchange-users mailing list
suppressed
http://www.icdevgroup.org/mailman/listinfo/interchange-users


Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.