有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
/ h" Y& `/ ]1 b7 e) e
6 N1 `+ K( l2 u* v% C6 d& q<?php $subid=$_POST["subid"]; ?>
% @$ q, N' O' h' y<?php7 d; @2 A( C8 K9 u' @
function send_post($url, $post_data) { - j! @0 M$ F& p& u; ~7 R% k* e
/ U9 P8 q/ h) y $postdata = http_build_query($post_data);
4 M w, p2 H$ ^! K$ ^4 Y6 r7 I $options = array( 6 }, i$ l& }+ s
'http' => array(
9 v8 u# }$ w2 m+ k! R: m( e 'method' => 'POST',
3 J# R: E( r+ [% R! ~/ v 'header' => 'Content-type:application/x-www-form-urlencoded',
" N, q( i9 h& l5 E$ j: y& d0 a 'content' => $postdata, * J/ N; l% I8 m" B8 C5 v+ @5 q ^
'timeout' => 15 * 60 // 超时时间(单位:s) ; ^2 x. R, `4 s! \( A6 d" H
) 5 W) |, v8 I3 H# E0 d+ m
);
1 w# Q( |, J: L. H* W $context = stream_context_create($options);
4 E6 T6 I! v: B: ?# ^) z $result = file_get_contents($url, false, $context); Y" _; A. k6 {% f2 ^8 a2 R3 T
; w7 `2 z) F% I+ {
return $result;
7 d/ w( }. c2 D}
) p. c7 M; z2 {6 \+ W
5 i. N. n* i1 d4 |//使用方法
" J' }3 e9 Y0 C$post_data = array( $ @& S; t' ^, y2 k( M* i8 O) H
'subid' => $subid 4 {9 P9 B8 }, d( L! |1 B1 Y
);
8 |$ K: \) [% z: @+ o. q W' esend_post('http://1.com/track.php', $post_data); 9 b8 v0 D* ]6 K- M) d: Z9 }& M0 A
send_post('http://2.com/track.php', $post_data); * `* }/ q, ?( @0 d& x; V
send_post('http://3.com/track.php', $post_data); . J4 q9 W9 N9 s4 Y# _2 P
send_post('http://4.com/track.php', $post_data); 3 L( H2 j, b" L) h, n; i: H- ?
?>% B& T7 F. H& {% S+ U4 M( H
9 X$ `) \0 E4 J+ ^8 Y. m* ^
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
; H# M0 F- S, \( d) q9 w, N) z) {* u% k2 o' W* h
|