有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?1 o, U5 q( V% ~, j; L
2 H2 T- c0 a7 _9 b& C
<?php $subid=$_POST["subid"]; ?>
9 X( G m# P$ [) W( v- `- {<?php7 k3 \2 }5 {4 T; l# b; V* [$ O; u" @, H
function send_post($url, $post_data) {
6 G6 D9 L% _. b. I7 [
9 g# c, z/ L0 K# I! a l" s $postdata = http_build_query($post_data); ) X$ F d, m: r$ C, D( t
$options = array(
3 s1 R8 P/ Y$ A6 N- A9 k0 _ 'http' => array( ! o/ u5 H( v% ` F5 \
'method' => 'POST', * Y4 ^, U* d. G0 {% w2 c
'header' => 'Content-type:application/x-www-form-urlencoded',
+ ~" Z2 B9 s1 z, M% k! z 'content' => $postdata, 8 I6 r6 a) A; b2 O
'timeout' => 15 * 60 // 超时时间(单位:s)
) D8 D9 d) c+ s K ) O" W! ]. n, g7 P4 I5 C1 f
);
' V( c6 [( B4 v4 p3 a& g- M7 o n $context = stream_context_create($options);
0 B5 g& L5 F# l5 a$ i# z $result = file_get_contents($url, false, $context);
9 h, {* p3 x1 l' _4 [3 ]0 U
, [8 I, e0 \: k% X4 J+ g& j return $result; ( v! ~- Z$ m# e& N* n
} - S p& o. k& r4 X( U" _/ K s
t; @: ^- t0 G5 G: D
//使用方法
, Z, n s! M5 u3 f$ }$post_data = array(
, K! i c# C. W" j O# S( ? 'subid' => $subid
% O: v3 w$ a- I6 x. o; z- _ l/ [);
* ~6 w! {/ F1 vsend_post('http://1.com/track.php', $post_data);
) G' y& C9 f ]. W4 B7 tsend_post('http://2.com/track.php', $post_data); : J* L; E' }+ v8 z$ n' K
send_post('http://3.com/track.php', $post_data); 8 H" S; W; H( ~% {- H/ a
send_post('http://4.com/track.php', $post_data);
& [* Z& f2 M H7 P+ o3 M?>
; V" [+ Z! \3 o, J5 S4 P9 L4 N3 `' z+ j- Q0 s9 W8 k
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
4 i) Z% ~1 A3 r; Q9 o- `: g. h% z: n% ]
|