有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
% L- M& E; l6 @+ z4 m9 _" Z& Q" Y* [) n
<?php $subid=$_POST["subid"]; ?>, z; c, d( J. C, C& c) O
<?php- q( r6 L; U6 H+ w$ `
function send_post($url, $post_data) { - X+ s8 R8 b0 G+ O
4 J# P4 w% T K) j2 q
$postdata = http_build_query($post_data);
6 t& `4 ]5 o! {$ M# p: Q $options = array( : [6 Z# e$ H$ D Y. P. H
'http' => array( 1 W& ^( ~; _3 _& ]
'method' => 'POST',
( p! h- U+ c1 C& ^ 'header' => 'Content-type:application/x-www-form-urlencoded', 8 p2 n' F0 z( g, M' e
'content' => $postdata,
4 V! j5 h/ [- ]7 B8 y* e4 {+ J 'timeout' => 15 * 60 // 超时时间(单位:s) ( }. p7 J8 ?$ y. S" e
) 4 h. {; C0 \; J; N
); 5 K% h" M/ T) A6 f
$context = stream_context_create($options); , J. m1 [/ i& g, Y" k; ^( h/ V
$result = file_get_contents($url, false, $context); 8 f, H! C4 l) p; N; z
' N! P4 O' ]1 r
return $result; * P7 G2 c8 ^, L5 E* @8 F6 b0 S
}
/ ]' X/ {1 N7 Q0 \6 ]6 c7 u$ ~& \# W f. [2 J, @
//使用方法 ( O+ ?- f5 f: H3 Y& ?
$post_data = array( " \6 q9 k6 B1 r! e$ {. Q7 [; k
'subid' => $subid
/ Y. c5 |) |; d);
Z% ^" \. v( `3 x9 N$ o; Asend_post('http://1.com/track.php', $post_data); 0 U r4 i/ M4 N N6 a' E
send_post('http://2.com/track.php', $post_data); 7 [1 ^) y( S+ Y; t" c
send_post('http://3.com/track.php', $post_data);
% A, r y) A1 ]: {6 S9 rsend_post('http://4.com/track.php', $post_data);
0 n2 K8 i6 f* |4 ~?>
0 e4 Z2 D0 V8 h1 H* h0 n9 A% K6 Z5 K# d; d
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈) ^1 f/ [9 E% i" B
5 J$ y4 p" e4 @* }3 e Z/ I |