动态加载时无法访问$_GET


unable to acess $_GET when dynamically loaded

我不确定这里的问题是什么。

我在wordpress中使用了一个插件,它显示了一个弹出窗口,供用户注册邮件列表。

在这个插件中,我希望能够在隐藏字段中添加一个变量来发布,这样我就可以判断用户是否来自特定的联盟活动。

在url中我有

http://example.com/?urlref=affname

在弹出的模式窗口中,我已经编码:

<?php if(isset($_GET['urlref'])) { ?>
     // do stuff here
<?php } else { ?>
    <p>No Aff Link</p>
<?php } ?>

我得到的回报是无Aff链接

我试过使用

$_REQUEST['urlref']

但这也不起作用。

我已经将上面的代码添加到了网站页面中(不在弹出窗口中),它可以工作。所以我认为这与它被动态加载有关。

有什么想法吗?

将我的评论转换为答案:

在弹出窗口中无法访问$_GET['urlref']的原因可能是请求更改URL以及$_GET。因此您可以在站点页面中访问$_GET['urlref'],但不能在弹出窗口中访问。

因此,您可以在弹出窗口中更改if条件,如下所示:

$url = $_SERVER['HTTP_REFERER'];
if (strpos($url,'urlref') !== false) {
    echo 'urlref exists.';
} else {
    echo 'No urlref.';
}

如果你有任何疑问,请告诉我。

如果要动态加载affiliate变量,则需要将该变量存储在sessioncookie:中

你只需要在你的网站页面set session

<?php 
session_start(); 
if(isset($_GET['urlref'])) { 
    $_SESSION['urlref'] = $_GET['urlref'];
} else { 
    $_SESSION['urlref'] = '';
} 
?>

现在,您也可以通过session在模型页面中获得此$_SESSION['urlref']

可能您想要添加的隐藏字段不在<form>标记中,因此它不会发送到服务器。需要更多关于您的问题的详细信息(插件、HTML代码…)