我不确定这里的问题是什么。
我在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
变量,则需要将该变量存储在session
或cookie
:中
你只需要在你的网站页面set session
:
<?php
session_start();
if(isset($_GET['urlref'])) {
$_SESSION['urlref'] = $_GET['urlref'];
} else {
$_SESSION['urlref'] = '';
}
?>
现在,您也可以通过session
在模型页面中获得此$_SESSION['urlref']
。
可能您想要添加的隐藏字段不在<form>
标记中,因此它不会发送到服务器。需要更多关于您的问题的详细信息(插件、HTML代码…)