【问题标题】:Get Cookies PHP获取 Cookie PHP
【发布时间】:2021-10-05 18:14:51
【问题描述】:

我在我的页面上的锚点点击设置了一个 cookie:

$("#btn_twitter_signin").click(function() {
    $.cookie("bookmarklet_twitter_signin", "true");
});

在服务器端我正在尝试检索它

$_COOKIE['bookmarklet_twitter_signin']

但奇怪的是,我得到了一个“未定义的索引:bookmarklet_twitter_signin”,虽然我通过检查 Firefox 查看页面信息来确保 cookie 已正确保存,我是否遗漏了什么?

谢谢。

叶希亚·萨拉姆

【问题讨论】:

  • 做 var_dump($_COOKIE) 看看你看到了什么

标签: php javascript cookies


【解决方案1】:

可能跟路径有关,试试:

$("#btn_twitter_signin").click(function() {
  $.cookie("bookmarklet_twitter_signin", "true", {path: '/'});
});

【讨论】:

  • 同意。它还可能与您在设置 cookie 时使用的域有关,然后是您用于访问后续 PHP 脚本的域。您也可以指定您的域(域:'.domain.com')。
【解决方案2】:

在页面重新加载之前,PHP 将无法检索设置的 cookie。 PHP,因为它是服务器端,只在页面加载时运行一次。因此,如果您在页面加载后更改 cookie,则您的 PHP 已经运行。

这意味着您需要为 PHP 重新加载页面才能查看 Javascript 设置的 cookie。

您必须使用 Jquery 简化的 AJAX 架构才能在不刷新页面的情况下执行此操作。

使用 var_dump($_COOKIE) (就像 Itay 说的)或 print_r($_COOKIE) 用 PHP 打印所有的 cookie。您将能够看到发生了什么。

【讨论】:

  • 请注意,cookie 都是客户端并随每个请求一起发送,因此如果使用 JS 正确设置了 cookie,那么它应该与任何后续 HTTP 请求一起发送。
  • 我想我的解释不是很好。希望我澄清了。
【解决方案3】:
/*------------ Yashpal --------------*/     
//SET COOKIES
setcookie('setcookie_name', $setcookie_variable_name, time() + (86400 * 30), "/");

// GET COOKIES
$_COOKIE['setcookie_name'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 2012-05-21
    • 2011-09-24
    • 1970-01-01
    相关资源
    最近更新 更多