加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 制作子网和回发跟踪工作

发布时间:2020-12-13 22:43:37 所属栏目:PHP教程 来源:网络整理
导读:我正在用Php编写一个Bounty脚本. (奖励脚本),使用Prosper202的开源代码.Trying用Subids和Postbacks跟踪潜在客户.我无法让这些东西工作. 例. 我想在url的末尾添加唯一ID. 与http://google.com/c3={unique_id}一样 这里唯一ID需要至少随机生成15分钟,需要存储
我正在用Php编写一个Bounty脚本. (奖励脚本),使用Prosper202的开源代码.Trying用Subids和Postbacks跟踪潜在客户.我无法让这些东西工作.
例.

我想在url的末尾添加唯一ID.
与http://google.com/c3={unique_id}一样

这里唯一ID需要至少随机生成15分钟,需要存储在Mysql数据库中.

成功的第三方服务器以格式发送回发时.

http://watever.com/c3={unique_id}

然后我们需要实时比较两者. (这需要尽可能快,以避免延迟最终用户.)

在这个案例中我们应该使用什么?

用于Postback或php的JavaScript?

以及如何在php脚本中操作回发.

如我所说.此Script Prosper202也具有跟踪回发的相同功能.
但我无法从中提取有用的代码.

资源: –

http://prosper.tracking202.com/apps/
http://prosper.tracking202.com/forum/6/21/tracking-subids#7848

解决方法

这是你需要做的:

1)使用以下字段在MySQL中创建事务表:

TRANSACTIONS
############
id - INT,AUTO-INCREMENT,UNSIGNED,NOT NULL
transaction_id - VARCHAR(8)
created_on - TIMESTAMP,DEFAULT CURRENT_TIMESTAMP()

2)使用以下字段在MySQL中创建转换表:

CONVERSIONS
###########
id - INT,DEFAULT CURRENT_TIMESTAMP()

3)在您的代码中,在将它们发送到URL之前,您需要生成并附加唯一的事务ID(a.k.a Sub ID):

/**
* Generates [$length] character transaction ID's. Verifies transaction ID is not
* currently in use. If it is,function recursively attempts to generate
* a unique one. After 10 attempts,it fails and returns false.
*
* @param PDO    Database connection via dependency injection
* @param Int    Length of string to generate
*/
function generateTransactionId($db,$length = 8)
{
// Don't let this function get stuck in endless recursion.
static $recursion_count = 0;
$recursion_count++;
if($recursion_count > 10) 
{
    $recursion_count = 0; 
    return false; 
}

// Create transaction ID
$transaction_id = substr(md5(uniqid(mt_rand(),true)),$length);

// Check to make sure it is unique
$query = "SELECT id FROM myDb.transactions WHERE transaction_id = ?";
$stmt = $db->prepare($query);
$stmt->execute(array($transaction_id));
$row = $stmt->fetch(PDO::FETCH_OBJ);
$stmt = null;

// If nothing found,we have a unique ID. Otherwise recursively find a unique one.
if(!is_object($row) || $row == false)
{
    // Reset recursion counter
    $recursion_count = 0;

    // Found unique ID
    return $transaction_id;
}
else
{
    // Recursively generate unique transaction ID
    return generateTransactionId($db);
}
}

$url = "http://www.google.com/";
$transaction_id = generateTransactionId($myPDOConnection);

// Add to URL
$url = $url . "?c3=" . $transaction_id;

// Do redirect to URL
header('Location: ' . $url);

4)在另一个用于接收回发的脚本中,您将希望通过GET获取子ID /交易ID(如果您愿意,可以使用POST)并标记转换:

$transaction_id = isset($_GET['c3']) ? trim($_GET['c3']) : false;

if($transaction_id)
{
   // Received conversion,add this transaction ID to conversions table
}

就实时比较而言,您可以访问的唯一指标是重定向之前的时间点以及收到回发的时间点.您可以通过检查事务表中的COUNT()来查看已完成的重定向次数.您可以通过查看转化表中的COUNT()来查看收到的回复/转化次数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读