有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?! ~& i: }. t% w0 L, ?
7 s8 J7 T5 s( E7 B* y. j) y
<?php $subid=$_POST["subid"]; ?>
" d' N( e/ p4 f! B% n2 K<?php) b/ ` ?7 S3 g+ s2 N# I* z; }
function send_post($url, $post_data) { ! B X8 r# A. v* O% B" J* A1 w
5 M+ r5 J1 G, ]: p $postdata = http_build_query($post_data);
. r7 s& ]' k: L' M $options = array( ; X7 u: Q$ D, Q) z
'http' => array(
8 m6 Q% [' q# y4 p; ]7 b. r2 E 'method' => 'POST', " e; {2 J& e i! t
'header' => 'Content-type:application/x-www-form-urlencoded',
) v# n! |8 U: g 'content' => $postdata,
: h# j. y9 f& i- z 'timeout' => 15 * 60 // 超时时间(单位:s) $ c7 U$ F# W4 t* [1 h
) ' W, F/ q4 R0 U' j/ f6 X- Q; q b
); . U/ Z5 x8 Y; {! q
$context = stream_context_create($options); ( O6 ~' f5 E6 Q. j# X0 P
$result = file_get_contents($url, false, $context); % x/ Z. l4 q. m" b2 @+ A/ R
4 G+ q, O/ {8 P" p7 e- h1 a4 A
return $result;
# y6 x& p+ W$ z K} + M$ @+ y, z) M* q. |5 x
8 z8 x1 F$ Q+ ~. E( j+ g/ O( |
//使用方法 6 E7 B* R6 W+ [
$post_data = array( . A2 W- o3 m7 ~# y; y5 o1 y( H
'subid' => $subid
% Y2 p7 V# s/ K4 X% G8 |- W+ f); 9 ?+ b9 s$ P" p8 |8 X+ I
send_post('http://1.com/track.php', $post_data); 4 I, r. x" p9 v
send_post('http://2.com/track.php', $post_data); 5 r: x/ I* P @$ Y1 j
send_post('http://3.com/track.php', $post_data);
3 z# l* R. j- R4 Wsend_post('http://4.com/track.php', $post_data); 9 @5 V1 [) {# o
?>
& Z# n' x0 G9 B% ^/ U; Q/ x- ^1 [5 e1 [1 s
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈9 H- |/ ?% q% k6 W. q
% Z" R; H9 z& y4 S; ^
|