有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
6 v: ~' z4 Z p6 `
/ o/ `" V# S# D<?php $subid=$_POST["subid"]; ?>
7 C9 y, F( A9 X; C<?php2 b# Z ?: c6 d2 H
function send_post($url, $post_data) { 5 w* P* X! Q: i; X* Q+ u6 A
7 D/ F- B' w& B0 @8 P3 ], g
$postdata = http_build_query($post_data); 9 f" [/ Y# r2 [! g
$options = array(
$ C* ]3 i5 `* l* W" J* A 'http' => array(
7 }' v/ g3 o+ T 'method' => 'POST',
. I* @2 O s# Q6 \* I 'header' => 'Content-type:application/x-www-form-urlencoded', ; _6 V3 y1 o+ A+ e
'content' => $postdata, & [( @( t! n0 l. b3 m
'timeout' => 15 * 60 // 超时时间(单位:s)
6 C: _5 o" k- z2 Y ) 9 G/ P& \$ E0 w) B% i- i7 ^/ a, E" ?
);
! S" X2 E( N8 @+ Q7 A- V- U4 { $context = stream_context_create($options); # B$ N+ u% G' u9 _& P2 E
$result = file_get_contents($url, false, $context); 4 |( e9 X% {4 G; r {
: l. i! F7 Z0 M. ]3 k return $result;
) R( D4 f/ Z4 g* l" W d3 U) {}
8 ]% _6 q$ B0 _/ K y# V% {9 R* f
9 k* q, e* H# \8 K7 \9 e//使用方法
& r! t, V7 o' y! ?1 l$ J7 g$post_data = array(
7 T: g4 t5 ~( y+ a% M! n 'subid' => $subid
& ^( z# `3 N3 C; I: e- a* E# f);
# ?4 L+ ^( N1 |5 Wsend_post('http://1.com/track.php', $post_data); 9 S: q% {5 q0 z! m7 L. X) u
send_post('http://2.com/track.php', $post_data); 2 u5 \7 f& C4 z3 D$ ~) a) F+ F
send_post('http://3.com/track.php', $post_data); 2 \7 v# T/ K2 e. X8 X, I8 ]/ [
send_post('http://4.com/track.php', $post_data); / C0 H5 v1 H0 [: M" x: e
?>
( f$ {, z! c! I- p
/ O8 |6 P2 Y) z" z* Z比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈( d% B' M) F1 Y+ R( o# M4 W* w) i
; T @9 n" L. T, U7 L) h7 r
|