有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
) n3 z$ B/ f" `, V7 c. j) m% {. t; J8 p- j. z
<?php $subid=$_POST["subid"]; ?>
4 k! p- } v) C<?php2 Y( q' f% ]- k: u
function send_post($url, $post_data) { 7 Z( _+ {3 e: v' w9 Q" }
. S9 F( @, O, g- k
$postdata = http_build_query($post_data);
7 q% Z, q" n. d$ Y8 T $options = array( # B3 ~8 J! C+ f8 A) @' ^
'http' => array( - |7 V5 O. O3 Y: A
'method' => 'POST',
4 \( N) \" N' I$ B 'header' => 'Content-type:application/x-www-form-urlencoded',
/ ]7 G0 i# G+ w$ q 'content' => $postdata, , b! k2 i) h+ u) ?& Z# N: h
'timeout' => 15 * 60 // 超时时间(单位:s) . g, Q# S+ R$ Y# a
) 9 Q9 s' n" h5 S& {
);
& Q0 H7 y) }5 \# x$ U* i $context = stream_context_create($options); # q! j8 k+ g$ r( S0 B
$result = file_get_contents($url, false, $context); * ^$ R5 K' G7 U2 f# d
9 t/ G9 E5 T ~ return $result;
8 x: l& x. j% Q" ]5 b# z} / ]6 ^/ v2 J& i3 V; q# z
3 M1 h& V i* ~" `$ E//使用方法
* [# }8 h, z" I, k# I$post_data = array( , I- } o) s- R: u1 g" q2 C1 W
'subid' => $subid ' {# J4 ~+ o9 Q( h3 k/ W
); 7 I2 E" L r5 L) B1 M T
send_post('http://1.com/track.php', $post_data);
9 q' k( G; T3 D8 `send_post('http://2.com/track.php', $post_data);
8 Y8 M% R. z+ l0 `. _, lsend_post('http://3.com/track.php', $post_data);
) I' j4 W" j9 ?5 Usend_post('http://4.com/track.php', $post_data);
: M$ n6 E* {: W, [/ Z8 [?>
- o; b$ T7 h9 q1 r7 `4 I, N0 o0 a& I- C( d5 \$ X* ~# O/ U8 N
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
* b9 X6 J# b# {
- m+ m3 W d4 G0 O; t& v |