当前位置: 首页 > 知识库问答 >
问题:

如何重定向并保留原始引用者字段?

林建本
2023-03-14

我有以下PHP重定向脚本:

if ($country=="IL") { header('Location: http://iquality.itayb.net/index-he.html'); }
else { header('Location: http://iquality.itayb.net/index-en.html'); }

这将根据$country的值将用户重定向到不同的页面。推荐人成为重定向页面本身。

如何保留原始的“推荐人”字段?

共有1个答案

屈星腾
2023-03-14

您不能使用标题('Referer:SOME\u Referer\u URL'),因为浏览器无论如何都会覆盖它。

如果您拥有重定向目标iquality.itayb.net,那么有几种方法可以做到这一点:

>

  • 在用户会话中保存referer。

    // in your first script save real referer to session
    $_SESSION['REAL_REFERER'] = $_SERVER['HTTP_REFERER'];
    
    // in the redirected script extract referer from session
    $referer = '';
    if (isset($_SESSION['REAL_REFERER'])) {
        $referer = $_SESSION['REAL_REFERER'];
        unset($_SESSION['REAL_REFERER']);
    }
    else {
        $referer = $_SERVER['HTTP_REFERER'];
    }
    

    将referer作为参数发送:

    // in your first script
    header('Location: http://iquality.itayb.net/index-he.html?referer=' . $_SERVER['HTTP_REFERER']);
    
    // in your refered script extract from the parameter
    $referer = '';
    if (isset($_REQUEST['referer'])) {
        $referer = $_REQUEST['referer'];
    }
    else {
        $referer = $_SERVER['HTTP_REFERER'];
    }
    

    如果您想欺骗任何其他服务器,请使用以下方法:

    $host = 'www.yourtargeturl.com';
    $service_uri = '/detect_referal.php';
    $vars ='additional_option1=yes&additional_option2=un';
    
    $header = "Host: $host\r\n";
    $header .= "User-Agent: PHP Script\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Referer: {$_SERVER['HTTP_REFERER']} \r\n";
    $header .= "Content-Length: ".strlen($vars)."\r\n";
    $header .= "Connection: close\r\n\r\n";
    
    $fp = fsockopen("".$host,80, $errno, $errstr);
    if (!$fp) {
      echo "$errstr ($errno)<br/>\n";
      echo $fp;
    } else {
        fputs($fp, "POST $service_uri  HTTP/1.1\r\n");
        fputs($fp, $header.$vars);
        fwrite($fp, $out);
    
        while (!feof($fp)) {
            echo fgets($fp, 128);
        }
        fclose($fp);
    }
    

  •  类似资料:
    • 在查看了这里、这里和文档之后,我仍然无法找到一种方法来根据所有这些条件从数据帧中选择行: 按给定列的值列表中给定的顺序返回行 举个例子,让我们 让 然后我想得到以下数据帧: 我怎样才能做到这一点?Zero的答案看起来很有希望,因为它是我发现的唯一一个保留原始索引的答案,但它不适用于重复。关于如何修改/推广它有什么想法吗?

    • 我有一个映射的超类,我用它来定义一个方法,它是持久性映射。我使用的是每类表继承策略。例如,这里有一些简单的类继承: 下一个类不会重写getIdfier()方法,并将Cat的标识符保存在其实体表的“标识符”列中。 在Kitten类中,我想更改标识符以返回Kitten。识别码:莫特的小猫。getIdentifier()或例如“Boots kitten of Ada”,并将该字符串持久保存在实体表的“i

    • 我有一个字符串 我想将加法与数字分开,以便我可以将其保留在其他字段中。如何在不丢失数字或加法的情况下拆分此值?最后,我想有 2 个具有以下类型的字段: 关于这个有很多问题,但是我找不到两个值都必须保存的问题。这就是为什么我创建了一个新问题。

    • 我有一个welcome.jsp的页面,在那里我收集了一些信息,并借助超文本标记语言FORM将此请求和响应对象发送到servlet以将数据插入数据库,所以在这个操作之后,我想回到原来的位置Welcome.jsp,但当我试图使用请求调度rs=request.get请求调度(Welcome.jsp);rs.forward(请求,响应); 我在同一个Welcome.jsp上丢失了所有填充的值,所以请建议是

    • 我正在开发一个应用程序,它允许用户浏览网站并从任何页面登录(登录链接位于公共标题中)。成功登录后,用户当前将从登录页面重定向到根url。 redirect_to原始页面会更友好。我试图将原始页面的命名路由存储到会话中,但这些似乎是对象,因此无法通过。此外,并非所有路由都带有指定的助手。另一方面,当我将文字路径作为字符串传递给redirect_to时,例如“订单/索引”,Rails将 /action

    • 我们的一个客户正在为他们的标识提供程序提供包含参数的URL。元数据如下所示(为简洁起见,进行了大量缩写): 可以看到,有一个名为“parameter”的参数,其值为“value”。生成的重定向URL中不存在此参数。我稍微调试了一下,发现从绑定(对于HTTP重定向来说是)获取,并委托对消息进行编码。编码器依次在其方法中执行以下操作: 所以出于某种原因,参数被故意无条件地剥离。 为什么会这样?我如何才