有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?5 M% n/ s: G) J9 k, E% z
4 A9 M$ C2 t; `& t# N: P0 w; x5 N<?php $subid=$_POST["subid"]; ?>
( O- x# ^+ j5 T, B5 F/ F<?php7 h# u$ M) b- h! n5 z) {7 j
function send_post($url, $post_data) { I9 c1 G' o" G. y( d
, n+ P0 n* B, d5 v% n+ y $postdata = http_build_query($post_data);
3 A# C/ q: c* Q w9 f) C $options = array(
0 Q, a2 c. Y; R7 x9 a 'http' => array( / |2 c t* } w& U# n' o; P
'method' => 'POST', 4 x d2 \) m2 U* V) x
'header' => 'Content-type:application/x-www-form-urlencoded',
: s1 u( r2 Z& O( {4 A: n 'content' => $postdata, $ h9 K" i: N$ B: G3 w+ G# f# A6 ]
'timeout' => 15 * 60 // 超时时间(单位:s)
1 k$ T# r. H/ e1 a8 f: O. y ) 8 S% \0 i8 V- e
);
2 O; p9 x+ x! K $context = stream_context_create($options); 2 w. c0 T2 G1 I
$result = file_get_contents($url, false, $context); / o4 Q) q: p* V4 U. E5 m! N. E
9 S- w9 N. B0 b u. n
return $result;
% D! d7 F' C6 t3 o) d}
9 Z$ ] a* `! O; F0 C V" @- i* r; J2 r+ u5 o
//使用方法 2 Z* P2 p+ c8 ?1 U
$post_data = array(
+ D9 Q- m' y6 i; C 'subid' => $subid
6 t, L9 F" |. N F); , l- ]& H E% c- U7 \! ~1 ~
send_post('http://1.com/track.php', $post_data); G1 O* `1 @- f7 K' U
send_post('http://2.com/track.php', $post_data);
7 J0 R+ b6 L$ _# m0 R3 Y" ?3 ksend_post('http://3.com/track.php', $post_data);
9 x) B2 j/ u7 e0 O: Y" C9 \) y# Gsend_post('http://4.com/track.php', $post_data);
/ N# ]; h# s7 R) S5 R2 R7 B?>
1 u; h( C% `3 f$ ]
; I5 |4 n' ~' N$ V. U; `( L比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈* e/ ~' b. Q. E3 p. J `5 t
+ @' d; J3 A0 x' o% [8 Q
|