有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?; t5 ~/ X+ ]5 D
6 T! k+ f! v4 @3 H; C<?php $subid=$_POST["subid"]; ?>
" u7 {# W# \/ ?1 f<?php! H. c$ x H3 n0 a2 d) w$ h! e+ p8 H; [) B
function send_post($url, $post_data) { ) Y: K t- P/ B7 r3 s* U0 A
0 B b7 S2 Q' i( h3 y5 k E
$postdata = http_build_query($post_data);
# c5 |0 L3 w" C $options = array( ( a: k, O8 F9 u. j8 i9 _8 E# Y' v. ]
'http' => array( ' |7 R2 l* k* a; {
'method' => 'POST',
, p: W) U2 g' s; s R& T: u) [ 'header' => 'Content-type:application/x-www-form-urlencoded',
) v2 d! p# ^. O' B+ V 'content' => $postdata,
8 Q+ V0 U8 i2 a8 Y6 K" `. t9 d2 F+ N7 h 'timeout' => 15 * 60 // 超时时间(单位:s)
( A# N& e7 \( w0 R4 Z+ {' V; @ )
0 W& }- k1 p; h' d );
8 C! F; Y" l9 f, A $context = stream_context_create($options);
- V7 w+ H# x) Z, Z$ ~$ Q1 _ $result = file_get_contents($url, false, $context); # K' A' Y6 t( B# p% E/ q
$ ~6 c2 \& P4 G# d8 Z return $result; 8 J8 R6 I: o, t1 _
}
5 |; ~. ~/ u+ e
+ ~0 X: U* F) h, z//使用方法
( ?$ p( a1 }8 e& W5 H1 Q" h2 k$post_data = array(
1 G& c& i D. y/ f. A5 u- g0 k 'subid' => $subid ; B S2 T/ \; O0 k
);
& X$ N- B8 X- @7 W! P# Qsend_post('http://1.com/track.php', $post_data); 2 ]- J' G ]" x6 d! Q# m
send_post('http://2.com/track.php', $post_data);
x5 P! V* ?8 e" F/ L5 _% |send_post('http://3.com/track.php', $post_data);
/ g) j" H* i# u. Zsend_post('http://4.com/track.php', $post_data); 9 S' `$ V6 U- `+ d- F+ v& C
?>
& I5 C P/ o- {6 m! w1 j5 k- x+ n) _; @) H/ q3 k x
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈9 V7 v7 x7 Z7 P6 s) V7 ]7 l
9 ^% j( C& V I5 x |