有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?* K- Y- r5 ~, D! |
! u1 f( r+ e J0 ]% a! k<?php $subid=$_POST["subid"]; ?>- p% m! [7 {+ ^% L
<?php
; J( @+ h+ D4 J4 l# `function send_post($url, $post_data) {
7 g, D/ ]7 a# ~2 N. m# f6 a
0 `! D! e8 F3 }: f" ~& Y4 n $postdata = http_build_query($post_data); % j6 _1 N. b! D; U
$options = array( 1 I; k8 r3 b6 I- v+ N
'http' => array(
& T9 _4 r4 F1 S5 i& K% c( T: l 'method' => 'POST',
$ _- T! d/ e( w' i 'header' => 'Content-type:application/x-www-form-urlencoded', # o( H* }! K; N& e: J
'content' => $postdata, " [; O) G' v0 o' I: a0 \0 ^
'timeout' => 15 * 60 // 超时时间(单位:s) 8 c' m1 I g/ w# H- B0 V
)
i! ~- T J5 w9 L- H8 z );
) K# u7 {% P% F# E( i: V2 I5 j $context = stream_context_create($options); $ ~! I# E$ G3 x- q
$result = file_get_contents($url, false, $context);
8 l* z) ^) ^9 D3 c& G& y: j7 B
+ O& @4 R- t, U8 X# m$ i4 ?& L return $result;
7 \7 n5 v2 f5 z5 U/ d9 A, a0 I$ |8 \}
+ i5 R7 G+ t- [) a ~) J) r# F& w+ s# D4 U
//使用方法 x2 N' |, ]( m( }
$post_data = array( $ }0 V1 [+ q! O4 m8 \
'subid' => $subid
: B4 C1 B9 w4 A); & R; F" B* ?, |
send_post('http://1.com/track.php', $post_data); ' ~: i! E, x7 e
send_post('http://2.com/track.php', $post_data); |- I* h& g! u( s: e
send_post('http://3.com/track.php', $post_data);
5 g& l8 R: i9 @+ h; y4 _send_post('http://4.com/track.php', $post_data);
" b+ }6 m8 a* k+ Y, C: V1 V" H7 Z?>" l; U% W6 f, V: {
7 T6 z9 i2 c% b! h: N比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
: q( n4 B6 I" f
5 |1 l3 A5 [* S! q" |$ i |