Wenn Sie PHP $_COOKIE verwenden, um den Cookie-Wert abzurufen, kann es manchmal vorkommen, dass der erhaltene Wert vom gespeicherten Wert abweicht. Zu diesem Zeitpunkt müssen wir einige Debugging- und Überprüfungsarbeiten am Code durchführen.
Im Folgenden werden einige Gründe vorgestellt, die dazu führen können, dass der erhaltene Cookie-Wert vom gespeicherten Wert abweicht.
Da das Cookie selbst ein Anforderungsheader im Standard-HTTP-Protokoll ist, muss der beim Speichern des Cookies verwendete Variablenname mit dem beim Abrufen verwendeten Variablennamen übereinstimmen. Wenn die Variablennamen inkonsistent sind, unterscheidet sich der erhaltene Wert vom gespeicherten Wert.
Zum Beispiel:
// 存入cookie时 setcookie('test', 'abc', time() + 3600, '/'); // 获取cookie时 $test = $_COOKIE['Test'];
In diesem Beispiel ist der beim Speichern des Cookies verwendete Variablenname „test“, beim Abrufen wird jedoch „Test“ verwendet, was dazu führt, dass der erhaltene Wert vom gespeicherten Wert abweicht.
Ähnlich wie der Variablenname muss auch der Cookie-Aktionspfad konsistent sein. Wenn der Aktionspfad beim Speichern des Cookies angegeben wird, beim Abrufen jedoch nicht, unterscheidet sich der erhaltene Wert vom gespeicherten Wert.
Zum Beispiel:
// 存入cookie时 setcookie('test', 'abc', time() + 3600, '/test'); // 获取cookie时 $test = $_COOKIE['test'];
In diesem Beispiel wird der Aktionspfad beim Speichern des Cookies als „/test“ angegeben, beim Abrufen des Cookies jedoch nicht, was zu unterschiedlichen Werten führt.
Wenn die Ablaufzeit beim Speichern des Cookies angegeben wird, die Ablaufzeit jedoch beim Abrufen des Cookies abgelaufen ist, ist der erhaltene Wert null.
Zum Beispiel:
// 存入cookie时 setcookie('test', 'abc', time() + 3600, '/'); // 过了过期时间再获取cookie时 sleep(3605); $test = $_COOKIE['test'];
In diesem Beispiel ist die Ablaufzeit des gespeicherten Cookies eine Stunde später, aber die Ablaufzeit ist bereits abgelaufen, als das Cookie abgerufen wurde, was dazu führt, dass der erhaltene Wert null ist.
Wenn der Domänenname, unter dem das Cookie gespeichert ist, nicht mit dem Domänennamen übereinstimmt, unter dem das Cookie abgerufen wird, unterscheidet sich auch der erhaltene Cookie-Wert vom gespeicherten Cookie-Wert.
Zum Beispiel:
// 存入cookie时 setcookie('test', 'abc', time() + 3600, '/', '.example.com'); // 在另一个域名上获取cookie时 $test = $_COOKIE['test'];
In diesem Beispiel wird beim Speichern des Cookies der Domänenname als „.example.com“ angegeben. Wenn das Cookie jedoch auf einem anderen Domänennamen abgerufen wird, wird das Cookie nicht oder anders abgerufen Wert erhalten wird.
Zusammenfassung:
Stellen Sie sicher, dass der Variablenname, der Aktionspfad, die Ablaufzeit und der Domänenname konsistent sind, um domänenübergreifende Cookie-Probleme zu vermeiden. Dies sind die Gründe, warum der erhaltene Cookie-Wert vom gespeicherten Wert abweicht. Achten Sie beim Debuggen von Code unbedingt auf diese Probleme, um unnötige Fehler zu vermeiden.
Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Gründe, warum der Wert von php $_cookie vom gespeicherten Wert abweicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!