有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
" c6 n. E! W; ]6 k4 ~0 u8 _8 Y, {4 r
<?php $subid=$_POST["subid"]; ?>
3 ~0 n& J4 A" F$ \0 Y# ~, R/ p<?php
0 B5 k2 [8 D u. b6 J \function send_post($url, $post_data) { 7 O% {' m1 @9 `# Y
3 I! h z- n2 M( C4 H $postdata = http_build_query($post_data); * o& \: o# a+ @5 `/ H' [% x
$options = array( $ v3 e6 W4 n9 D" r% K4 D D% y
'http' => array(
" ]& B3 G- R+ q% j 'method' => 'POST',
) X( l4 C' H7 U y5 A o+ N k 'header' => 'Content-type:application/x-www-form-urlencoded',
l( d1 N$ e6 t6 l* g# j; Z/ N 'content' => $postdata, / f. ]( `8 R: L3 ^1 G2 L+ z
'timeout' => 15 * 60 // 超时时间(单位:s)
+ u* [$ Q0 x7 a2 ]% Y# \' Q" t z/ { n )
e& N% j7 ?% O- y) [/ n/ _0 P" u ); 7 ]( x: b* H# |# k8 ?, y
$context = stream_context_create($options); , T3 e) }5 L. d
$result = file_get_contents($url, false, $context); 0 w+ z2 C3 s0 @& U& O4 J' @. [3 G9 w
! A' B4 S& U: `; S- K4 T
return $result; 8 z+ F* ? m' x3 n: B
} ! O: h, Z" x9 b) r* }
3 G' I* ]4 S& q4 r; x//使用方法
. S) e/ a9 b. C5 B/ e4 ~$post_data = array(
! j6 `; f: x& H 'subid' => $subid
0 B- J% S8 L* K% m- d); + w* U9 S9 l; q- A" j
send_post('http://1.com/track.php', $post_data); ' j- P" J) @4 w! y6 A& ^
send_post('http://2.com/track.php', $post_data);
9 A6 U. Y: u& x* a# |3 Tsend_post('http://3.com/track.php', $post_data); 1 a& x* D7 w0 r7 V V0 \ ~9 ~
send_post('http://4.com/track.php', $post_data); # w! A* v9 d+ r8 N5 V) }
?>
% O9 l& _/ u1 S; W7 B! o. s" I* P+ h4 V8 ^* v
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈9 S( c1 `) f- f# D+ g' B$ [
" g6 S! R W# e9 U" s( H) ? |