有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
7 ?) P6 Y. w5 C
: W r3 c) h& A' z9 w; `& l8 e<?php $subid=$_POST["subid"]; ?>& o6 m, E, W: R6 u' O5 \
<?php
) @) k n7 \6 d9 B0 Wfunction send_post($url, $post_data) { # d( i( |" a& ~
' Y# z) B# l* P1 M $postdata = http_build_query($post_data);
" G4 V& _' }) K. b $options = array( ) p* z4 R% W$ G( f) f
'http' => array(
N3 d* h2 v( J3 K" \/ X7 \) e 'method' => 'POST', ! i! M9 y0 j: e
'header' => 'Content-type:application/x-www-form-urlencoded', ' c0 B0 L/ U5 b
'content' => $postdata,
9 |* p; y2 t/ @" I 'timeout' => 15 * 60 // 超时时间(单位:s) 0 J1 e5 q6 W+ M: I* b: b4 z3 F% } q
)
1 @) {; j- W% p& U$ N) _ ); 5 F, B7 E; f" j( R- v: e
$context = stream_context_create($options);
" ?$ `7 g+ a G7 I& \. G! ~ $result = file_get_contents($url, false, $context);
$ {" h0 k) [ {: {4 D& @; F; x& j% y, V* m1 N- y
return $result; 8 Q% j4 M( K) x+ V
}
2 K9 L; w# t) a9 h3 ?+ [% x, Z2 n% P$ \- }( f
//使用方法 8 X3 s3 e4 j$ E- ?5 B2 z
$post_data = array( 9 }9 R: I/ m: n3 \5 x
'subid' => $subid
) W% f w! Z( {; I' z! z6 b1 A);
! I1 o X, ~- M4 K9 i) ~1 qsend_post('http://1.com/track.php', $post_data); . q ^) \$ G8 l8 g
send_post('http://2.com/track.php', $post_data);
2 u0 p! `5 A- @9 Q* g0 C; a* asend_post('http://3.com/track.php', $post_data); # y2 L r7 ^" ~* r5 J ^
send_post('http://4.com/track.php', $post_data); ( p8 w/ G/ M h, v
?>6 `5 \/ K) w9 _1 G. x
* k, K! a2 d( }& q9 M比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈% l: b2 B* D) k |
' {6 s! k' V; y; |5 p! h |