我有一个理论问题..
我知道您可以使用以下方式使用javascript获取/读取PHP cookie: document.cookie
在PHP中有类似的方法吗?
PHP可以获取/读取使用JavaScript创建的cookie吗? 如果是的话,你怎么能这样做?
答案 0 :(得分:17)
您可以使用超级全局$_COOKIE
。只需像引用任何数组一样引用它,其中$_COOKIE['key_name']
是您要访问的cookie。
答案 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.cookie
和document.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中读取名称。