我不确定这里有什么问题。
我在wordpress中使用插件,显示一个弹出窗口供用户注册到邮件列表。
在这个插件中,我希望能够在隐藏字段中添加变量以便发布,以便我可以判断用户是否来自特定的联属营销活动。
在我的网址中
http://example.com/?urlref=affname
在弹出的模态窗口中我编码:
<?php if(isset($_GET['urlref'])) { ?>
// do stuff here
<?php } else { ?>
<p>No Aff Link</p>
<?php } ?>
我得到的回复是 No Aff Link
我尝试过使用
$_REQUEST['urlref']
但这也不起作用。
我已将上述代码添加到网站页面中(不在弹出窗口中)并且它可以正常工作。因此,我认为它与动态加载有关。
有什么想法吗?
答案 0 :(得分:1)
如果您想动态加载affiliate
变量,则需要将此变量存储在session
或cookie
中:
您只需在网站页面中set session
:
<?php
session_start();
if(isset($_GET['urlref'])) {
$_SESSION['urlref'] = $_GET['urlref'];
} else {
$_SESSION['urlref'] = '';
}
?>
现在,您可以在模型页面中通过$_SESSION['urlref']
获取此session
。
答案 1 :(得分:1)
将我的评论转换为答案:
弹出窗口中无法访问$_GET['urlref']
的原因可能是更改网址以及$_GET
的请求。这样您就可以在网站页面中访问$_GET['urlref']
,但不能在弹出窗口中访问。
因此,您可以在弹出窗口中更改if
条件,如下所示:
$url = $_SERVER['HTTP_REFERER'];
if (strpos($url,'urlref') !== false) {
echo 'urlref exists.';
} else {
echo 'No urlref.';
}
如果您有任何疑问,请告诉我。
答案 2 :(得分:0)
您想要添加的隐藏字段可能不在<form>
标记中,因此不会将其发送到服务器。需要有关您的问题的更多细节(什么是插件,HTML代码,......)