【问题标题】:$_GET in PHP not getting utm valuesPHP 中的 $_GET 没有获取 utm 值
【发布时间】:2017-02-13 05:55:20
【问题描述】:

我正在尝试使用此 PHP 代码打印/回显 utm_source、utm_medium 和 utm_campaign 查询值;

echo $_GET['utm_source'];

但奇怪的是,由于某些未知原因,在我的服务器上它没有打印值,当我将 utm_source 替换为 test_source 之类的其他东西时,我能够看到打印中的值。

从来没有遇到过这样的问题,谁能在这里指导我。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php echo $_GET['utm_source']; ?>

</body>
</html>

【问题讨论】:

  • 执行print_r($_GET); 以查看 $_GET 数组中的真正内容
  • 我按照你的建议使用了这个,当我在 query 中使用 utm_source=1 时,它显示空白页,但是当我使用 query=1 时,它显示了数组( [query] => 1 )
  • 也许你应该给我们看更多的代码,这样我们就能更好地看到你在做什么
  • @RiggsFolly 我在文件中没有其他代码,我在测试文件上运行此代码,因为在生产环境中它也不起作用,所以我制作了一个测试文件 test.php 并且只有此代码;
  • 那么也许可以向我们展示 HTML

标签: php apache


【解决方案1】:

如果您的网站使用 WPengine,您将无法使用 PHP 从 URL 中获取 utm 变量(以及 utm 之后的任何其他变量)。出于性能原因,一些 Web 主机专门针对并从服务器请求中删除这些 utm 参数。棘手的部分是,utm 变量仍会保留在 URL 中,这意味着您可以在需要时使用 Javascript 来检索它们。

来源:WPengine 文章 https://wpengine.com/support/utm-gclid-variables-caching/

【讨论】:

    【解决方案2】:

    你原来的问题引用了这段代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <?php $_GET['utm_source']; ?>
    
    </body>
    </html>
    

    如果您在此语句中添加echo,它将起作用

    <?php echo $_GET['utm_source']; ?>
    

    当使用测试时

    test.com/test.php?utm_source=1
    

    一段更安全的 PHP 代码应该是

    <?php 
        if ( isset($_GET['utm_source']) ) {
            echo $_GET['utm_source']; 
        } else {
            echo 'the parameter utm_source is missing';
        }
    ?>
    

    【讨论】:

    • 对不起,马特,在我提供给你的示例代码中,我错误地错过了回显语法,而在我的原始文件中,我有回显,但它仍然没有显示
    • 添加我建议的额外 PHP 代码,看看是否有任何输出。哦,请确保您在网址上将参数拼写为 utm_source 而不是 urm_source
    • 我尝试了你的代码,但仍然没有显示,这对我来说很奇怪:(这是快照。是的,你的代码缺少一个)在第二行,所以我修复了该代码@ 987654321@
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多