gpt4 book ai didi

javascript - PHP/JavaScript cookie 的作用就像一个指针,因此当我清除它时,我会丢失该值;如何从 cookie 中获取值?

转载 作者:行者123 更新时间:2023-12-01 03:13:34 33 4
gpt4 key购买 nike

<script type="text/javascript">
var test = "test";
document.cookie = "some_test=" + guid;
</script>

<?php $_POST['important_value'] = ((isset($_COOKIE['some_test'])) ? ($_COOKIE['some_test']) : ('')); ?>

<script>
//document.cookie = "some_test=;expires=Thu, 01 Jan 1970 00:00:00 UTC;";
console.log(document.cookie);
</script>

只要我不取消注释该行以清除 cookie,此代码就会完全按照预期工作。目标是将 JavaScript 变量 (test) 移动到 PHP 变量 ($_POST['important_value'])。

我认为发生的情况是 $_POST['important_value']$_COOKIE['some_test'] 指向同一件事,但我可能是错的。有没有办法打印变量的地址?

更新:

debug_zval_dump($_POST['important_value']);
// string(39) "750118664537365903071115537365768136624" refcount(3)

debug_zval_dump($_COOKIE['some_test']);
// string(39) "750118664537365903071115537365768136624" refcount(3)

我假设这意味着我的假设是正确的?如何在没有指针的情况下从 cookie 获取字符串值?

最佳答案

让我们了解您的代码是如何工作的:

  1. 浏览器请求页面 yourpage.php。第一次运行时 cookie 是空的,因此在服务器端您的 cookie 无论如何都是空的。

  2. 浏览器用你的 JS 加载页面,实际上第一次运行它是相等的:

    <script type="text/javascript">
    var test = "test";
    document.cookie = "some_test=" + guid;
    </script>

    <script>
    //document.cookie = "some_test=;expires=Thu, 01 Jan 1970 00:00:00 UTC;";
    console.log(document.cookie);
    </script>
  3. 浏览器从你的 JS 接收 cookie

  4. 在下次访问时,您的 PHP 代码会看到 cookie,并将其分配给 POST 变量,该变量在页面执行后结束其生命周期。
  5. 如果您销毁 cookie(通过取消注释行的注释),浏览器将在第 3 步删除 cookie,因此在第 4 阶段浏览器看不到您的 cookie :)

关于javascript - PHP/JavaScript cookie 的作用就像一个指针,因此当我清除它时,我会丢失该值;如何从 cookie 中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45684191/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com