动态加载时无法访问$ _GET

时间:2016-01-02 04:18:07

标签: php jquery wordpress

我不确定这里有什么问题。

我在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']

但这也不起作用。

我已将上述代码添加到网站页面中(不在弹出窗口中)并且它可以正常工作。因此,我认为它与动态加载有关。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

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

您只需在网站页面中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代码,......)