Symptoms: cookie data is overwritten or not passed properly.
Solution: Firstly lets make sure you're writing cookie's properly.. (time is set to 30days)
setcookie('name', 'value', time() + 3600*24*30);
It's likely this php may sit in a header file or a page template so to make sure this cookie isn't overwritten if it appears elsewhere in the site write it like this..
if(!isset($_COOKIE['name']))
{setcookie('name', 'value', time() + 3600*24*30);
}
Now this is where i started having strange results, basically if the cookie is initially written on a second level page eg. hilikusOnline.co.uk/podcasts/theshow then it could be overwritten or unavailable on a root level such as hilikusOnline.co.uk/home
to make sure the cookie is set at root level, you must include "/" as a cookie variable. So the correct code now looks like this:
if(!isset($_COOKIE['name']))
{setcookie('name', 'value', time() + 3600*24*30, "/");
}
That's it!
No comments:
Post a Comment