有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?1 ]4 G v% G0 {' R& S0 \
+ k H, B/ s9 D! a N9 X- z<?php $subid=$_POST["subid"]; ?>
; h& w0 a" j& a<?php! m- _3 U) E. J$ q1 x
function send_post($url, $post_data) {
6 K) E! \) t( u( T7 O; b* z! J. T7 d6 B9 O7 H7 s) L% \ b
$postdata = http_build_query($post_data); & i5 L+ W# j: `) v; \$ N+ Z
$options = array( 0 K. u! l3 p- g
'http' => array( 3 I0 |9 ?1 U$ x h
'method' => 'POST',
7 F; c* Z( q" {5 D F! _( Y 'header' => 'Content-type:application/x-www-form-urlencoded', % n( E6 p c. o5 x5 R
'content' => $postdata, ! m# a' c$ g/ a- B6 g3 N
'timeout' => 15 * 60 // 超时时间(单位:s) 0 I- X" ^) I7 `8 S8 N! r6 }! \% b
)
! Y) G4 n/ r g7 a) @ );
: A7 V6 m% y9 d' k $context = stream_context_create($options); # _' i Q$ T2 q# G0 J
$result = file_get_contents($url, false, $context);
9 v% R2 [" z5 D& |
: C2 A0 u& f8 W6 c. e7 r return $result; 4 x1 l; O* i" C
}
; Y/ B9 [4 X" @9 P1 G+ s3 w1 L4 O5 B2 j7 m5 j
//使用方法
; u9 C7 g/ j, p" X6 W$post_data = array( 2 J4 E2 w t; e; h* \$ ?* R0 H8 e
'subid' => $subid
* n6 X9 ]" z7 z( \! @/ e2 G);
6 y6 Z) R+ X- n1 V' S4 M4 t" C$ Qsend_post('http://1.com/track.php', $post_data); / e m" b0 E0 _6 q
send_post('http://2.com/track.php', $post_data);
) g0 Z: [$ J) o# e/ f. U5 l, q- x$ x4 [send_post('http://3.com/track.php', $post_data);
" W. s: Y/ {0 O/ u4 lsend_post('http://4.com/track.php', $post_data);
" I6 V# O6 E& J9 c) ?6 |?>/ D5 y& `) @/ i1 E( C
$ I0 |& N( @& M! |
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
! O& q6 s G V0 I: s& M5 B5 K' ~2 s$ u$ W
|