有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
9 Z, C1 |; @4 t
; v, M0 K7 S- |<?php $subid=$_POST["subid"]; ?>
1 w9 ?0 B$ [1 s( X<?php) H& ^9 p2 I6 ^5 C/ @
function send_post($url, $post_data) { 0 y" p4 r0 D6 O0 ]
8 { a* b3 p0 d8 q; Q, W
$postdata = http_build_query($post_data);
$ r$ Q7 C9 y2 N4 w, x$ x $options = array( 7 x, r4 q; m6 o% N# a6 ?
'http' => array( ; F# j! W6 j+ s+ {/ \0 z
'method' => 'POST', + S7 }+ Z o' x4 T4 Z1 q4 `( u; Q
'header' => 'Content-type:application/x-www-form-urlencoded',
g+ a' B' B7 \ 'content' => $postdata,
, ^ T1 ~7 X f- Z$ O; d- U 'timeout' => 15 * 60 // 超时时间(单位:s)
. s$ |# C! T+ O4 h# U+ a ) $ U; b! N, Q5 D& _3 W
);
: W4 z) U9 b# Z3 q $context = stream_context_create($options);
3 ]9 K: Q* h" j7 V) o9 s5 ~ $result = file_get_contents($url, false, $context);
6 T% s9 _0 v* F2 j3 h. m; M
# W2 p: W* W' |' @ return $result; 0 D% @! x! X$ n
} , a; {- w. B% ^3 i; C/ P9 c
3 G) ~5 {3 m" A$ C! K//使用方法
5 Z( x9 O; S6 ~8 A0 d$post_data = array( ' I) {+ G$ y) b8 Z* ` o5 E" C
'subid' => $subid
$ b! ?& f* L4 I1 v& p# w5 X); ( j+ m! C8 g7 a: I: j# \2 b
send_post('http://1.com/track.php', $post_data); - Z% O4 X" g/ v4 Z2 F1 Z
send_post('http://2.com/track.php', $post_data);
5 j' D {* D2 f% j; E# l6 nsend_post('http://3.com/track.php', $post_data);
# v. }" L' D: P' c4 C4 e4 qsend_post('http://4.com/track.php', $post_data); 5 g2 W5 B3 i! z; \: L
?>& |% w+ I3 r, Z6 p* I. {% H6 k' n
4 f# M/ X8 X0 s9 N6 N. Q. ~比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈9 ?* n) B( t. B9 `
$ m. D) ?! L- E* n9 Q' m# A; i
|