根据当前URL中的字符串修改来源

时间:2018-08-13 17:10:48

标签: javascript php

我有点想获取跟踪代码以使其适合我的网站。

每次通过跟踪器单击到我的网站时,都会在URL中插入随机生成的唯一字符串。例如,http://www.examplepage.com/?sub_ref=333ktcm1ckpv2uvd

当有人在我的网站上逐步进行操作时,将加载一个PHP脚本,其中包含各种变量,其中之一是外部javascript:

$script = <script type="text/javascript" id="js1" src="https://www.example.com/load.php?id=8bb1ff8aa970aa5f018dcce821dc6251"></script>

为了方便跟踪,我希望能够将URL中的唯一字符串添加到javascript中。我的想法是,我可以跟踪何时有人单击我的网站,然后使用外部脚本完成输入。例如:

 $script = <script type="text/javascript" id="js1" src="https://www.example.com/load.php?id=8bb1ff8aa970aa5f018dcce821dc6251?sub_ref=333ktcm1ckpv2uvd"></script>

有人可以建议实现此目标的最佳方法吗?我整天都在玩这个游戏,但没有成功。

我应该在要添加唯一ID的点上添加我网站上的URL为http://www.examplepage.com/?sub_ref=333ktcm1ckpv2uvd#submit-entry

2 个答案:

答案 0 :(得分:0)

像我一样接近我,只需要指向正确的查询即可。...

src="https://www.example.com/load.php?id=8bb1ff8aa970aa5f018dcce821dc6251&sub_ref=<?php echo urlencode($_GET['sub_ref'])?>"

看起来不错(尽管从您提供的示例中不需要urlencode)。

虽然没有一些实际的代码,但是很难说是怎么回事。(这很可能就是为什么没人在回答您的问题.....-我也无法给您太多答案.... ..)

但是,作为“故障排除”提示……

您必须知道在任何给定时刻都可以使用的变量,因此请学习在任何给定时间停止代码并查看代码的内容。

在这种情况下,一个不错的方法是在尝试建立参考链接之前,先查看$ _SERVER数组中的内容,以查看真正可用的链接(这将告诉您您实际所在的位置以及用户的使用方式到你那里,等等-可以肯定的是很多信息!)

echo __LINE__ . " here, we look at _SERVER "; print_r($_SERVER); echo "<br>";

这时的另一个好方法是$ _GET,它将告诉您查询字符串中的数组形式。...

echo __LINE__ . " here, we look at _GET "; print_r($_GET); echo "<br>";

同时获得这两个结果将告诉您,您实际上已经拥有了自己认为的数据(这通常是事情不按预期运行的原因!)

