【问题标题】:PHP echo cookie to console.log writing correctly in source but not in consolePHP 将 cookie 回显到 console.log 在源代码中正确写入但在控制台中不正确
【发布时间】:2015-11-06 19:56:42
【问题描述】:

我有一个 PHP 函数,它使用 $_GET 从 URL 中获取 'utm_source' 并将其设置在 cookie 中。

<?php
if(!isset($_COOKIE['utm_src'])) {
    $utm_src = $_GET['utm_source'];
    setcookie("utm_src", $utm_src, 0, "/");
}
?>

这一切都发生在发送任何 HTML 之前(在 functions.php 中使用 Wordpress),并且当我在页面加载后检查 cookie 时似乎正在正确写入。

当我尝试将变量回显到 javascript console.log 以确保一切正常时,会出现问题:

<?php
$utm_src = $_COOKIE['utm_source'];
echo "<script>console.log('utm is $utm_src');</script>";
?>

奇怪的是,当我查看源代码时,脚本似乎是正确编写的,包括变量,但不是在控制台中。

这是页面加载后实际源代码中显示的内容:

<script>
console.log('utm is utm-name-here');
</script>

但是,控制台只显示 'utm is ',没有变量。我希望使用 cookie 变量来确定是否应将脚本回显到页面上。

【问题讨论】:

    标签: javascript php wordpress cookies


    【解决方案1】:

    您将 cookie 存储为 utm_src 并尝试以 utm_source 访问它

    在设置 cookie 和读取 cookie 时使用相同的名称,您会得到您希望的结果。

    具体

        $utm_src = $_COOKIE['utm_source'];
    

    应该是

        $utm_src = $_COOKIE['utm_src'];
    

    【讨论】:

    • 不幸的是,这似乎仍然导致相同的结果。 js 脚本已正确写入源代码,但变量在控制台中仍显示为空白。
    猜你喜欢
    • 2016-03-07
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多