问题 使用PHP获取/读取Javascript cookie


我有一个理论问题..

我知道你可以使用javascript获取/读取PHP cookie: 的document.cookie

在PHP中有类似的方法吗?

PHP可以获取/读取使用JavaScript创建的cookie吗? 如果是,那你怎么能这样做?


8441
2018-03-14 00:37


起源

您还可以使用setcookie函数在PHP中设置cookie。真正发生的是响应将携带cookie头;然后浏览器将存储cookie。从现在开始的每个请求都将在请求标头中进行中继,其中PHP和其他服务器端脚本访问之前存储的内容。 - Schien


答案:


您可以使用 $_COOKIE,超全球。只需像引用任何数组一样引用它 $_COOKIE['key_name'] 是您要访问的cookie。

PHP API文档


14
2018-03-14 00:41



所以我只需要使用$ _COOKIE ['cookiename']我的PHP代码广告php将获得已设置的JS我的JS? - Spoofy
正确!这应该像你期望的那样工作。 - jacobroufa


要查看它们,您可以这样做:

foreach($_COOKIE as $v){
  echo htmlentities($v, 3, 'UTF-8').'<br />';
}

对于单个cookie,它只是:

echo htmlentities($_COOKIE['cookieName'], 3, 'UTF-8');

随意更改报价样式(3为ENT_QUOTES)和charset以满足您的需求。

注意:必须在同一域上设置cookie才能访问它。


1
2018-03-14 00:43





我认为这是在一个cookie中设置所有intimation并在您的信息之间使用符号的好方法。然后在使用JavaScript设置cookie之后在“PHP”中使用此示例

$mystr = print_r($_COOKIE);
$way=explode(";",$mystr);

0
2018-05-19 05:51





PHPglue的答案很好,但有几个拼写错误。它也没有告诉你索引是什么可能非常有用。

foreach($_COOKIE as $key=>$value)
{
  echo "key: ".$key.'<br />';
  echo "value: ".$value.'<br />';
};

我的问题是我在Javascript中使用名称中的句点设置我的cookie。这些被转换为下划线。例如,cookie名称,facebookLogin.myapp.com正在更改为facebookLogin_myapp_com。一旦我运行上面的代码,我就能看到名称与预期的不同,并正确地从PHP中读取名称。


0
2018-06-23 22:41





Javascript可以通过两种方式设置cookie(我知道) window.cookie 和 document.cookie。如果使用 window.cookie php无法评估cookie,php只能评估cookie设置 document.cookie

JavaScript的

document.cookie ='name = value';

PHP

的print_r($ _ COOKIE);

你会看到你的javascript创建的cookie,其中包括由php创建的。

要么

echo $ _COOKIE ['name'];

使用javascript评估php cookie 使用相同 document.cookie 评估使用document.cookie创建的文档(php)cookie和javascript cookie。

Javascript只能评估window.cookies创建的cookie


0
2018-03-24 13:03