We need much more information before we can begin to debug this. When someone says they moved a site and cookies have broken, there are a couple of things that usually occur. Here's some typical code (using CGI.pm) to create and set a cookie:
my $cookie = $q->cookie(
-name => 'session',
-value => '123456',
-expires => '+1h',
-path => '/cgi-bin/admin/',
-domain => '.somehost.com',
-secure => 1);
print $q->header( -cookie => $cookie );
Here's what usually happens to screw that up.
- The domain is different or you're using an IP address which causes the cookie to fail. The cookie will only be returned if the domain specified matches. If your cookie domain is '.host.com' and the site is 'www.host.com', the cookie will be returned. If the cookie domain is 'www.host.com' and the site is 'host.com', you will get no cookie.
- The site gets reconfigured so that the path information is no longer the same. If /cgi-cin/admin/ is now /cgi-bin/management/ and that's the path specification, your cookies will not be returned.
- The secure switch is set, but the site is no longer running on SSL. I recently had an administrative console break because we moved the site and someone forgot to get an SSL certificate, so they just turned off SSL. My site breaking was a Good Thing.
If this doesn't answer your question, post the code that sets the cookie and the code that retrieves the cookie, along with relevant path and domain info.
Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.