Heim > Artikel > Backend-Entwicklung > So setzen Sie Cookies im PHP-Header()
In PHP wird die Funktion header() verwendet, um den ursprünglichen HTTP-Header an den Client zu senden. Cookies können in der Form „header(“Set-Cookie:xxxxxxxxxxxxxxx“,false);“ gesetzt werden.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP Version 7.1, DELL G3-Computer
Die Funktion header() sendet den ursprünglichen HTTP-Header an den Client.
Der Header gibt Cookies aus
Cookie-Funktion festlegen Wenn Sie möchten, dass sie wirksam wird, können Sie dies auch tun, indem Sie die Browserseite über den Header festlegen. Daher ist auch die Ausgabe über den Header möglich. Was also das Schreiben mehrerer äquivalenter Header-Operationen angeht, vergleichen und lernen wir:
header("Set-Cookie:cookie_name1_cp=" . urlencode("浏览器关闭失效")); setcookie("cookie_name1", "浏览器关闭失效");
Weitere Programmierkenntnisse finden Sie unter: Programmiervideo! !
Hinweis:
Wir wissen, dass sowohl Setcookie als auch Header von PHP Cookies setzen können. Bei der Verwendung von Headern ist jedoch noch etwas zu beachten: Das ist die Reihenfolge zwischen Header und Setcookie oder sogar die Reihenfolge zwischen Header und Header.
header("Set-Cookie:") löscht: alle Header("Set-Cookie:")- und setcookie(setrawcookie)-Effekte, bevor diese Anweisung aufgerufen wird. Sehen Sie sich das Beispiel unten an, in dem vier Cookies gesetzt sind. Aber nur einer greift tatsächlich. Denn die anderen drei wurden vom letzten weggespült.
header("Set-Cookie:cookie_name1_cp=" . urlencode("浏览器关闭失效")); setcookie("cookie_name1", "浏览器关闭失效"); setcookie("cookie_name3", "设置有效域名/https/httponly", time() + 3600*24, "/", $_SERVER['SERVER_NAME'], isset($_SERVER["HTTPS"]),true); header("Set-Cookie:cookie_name3_cp=" . urlencode("设置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly");
Lösung:
Fügen Sie einen zweiten Parameter zum Header hinzu, false. Das heißt:
header("Set-Cookie:xxxxxxxxxxxxxxxx",false);
Zum Beispiel:
header("Set-Cookie:cookie_name3_cp=" . urlencode("设置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly;"); header("Set-Cookie:cookie_name3_cp2=" . urlencode("设置有效域名/https/httponly") . "; expires=" . gmstrftime("%a, %d-%b-%Y %H:%M:%S GMT", time() + 3600*24) . "; Max-Age=3600; path=/; domain= ".$_SERVER['SERVER_NAME']."; httponly;",FALSE);
In diesem Fall wird der Header, der den falschen Parameter verwendet, nicht mit dem Original in Konflikt geraten. Einzelheiten finden Sie in der PHP-Funktionsbeschreibung des Headers:
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
Unsere falsche Einstellung ist der Parameter $replace, was bedeutet, dass der vorhandene Header desselben Typs nicht ersetzt wird. Beachten Sie, dass es sich um „den gleichen Typ“ handelt.
Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !
Das obige ist der detaillierte Inhalt vonSo setzen Sie Cookies im PHP-Header(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!