有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?- U- V1 B1 b2 H
\* h, g2 y; P5 J. {<?php $subid=$_POST["subid"]; ?>
Y! F6 z+ ^# [<?php( C1 V) l1 x3 U+ `8 O
function send_post($url, $post_data) {
+ i" z- y. h: ?! I
# E- F2 l5 e; J: H $postdata = http_build_query($post_data);
) l0 X; W0 n9 y; n0 D: E! ~5 R1 z $options = array(
+ r6 m' |& T) _$ V/ G# ? 'http' => array(
2 B" l' K1 o% q* u( K$ v" h 'method' => 'POST',
+ I6 n6 k& V8 X 'header' => 'Content-type:application/x-www-form-urlencoded',
8 F, T% T8 I. t' F7 s+ @" f' K- G {* ? 'content' => $postdata,
& w4 N" Q4 x9 J$ r- ~+ x3 ?% r 'timeout' => 15 * 60 // 超时时间(单位:s) 5 h4 E1 g+ k2 h; M0 p$ a' [7 ?
) % ]) u9 c. A7 D
);
/ S0 x5 u. x$ q $context = stream_context_create($options);
+ \( Z% [4 p; O8 _ $result = file_get_contents($url, false, $context); 6 d3 d8 j2 u1 k" a' ]- v
0 ?+ H( Q+ L: @$ g4 G `( ^
return $result; / A! C# h7 Q# I* u
} 1 Z2 U, h7 y( }; h( c/ C# L
: z3 o; d; c5 m: e, D; d/ F//使用方法
+ u) k; {/ H5 ~0 u) a: S8 U9 v$post_data = array( ( y; {' q7 ? n0 U3 X
'subid' => $subid
! m. I" l1 K8 ~: g3 k); N9 g$ @7 A/ y' F; g
send_post('http://1.com/track.php', $post_data); 9 |# N: F. Y, m
send_post('http://2.com/track.php', $post_data);
& a1 i0 S S1 o9 g1 a+ x$ ssend_post('http://3.com/track.php', $post_data); # S8 \7 B" u6 C9 S
send_post('http://4.com/track.php', $post_data); + ]5 h- \, y/ u9 k
?>
2 Z, q& D/ B' r# d7 n! g
/ m) w, C$ H% H3 x! Q6 O& e比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
/ `3 D$ f2 v/ j# P- O) A5 N
( y; K; V2 I# h6 A( [; i |