有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
( n$ {5 s6 u4 {! B7 F; ~
5 Q( X/ X& ?2 Q1 w; |/ Z9 q; p8 P<?php $subid=$_POST["subid"]; ?>
! S8 G$ j) O4 e<?php" R, ~4 Y2 j5 v! a) x$ ]0 d: V0 R$ e
function send_post($url, $post_data) { 5 G* G2 M3 l2 H) z
, K/ i/ n7 T1 K4 a8 ]$ W+ x5 {7 n
$postdata = http_build_query($post_data);
& W7 |4 L6 J. u1 q) R! M- ` $options = array( 9 `4 F( S) ^ C& Z$ p8 o
'http' => array(
8 B( q" g' a+ \' h! g 'method' => 'POST',
; Z5 x7 A; s7 c4 a |' d 'header' => 'Content-type:application/x-www-form-urlencoded',
; T. B, J8 \; l6 B0 [ 'content' => $postdata,
5 z8 ]7 {, v% v! j4 ?7 z 'timeout' => 15 * 60 // 超时时间(单位:s)
: Z" a$ }, X5 f1 H: [ ) 1 J& Y1 g1 [' N" N9 S" y0 ~
); 1 @( n1 i& W$ C5 N" N0 }6 w
$context = stream_context_create($options);
4 l: j3 Y5 y# ]; L2 l" b $result = file_get_contents($url, false, $context);
+ g+ q* C9 y \" m6 o( v$ r* Z, l+ a, M2 N6 C( p1 ^8 }, B
return $result; % Y% z- _8 Q# z7 X6 G
} . e) n: w$ s9 R: |3 {
8 g6 F$ Z! K& K+ H4 _$ I! N//使用方法
. f" B% N7 t; Q+ n0 |& w$post_data = array( 6 _/ `7 F6 A5 v
'subid' => $subid 0 J/ i M4 v& ?
);
|( Z: ~6 M# J; _1 ?send_post('http://1.com/track.php', $post_data); + n( P' O0 `! R+ f) W6 R/ V
send_post('http://2.com/track.php', $post_data); : s1 }# H1 D5 F1 q$ e7 Q
send_post('http://3.com/track.php', $post_data); ) }6 ~( f! A7 Z) y5 ?
send_post('http://4.com/track.php', $post_data); 5 G& M) t6 ~7 E4 e1 y+ @6 ]* Q
?>
% m9 W4 t* j. r3 u. z
D3 X, E: f' t比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
3 K" _; U9 w0 s0 A) k( ?. a. K | R1 C8 E8 K
|