Ich habe einen Cookie, den ich auf meiner App verwende. Es sieht wie folgt aus:PHP-Cookie schreibt auf falsche Domain
+-------+-------+-----------------------+-------+----------+
| Name | Value | Domain | Path | Expires |
+-------+-------+-----------------------+-------+----------+
| foo | bar | my.domain.tld |/ | Session |
+-------+-------+-----------------------+-------+----------+
In einem Abschnitt von meinem Skript, basierend auf einer Bedingung, ich versuche, den Wert eines Cookies zu ändern. Ich verwende diesen Code:
// overwrite cookie
if($condition){
setcookie("foo", "cat", 0, "/", "my.domain.tld");
}
Danach meine Cookie-Daten wie folgt aussieht:
+-------+-------+-----------------------+-------+----------+
| Name | Value | Domain | Path | Expires |
+-------+-------+-----------------------+-------+----------+
| foo | bar | my.domain.tld |/ | Session |
| foo | cat | .my.domain.tld |/ | Session |
+-------+-------+-----------------------+-------+----------+
Wie kommt ein .
an die Domain vorangestellt werden? Ich möchte den bestehenden Cookie überschreiben.
macht keinen Sinn, es muss * auf * irgendwas.domain.tld gesetzt werden, sonst gibt es irgendwo einen großen Fehler - das einzige, was ich vorschlage, ist, dass du noch einmal nachprüfst und sicherstellst, dass der erste Cookie nicht existiert eingestellt zu .anything eher als die zweite .. – nathan
Nathan, es sieht aus wie es ist kein Fehler so sehr, wie es eine gemeinsame Quelle für Verwirrung sein könnte. Siehe die Antwort unten :) –
Sie könnten ['$ cookie-> setDomain ($ domain)'] finden (https://github.com/delight-im/PHP-Cookie/blob/004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php# L117) hilfreich, wie in [diese eigenständige Bibliothek] (https://github.com/delight-im/PHP-Cookie) gefunden. Es sorgt dafür, dass der von Ihnen angegebene Domainname normalisiert wird. – caw