有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?. n! u* y8 \& Y2 K& i
/ Q5 j0 B) |4 a8 N' x+ [3 ~5 `
<?php $subid=$_POST["subid"]; ?>5 s* E& L0 v' q& e$ I* ~3 T. B, \
<?php5 S* d$ u; g+ f! m ~0 N
function send_post($url, $post_data) { 9 E. S2 L" L, j9 }/ M6 ]6 r# r
( T! D; y4 ~) I8 d7 E
$postdata = http_build_query($post_data);
$ U5 }; A+ ]2 l7 v8 s# ?5 p $options = array(
0 m) q K% s2 w% j1 I$ N 'http' => array(
- k: w4 D, Y( C: l 'method' => 'POST', $ L$ \! L$ I/ j1 ~7 D: y6 A% ?
'header' => 'Content-type:application/x-www-form-urlencoded', % L5 h( N, i7 _! c! ]/ ~
'content' => $postdata,
: s. {6 s3 B2 |3 @2 ~. I7 j" x% z 'timeout' => 15 * 60 // 超时时间(单位:s)
; ]- f9 j: k. G$ @% r ) : B- B7 U* n7 G: Q3 F
); & \4 Y3 x+ }1 U: y+ U( }
$context = stream_context_create($options); 7 u: X, Y( Y% j- z) q) p; B
$result = file_get_contents($url, false, $context);
0 U( p! o1 f+ w* Q
! \' g! n3 J8 Z( Q/ @- H return $result;
( A! |: G" E& K; R2 D} ! a/ C, N. I5 N& @+ o
/ X8 ]+ {3 C! d. n( U& L. g( }( E//使用方法
& ?- q: `+ [/ O9 Z8 I) P* F$post_data = array( 6 l$ p: v8 V/ n: M, N; D
'subid' => $subid 3 a$ Z: z) k: @1 x: I
);
; T: v% _: o3 c3 psend_post('http://1.com/track.php', $post_data); - I$ E# n+ E* u- y( n5 F, z/ C" W4 T
send_post('http://2.com/track.php', $post_data);
7 G5 F( N& H0 _$ D6 vsend_post('http://3.com/track.php', $post_data);
' c3 m8 h2 \8 h) `, k+ psend_post('http://4.com/track.php', $post_data); $ N8 a, J6 m' }3 U7 @ _4 _! ~
?>: `, S+ O6 r6 ?+ c' Q' s
: V9 f+ k$ g( N h4 b( I9 R+ f
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
2 L% z9 C0 p8 I3 r( u9 R B9 @3 t1 J% r* T1 ~, ~4 @
|