(您也可以添加

die();

在使代码停止的任何行之后.....有很多方法可以做到这一点,而最重要的部分只是看发生了什么!

使用以上内容,更改您的问题以包括更多代码,并显示此时在$ _SERVER和$ _GET中所获得的内容,我敢肯定,您将获得一些不错的准确答案!

EDIT (在获得更多信息之后...-但仍然没有完整的代码..... :(再次,查看所有这些脚本将有助于完成此任务... ..不知道为什么不包括它...)

很明显,您目前处于PHP状态(因为这是一个PHP错误-脚本会告诉我们...),并且您的代码无法在PHP中工作。

你有......

$script = <script type="text/javascript" id="js1" src="https://www.example.com/load.php?id=8bb1ff8aa?&sub_ref=<?php echo ($_GET['sub_ref']); ?>"></script>

  

PHP消息:PHP解析错误:语法错误,出现意外的“ <”   /home/admin/web/exampledomain.com/public_html/settings.php,第13行”   从上游读取响应头时

这是告诉您的问题---您无法在PHP中编写JS!您可以将其设置为变量,然后在以后使用,也可以“跳入/跳出” PHP / HTML来执行此操作,但是您必须记住您所使用的语言并遵守该语言的规则。

因此,您可以具有:

$script = '<script type="text/javascript" id="js1" src="https://www.example.com/load.php?id=8bb1ff8aa?&sub_ref=' . $_GET['sub_ref'] . '"></script>';

或者,通过以下方式“跳入/跳出”

// PHP code ......
// 'jump out'....
?>
<!-- now you are in HTML and can do some JS -->
<script type="text/javascript" id="js1" src="https://www.example.com/load.php?id=8bb1ff8aa?&sub_ref=<?php echo ($_GET['sub_ref']); ?>"></script>
<!-- where you had correctly 'jumped', but improperly mixed... -->
<!-- now, back to PHP... ->
<? // and you can do more PHP code here.....

您必须尊重语言-以及代码中的任何位置!

如果仍然有问题,请在此周围包含完整的代码(我确定这不是火箭科学负责的秘密内容,所以请节省我们所有的时间,以便您可以获取您所需要的帮助,请!

编辑:

在settings.php中,链接显示为

src="https://www.example.com/load.php?id=8bb1ff8aa?&sub_ref=' . $_GET['sub_ref']

但是,您在按钮中说的是

src="https://www.example.com.net/test.php?id=8bb1ff8&amp;sub_ref="

您的代码尚不清楚情况如何……(听起来很熟悉吗?请按原样显示代码.....-我无法(现在,不会能够-我花了太多时间在这上面,并且看起来很“奇怪”。}尝试猜测出这个怪异的变化是从哪里来的。您需要展示一些合乎逻辑的东西.....

,并证明您拥有_GET-在_GET之前使用print_r以确保在处理数据时拥有数据(有时使用PHP,您必须做一些“技巧”才能将数据保存在一页上并在另一处使用它。....有几种方法可以使用,但是直到我了解您的流程以及您想整体进行的工作为止(主要是,为什么要使用这么多页面....-是一个整体设计/流程问题...},要了解您要完成的工作真的很难。)

SO并不是真正的培训机构-我还有其他项目(我每天有一点时间来回答问题,等等)-这里的“回馈社区”政策的一部分,但是主要工作是在付费项目上{我确定您了解...},所以我今天不能做更多的事情,但是如果您对正在发生的事情和看到的错误给出一些明确的“步骤”,那么我可以明天再来看这个。

答案 1 :(得分:0)

非常感谢@CFP支持。

因此,根据您的建议,我设法得出结论,使用下面的命令可以显示要添加到javascript中的正确URL字符串。

  

https://example.com/test/test.php?sub_ref=230948324095

<?php echo __LINE__ . " here, we look at _GET "; print_r($_GET); echo "<br>";?>

  

8在这里,我们看一下_GET Array([sub_ref] => 230948324095)

因此,基于以上所述,我认为我应该使用:

<?php echo ($_GET['sub_ref'])?>"

我现在遇到的问题是,如果我使用以下内容,则会导致错误:

$script = <script type="text/javascript" id="js1" src="https://www.example.com/load.php?id=8bb1ff8aa?&sub_ref=<?php echo ($_GET['sub_ref']); ?>"></script>

  

PHP消息:PHP解析错误:语法错误,出现意外的“ <”   /home/admin/web/exampledomain.com/public_html/settings.php   在第13行上”,同时从上游读取响应标头

编辑:

这是我目前所在的位置。我已经进行了您建议的更改(第一个更改),该更改不会产生错误,但是加载脚本的按钮中的sub_ref仍然为空。

settings.php文件

<?php
         // Set the referral network
             $network = 'A';
         // Set your submit code below.
             $onClick_code = 'call_referral()';
         // Set your the referral script below.
             $script = '
<script type="text/javascript" id="js1" src="https://www.example.com/load.php?id=8bb1ff8aa?&sub_ref=' . $_GET['sub_ref'] . '"></script>';

         ?>

final-step.php

<?php
    require_once '../settings.php';
    ?>
<h1>Submitting Data</h1>
<p class="second-paragraph">Please wait while we process your data.</p>
<div class="data-processing-wrapper">
    <div class="data-processing-inner-wrapper">
        <div class="cssload-loader-walk">
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
        </div>
        <span class="console-msg"></span>
        <div class="data-verification-wrapper">
            <h3>Data Verification</h3>
            <p>Thank you, you are almost done submitting your data.
                <br>Click on the Submit Now button below to submit your data.
                </p>
                <div class="button-wrapper data-verification-button-wrapper">
                    <a class="button data-verification-button" 
                        <?php if ($network == 'A' || $network == 'B') {?> onclick="
                        <?php if (!empty($onClick_code)) { echo $onClick_code; } ?>"
                        <?php } ?>>Submit Now
                    </a>
                    <?php if ($network == 'A' && !empty($script)) { echo $script; } ?>
                </div>
            </div>
            <div id="progressBarConsole" class="console-loadbar">
                <div></div>
            </div>
        </div>
    </div>

通过检查Chrome中的“立即提交”按钮,这就是显示的内容(?sub_ref为空白):

<div class="button-wrapper data-verification-button-wrapper">
                <a class="button data-verification-button" onclick="call_referral()">Submit Now</a>
                <script type="text/javascript" id="js1" src="https://www.example.com.net/test.php?id=8bb1ff8&amp;sub_ref="></script>            </div>

我是否正确地假设sub_ref不出现是因为打开页面时脚本不在(仅当final-step.php运行时)?