Maison >développement back-end >Problème PHP >Comment définir les cookies dans l'en-tête php()

Comment définir les cookies dans l'en-tête php()

青灯夜游
青灯夜游original
2021-02-25 17:48:383718parcourir

En php, la fonction header() est utilisée pour envoyer l'en-tête HTTP d'origine au client. Les cookies peuvent être définis sous la forme de "header("Set-Cookie:xxxxxxxxxxxxxxxx",false);".

Comment définir les cookies dans l'en-tête php()

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

La fonction header() envoie l'original en-tête aux en-têtes HTTP du client.

Cookie de sortie d'en-tête

définir la fonction de cookie, si vous souhaitez qu'il prenne effet, il prend également effet en définissant le côté du navigateur via l'en-tête. La sortie via l’en-tête est donc également réalisable. Donc, concernant l'écriture de plusieurs opérations d'en-tête équivalentes, comparons et apprenons :

header("Set-Cookie:cookie_name1_cp=" . urlencode("浏览器关闭失效"));
setcookie("cookie_name1", "浏览器关闭失效");

Comment définir les cookies dans len-tête php()

Pour plus de connaissances liées à la programmation, veuillez visiter : Vidéo de programmation ! !

Remarque :

Nous savons que setcookie et l'en-tête de php peuvent définir des cookies. Mais lorsque vous utilisez des en-têtes, il y a une autre chose à noter : c'est l'ordre entre header et setcookie, ou même l'ordre entre header et header.

Header("Set-Cookie:") effacera : tous les effets header("Set-Cookie:") et setcookie(setrawcookie) avant que cette instruction ne soit appelée. Voir l'exemple ci-dessous, où quatre cookies sont définis. Mais un seul entre réellement en vigueur. Parce que les trois autres ont été emportés par le dernier.

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");

Comment définir les cookies dans len-tête php()

Comment définir les cookies dans len-tête php()

Solution :

Ajouter un deuxième paramètre à l'en-tête, false. C'est à dire :

header("Set-Cookie:xxxxxxxxxxxxxxxx",false);

Par exemple :

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);

Dans ce cas, l'en-tête utilisant le paramètre false ne sera pas en conflit avec celui d'origine. Pour plus de détails, veuillez vous référer à la description de la fonction PHP de header :

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

Notre faux paramètre est le paramètre $replace, ce qui signifie ne pas remplacer l'en-tête existant du même type. Notez qu'il s'agit du "même type".

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn