Some application, not written by me, and not in PHP, creates a cookie for the domain "www.domain.com".
I am trying to replace that cookie. So in php I did:
setcookie('mycookie','mydata',time() + 2*7*24*60*60,'/','www.domain.com', false);
However the resulting cookie is created for domain: ".www.domain.com", note the dot "." ahead of the domain.
So it doesn't replace it, it creates another cookie. What can I do?
The setcookie() function defines a cookie to be sent along with the rest of the HTTP headers. A cookie is often used to identify a user. A cookie is a small file that the server embeds on the user's computer.
The PHP isset() checks whether a cookie is set. Reminder: if you detect PHP setcookie not working, make sure it appears before the <html> element in your code, and that the set path parameter is correct.
Yes, The setcookie() function must appear BEFORE the <html> tag. The setcookie() function defines a cookie to be sent along with the rest of the HTTP headers.
You cannot set cookies for another domain.
The issue is also adressed here: https://www.php.net/manual/en/function.setcookie.php
See comment by jah:
If you want to restrict the cookie to a single host, supply the domain parameter as an empty string
You could also try .domain.com
as the domain. The trailing dot will allow a cookie for all subdomains for domain.com
and could overwrite the www.
-cookie, but I'll go with the above solution first.
If you specify a domain, you should follow RFC 2109 and prefix the domain with a dot; otherwise the client will do that. But if you don’t specify a domain at all, the client will take the domain of the request.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With