有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
* l- \. i, Z# p1 Q( ]
' d$ W4 \/ V& \9 F' m4 I0 L<?php $subid=$_POST["subid"]; ?>
7 O2 o$ t! K7 H+ O8 y<?php8 P7 [/ ^& k3 }7 d) ]4 ]& N5 j0 z
function send_post($url, $post_data) { ( l" B5 u3 ?7 R" i, K' c" a" Z
6 h5 T7 ?+ l- C0 C1 G $postdata = http_build_query($post_data);
# e& w3 ^) T1 K; b0 ~- I2 `4 V $options = array(
( t# Y W1 C; A: K2 ^/ e 'http' => array( : ?# T s7 Z1 r; |: ~
'method' => 'POST', 2 C/ G: B2 y; r' _. Y; Y
'header' => 'Content-type:application/x-www-form-urlencoded', - _, \1 {- A' }# h: @/ F: A
'content' => $postdata,
" Z/ B0 h+ Y0 Q! U4 Y3 n 'timeout' => 15 * 60 // 超时时间(单位:s)
' R P: C0 l+ M0 b; k5 w. e" @# Z" l )
; g* z7 u5 A# J8 r' g" ~. E Z2 Q );
4 }" z+ C2 [# B2 w $context = stream_context_create($options);
. C R9 t; C! B1 c" v. {* t $result = file_get_contents($url, false, $context); 8 A/ _" Y8 G T8 V
" @- E1 l+ n- ^5 w0 d return $result;
1 {1 e( }; I* T3 u- {7 o}
. F0 r L) C! v7 s# C5 _- D6 \* D& G/ w7 n
6 C! H& s3 u: ]+ p//使用方法 4 n4 O o( V1 c6 d$ k1 }' I
$post_data = array( 1 |4 `) I) L! z' Q6 {( u" Y
'subid' => $subid . V/ V5 \; @( S; f6 F' F
); 2 k& S! g7 n1 _; j# y8 [$ c( Q; t K
send_post('http://1.com/track.php', $post_data);
( ^2 \6 t) b+ Xsend_post('http://2.com/track.php', $post_data); 8 U7 U5 v0 a! a! B! Z0 t
send_post('http://3.com/track.php', $post_data); / d9 X' ]/ y8 F9 @: d2 |' }/ C- Q8 @
send_post('http://4.com/track.php', $post_data);
& i' q0 X/ G; ]' T* _" o P?>
) x$ t/ O3 A5 f4 ?# Q- U& j$ B( w- r9 B+ X" }
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
. h5 f2 q9 h' t
* Y g2 h( y0 s$ K, a2 E |