使用 PHP 获取/读取 Javascript cookie
Posted
技术标签:
【中文标题】使用 PHP 获取/读取 Javascript cookie【英文标题】:Get/Read Javascript cookie with PHP 【发布时间】:2014-04-19 02:11:16 【问题描述】:我有一个理论问题..
我知道您可以使用 javascript 获取/读取 php cookie,方法是:document.cookie
在 PHP 中有类似的方法吗?
PHP 可以获取/读取在 JavaScript 中创建的 cookie 吗? 如果是,那你怎么做?
【问题讨论】:
您也可以在 PHP 中使用 setcookie 函数设置 cookie。真正发生的是响应将带有 cookie 标头;然后浏览器将存储 cookie。从现在开始,每个请求都将在请求标头中进行中继,PHP 和其他服务器端脚本会在其中访问之前存储的内容。 【参考方案1】:您可以使用超全局$_COOKIE
。只需像引用任何数组一样引用它,其中 $_COOKIE['key_name']
是您要访问的 cookie。
请参阅PHP API documentation。
【讨论】:
所以我只需要使用 $_COOKIE['cookiename'] i 的 php 代码广告 php 将获取已在 JS 中设置的 cookie? this 对在 js 中设置 cookie 时使用正确的域有更多说明,供登陆这里的人使用【参考方案2】:PHPglue 的答案很好,但有几个错别字。它也不会告诉您索引是什么,这会很有帮助。
foreach($_COOKIE as $key=>$value)
echo "key: ".$key.'<br />';
echo "value: ".$value.'<br />';
;
我的问题是我在 Javascript 中设置了名称中带有句点的 cookie。这些被转换为下划线。例如 cookie 名称,facebookLogin.myapp.com 被更改为 facebookLogin_myapp_com。运行上面的代码后,我可以看到名称与预期不同,并正确读取了 PHP 中的名称。
【讨论】:
【参考方案3】:要查看它们,您可以这样做:
foreach($_COOKIE as $v)
echo htmlentities($v, 3, 'UTF-8').'<br />';
对于单个 cookie,它只是:
echo htmlentities($_COOKIE['cookieName'], 3, 'UTF-8');
随意更改引用样式(3 为 ENT_QUOTES)和字符集以满足您的需要。
注意:cookie 必须设置在同一个域上才能访问它。
【讨论】:
【参考方案4】:Javascript 可以通过两种方式(我知道)window.cookie
和 document.cookie
设置 cookie。如果使用window.cookie
php 无法评估cookie,则php 只能评估document.cookie
设置的cookie。
javascript
document.cookie = 'name=value';
PHP
print_r($_COOKIE);
您将在其中看到您的 javascript 创建的 cookie,以及其他由 php 创建的。
或
回声 $_COOKIE['name'];
使用 javascript 评估 php cookie
使用相同的document.cookie
来评估文档 (php) cookie 和使用 document.cookie 创建的 javascript cookie。
Javascript 只能评估 window.cookies 创建的 cookie
【讨论】:
【参考方案5】:我认为这是在一个 cookie 中设置所有提示并在您的信息之间使用符号的好方法。然后在通过 JavaScript 设置 cookie 后在“PHP”中使用例如这个
$mystr = print_r($_COOKIE);
$way=explode(";",$mystr);
【讨论】:
以上是关于使用 PHP 获取/读取 Javascript cookie的主要内容,如果未能解决你的问题,请参考以下文章