使用PHP获取/读取Javascript cookie

时间:2014-03-14 00:37:28

标签: javascript php cookies

我有一个理论问题..

我知道您可以使用以下方式使用javascript获取/读取PHP cookie: document.cookie

在PHP中有类似的方法吗?

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

5 个答案:

答案 0 :(得分:17)

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

请参阅PHP API documentation

答案 1 :(得分:1)

要查看它们,您可以执行此操作:

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

对于单个cookie,它只是:

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

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

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

答案 2 :(得分:1)

Javascript可以通过两种方式设置Cookie(我知道)window.cookiedocument.cookie。如果使用window.cookie php无法评估cookie,则php只能评估由document.cookie设置的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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

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

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