有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?4 r$ S! _9 y$ c4 h0 ?& U$ M/ `
9 w: x) l# [! P/ f
<?php $subid=$_POST["subid"]; ?>
8 E4 p$ q( t$ k j; \' {% U<?php$ G8 e: y3 `3 g/ t( g' _' R a/ O& J
function send_post($url, $post_data) {
! D$ G( F; d$ ~4 ]; u& ~' g2 t1 X3 ?* i9 K7 U% F: |% ^1 v/ u) H
$postdata = http_build_query($post_data);
! ~/ I* w& [3 h7 c- _2 @ $options = array( 3 s( M, L" t& t+ z0 a, {- s# v
'http' => array( 5 J1 K2 N- o3 p/ ^
'method' => 'POST',
: \8 u8 [* ]) y( V 'header' => 'Content-type:application/x-www-form-urlencoded', / M- I- t7 o$ ^# Q% r1 [% C
'content' => $postdata, ) e" v4 r/ }! g" A7 Q4 E7 ^7 X
'timeout' => 15 * 60 // 超时时间(单位:s)
# u: D; o3 Y! m4 a )
$ O* m6 M3 r/ l5 p( @# t9 C$ Z );
3 c$ w- z+ p5 F8 F# Q- r $context = stream_context_create($options); " x8 O- {3 a4 f. a3 T" K
$result = file_get_contents($url, false, $context); ; |+ |0 Y/ M/ B6 U/ Q# g% G
4 |- L$ t0 m! _2 l
return $result;
8 E" E& ~3 R1 b# _8 j/ J} 3 J# G+ @9 q7 K8 l
0 G3 v6 l+ G$ L& P6 v1 n* V6 r
//使用方法
" b% i7 J+ Y& H! F$post_data = array( " a7 t0 F; c3 D
'subid' => $subid & \2 L/ k; N; K6 b
); d: e. r9 v- h% h d
send_post('http://1.com/track.php', $post_data);
9 l/ q( c- a8 d" Wsend_post('http://2.com/track.php', $post_data); # g9 y! _& L6 h+ ]6 x4 q
send_post('http://3.com/track.php', $post_data);
4 A/ g. I$ H" c9 n% ~8 a# Gsend_post('http://4.com/track.php', $post_data);
" L5 D( g0 s8 @0 k8 s. }9 c?>
1 j8 c0 r. ]# e/ y& V; _) B' q/ T* y, R1 M( H
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈) A' c. j, N7 f0 v0 k* p+ b( ~: h
. O+ r, m8 ?$ | |