Php 在一个变量中存储第一个引用URL,在另一个变量中存储$#u SERVER[';HTTP#u REFERER';]

Php 在一个变量中存储第一个引用URL,在另一个变量中存储$#u SERVER[';HTTP#u REFERER';],php,http-referer,Php,Http Referer,我使用下面的两个函数将推荐人信息存储在变量中,这些变量插入到表单电子邮件正文中。我需要在一个变量中存储第一个引用站点或URL,在另一个变量中存储正常引用URL。基本上,我需要得到的第一页或搜索引擎,其中已介绍了一个访问者,然后存储在我的网站上,他们访问的最后一页,然后再来联系形式。第二部分使用第一个函数获取HTTP_referer。但是我的函数(函数getFirstPage)获取原始推荐人只是在变量中向我发送联系人页面URL function getRefererPage( $form_tag

我使用下面的两个函数将推荐人信息存储在变量中,这些变量插入到表单电子邮件正文中。我需要在一个变量中存储第一个引用站点或URL,在另一个变量中存储正常引用URL。基本上,我需要得到的第一页或搜索引擎,其中已介绍了一个访问者,然后存储在我的网站上,他们访问的最后一页,然后再来联系形式。第二部分使用第一个函数获取HTTP_referer。但是我的函数(函数getFirstPage)获取原始推荐人只是在变量中向我发送联系人页面URL

function getRefererPage( $form_tag )
{
        if ( $form_tag['name'] == 'referer-page' ) {
                $form_tag['values'][] = $_SERVER['HTTP_REFERER'];
        }
        return $form_tag;
}
function getFirstPage( $form_tag )
{
session_start();
        if (!isset($_SESSION["origURL"]))
            $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];

        if ( $form_tag['name'] == 'first-page' ) {
            $form_tag['values'][] = $_SESSION["origURL"];
        }
        return $form_tag;
}
if ( !is_admin() ) {
        add_filter( 'wpcf7_form_tag', 'getRefererPage' );
}
if ( !is_admin() ) {
        add_filter( 'wpcf7_form_tag', 'getFirstPage' );
}

我可以更改什么以将原始引用人放入我的函数getFirstPage?

您可以将此代码放入您的所有页面(或包含在所有其他页面中的PHP文件中。如果使用框架或CMS,您可以将其放入index.PHP)。此代码将在20分钟不活动后首次保存ref页面。几乎任何时候都有人打开你的网站

if (isset($_COOKIE['firstPageRef'])){
    setcookie('firstPageRef', $_COOKIE['firstPageRef'], time() + 1200); // Extend for an other 20Min
}else{
    setcookie('firstPageRef', $_SERVER['HTTP_REFERER'], time() + 1200); // Save ref page for first time
}
然后使用此代码,您可以找出哪个网站将用户重定向到您的网站: 需要时请致电:

function GetFirstRef(){
    if (isset($_COOKIE['firstPageRef'])
        return $_COOKIE['firstPageRef'];
    return false;
}

@njk我不确定如何将原始引用URL存储在一个变量中,而将用户HTTP\U引用器存储在另一个变量中。如果您有SEO URL或一个包含多个php文件的大型站点,这是行不通的。我建议编写一个函数来检查用户是否在最近20分钟内第一次进入您的站点,例如,将引用页面保存在cookie中,然后在您想要的地方使用它。@SoroushFalahati听起来很理想,我已经编辑了这个问题,因为我想我几乎可以使用它了。我只是不太擅长php,不能按照你的建议去做。我在页脚中添加了if条件,但是它破坏了页面,不再加载页脚。有什么建议吗?在病情结束前有一个(缺失的)错误。请再试一次。我在这里写了这段代码,所以出现了这种类型的问题。抱歉/我没有看到任何cookie设置为第一个引用page@Anagio,可能是因为你直接从地址栏或书签打开网站?!删除Cookie并从其他网站打开您的网站。任何方式都经过测试,并按预期工作。你可能需要看看你做错了什么。我正在谷歌上运行即时搜索禁用的搜索