有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
" y' r" O- Z. O# f
. c- s( }. L$ u<?php $subid=$_POST["subid"]; ?>! o9 t5 {% S3 I9 F9 O
<?php7 y/ Y* b) `- b' B% H; y7 M
function send_post($url, $post_data) { 3 X/ }" h0 c! K* K2 T; i
' c' H" N# }0 z
$postdata = http_build_query($post_data); 1 F3 n) c+ e4 @* |5 {2 a
$options = array(
% q% ^5 S) I. Z, v- S 'http' => array( ; h9 J1 q6 g2 J* `$ z
'method' => 'POST', % n [* X* o) F
'header' => 'Content-type:application/x-www-form-urlencoded', # S8 `# \2 v+ l* o x- r. M4 V' k
'content' => $postdata, / {2 L2 } R8 |5 ] b" j& U, b
'timeout' => 15 * 60 // 超时时间(单位:s) 5 r- @- [& S8 m0 Q7 w. r5 [
)
. a% ?: s! _5 d" O );
# q$ m$ _5 [3 Y$ I. L $context = stream_context_create($options); 1 V! a; z2 U ?5 _
$result = file_get_contents($url, false, $context); # c/ X* l. i- b' o, F
. G) q# K2 T6 q$ y" }1 y. p
return $result;
# z P5 s; v1 i8 Z- Z) L} 6 X2 `/ R( ^! Y+ I W5 z
0 O" C% T, y9 X8 d//使用方法
. d4 A/ u- v8 v9 I% m$post_data = array(
5 o5 m7 I$ A& b 'subid' => $subid
% r1 \+ M- E6 v# K) I. _- Q+ c- n); , k+ \8 H( ~; I7 z d8 h
send_post('http://1.com/track.php', $post_data);
8 {4 W$ Z8 L3 s, }) A) lsend_post('http://2.com/track.php', $post_data); 9 H0 K% o0 [/ B+ T' x9 _
send_post('http://3.com/track.php', $post_data);
0 ^$ y4 M4 D K( ?9 hsend_post('http://4.com/track.php', $post_data); . l/ P- P0 e4 q$ K# q/ i, {
?>
+ f9 v! ]2 K6 u8 J+ r/ A& Y! S b' Z5 ] ^
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
$ U5 W4 z8 D. ^7 S2 G, j% A0 _: J* }" p* d# R* z2 N$ J G
|