2012-04-19 3 views
4

나는 PHP로 Bounty Script를 코딩하고있다. (Reward Script)에서 Prosper202의 오픈 소스 코드를 사용하십시오. Subids 및 Postback과 함께 리드를 추적하는 중입니다.이 작업을 수행 할 수 없습니다. 예.Subids 및 Postback 추적 작업하기

url 끝에 고유 ID를 추가하고 싶습니다. Like http://google.com/c3={unique_id}

고유 ID는 최소한 15 분 동안 무작위로 생성되어야하며 Mysql 데이터베이스에 저장되어야합니다.

타사 서버가 성공적으로 다시 게시 할 때 형식으로 보냅니다.

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

다음 두 가지를 실시간으로 비교해야합니다. (최종 사용자의 지연을 피하려면 가능한 한 빨리해야합니다.)

이 사례에서 우리는 무엇을 사용해야합니까?

포스트 백 또는 PHP에 사용할 JavaScript?

그리고 어떻게 PHP 스크립트에서 다시 게시를 조작합니다.

내가 언급했듯이. 이 스크립트 Prosper202도 동일한 기능을 포스트 백을 추적합니다. 그러나 유용한 코드를 추출 할 수 없습니다.

자료 : - :

1)이 분야에 MySQL의에서 트랜잭션 테이블을 만듭니다

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

2)를 작성 여기

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

답변

1

당신이해야 할 일이다 이 필드가있는 MySQL의 변환 테이블 :

을받는 데 사용되는 다른 스크립트에서

/** 
* 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)), 0, $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) : 코드에서

3)의 URL로 전송하기 전에, 당신은 생성하고 고유 한 트랜잭션 ID (일명 서브 ID)를 연결해야합니다

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

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

지금까지 실시간 비교가 간다, 만 측정하면 : 게시, 당신은 변환을 (당신이 그렇게 경사 경우 또는 POST)를 GET를 통해 하위 ID/트랜잭션 ID를 잡아 표시 할 것 에 접근 할 수있는 지점은 리다이렉트 전의 시간, 그리고 포스트 백을 수신 한 시점. 거래 테이블의 COUNT()를 확인하면 리디렉션 수를 확인할 수 있습니다. 전환 표의 COUNT()를 확인하여 수신 한 포스트 백/전환 수를 확인할 수 있습니다.