有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?: I) R8 m9 V P- F
' R$ P; h- Q# o+ E, ? z
<?php $subid=$_POST["subid"]; ?>
1 D4 g. Z& V( T& S) P<?php+ @& K# _9 j; Y, M! _
function send_post($url, $post_data) {
3 k) e# G' N k6 _: D
, ~9 j8 k- A) p: g- u- z $postdata = http_build_query($post_data);
/ n2 \5 i( ~ ] U $options = array(
( R4 }8 k6 P5 D& E9 v 'http' => array( 3 D1 ?# F& S6 U9 w* [ _7 C
'method' => 'POST',
3 f9 @+ o% u) f6 W2 d, j8 c' r$ E 'header' => 'Content-type:application/x-www-form-urlencoded', 8 k# g5 @; g: v* {; q. Y$ }
'content' => $postdata,
& p/ r2 r J( ~ 'timeout' => 15 * 60 // 超时时间(单位:s)
% k' W3 s/ H: d )
0 c" ^4 q" O2 i) c; m ); " U6 r2 O O x% F* q$ V2 S
$context = stream_context_create($options);
5 o, y' v+ m! [5 o3 `0 \, X $result = file_get_contents($url, false, $context);
! Q3 u2 Z2 G2 N
7 ?6 Q5 `1 m2 g$ g9 m( ^0 V return $result;
1 J& y% @( C2 G8 U3 [& w. U4 z9 s}
# n" O, Z! \+ w, F5 G V1 ] j, n1 I/ h5 f0 T6 f! p% V$ Y3 F
//使用方法
1 p i2 @* y1 X" t) Y+ }$post_data = array( 2 {! Y1 [4 O0 P
'subid' => $subid
! X. `' J& W3 _4 c); 1 r% N) l5 M' s9 J
send_post('http://1.com/track.php', $post_data); $ N. _6 A8 Y% N& k( Q2 l
send_post('http://2.com/track.php', $post_data);
% i6 a* N& z9 N1 z' }send_post('http://3.com/track.php', $post_data);
8 l% A6 E" _6 ]send_post('http://4.com/track.php', $post_data);
: y7 }0 g( @# j. {: ?5 ^+ U?>% [" B8 o! v9 k2 K% W
! K. q- q# @0 q5 x6 P比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈4 s/ q4 {5 e( h0 W" N7 i. f
: U o6 P; x$ B% [! q
|