【问题标题】:Get/Read Javascript cookie with PHP使用 PHP 获取/读取 Javascript cookie
【发布时间】:2014-04-19 02:11:16
【问题描述】:

我有一个理论问题..

我知道您可以使用 javascript 获取/读取 PHP cookie,方法是:document.cookie

在 PHP 中有类似的方法吗?

PHP 可以获取/读取在 JavaScript 中创建的 cookie 吗? 如果是,那你怎么做?

【问题讨论】:

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

标签: javascript php cookies


【解决方案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.cookiedocument.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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-07-13
          • 2010-11-24
          • 2011-02-23
          • 2015-10-18
          • 2016-02-16
          • 2011-10-02
          • 2012-11-20
          相关资源
          最近更新 更多