有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
' Z2 B5 Q4 F. H, _/ a5 k1 D* D" ~9 S( } r- ~
<?php $subid=$_POST["subid"]; ?>
6 ?7 O* k" M2 S6 B; p0 N7 s& W: W<?php$ `3 K( @" u c) H" U
function send_post($url, $post_data) { - o; S" r/ S# I3 ?" q# u' G
4 D) _, ~& @- Y! t5 k o $postdata = http_build_query($post_data); ) n2 n8 s* ~% E: [! ^7 s
$options = array( . E3 r0 L1 D2 A
'http' => array(
2 e6 b) O6 t+ a4 n 'method' => 'POST',
$ ]. l; U9 m4 N$ T! f+ M9 ?8 W/ P1 W 'header' => 'Content-type:application/x-www-form-urlencoded', 6 F! U. x" g# r% h
'content' => $postdata,
' C, C1 @, Q. I8 R4 ]) C* T- ` 'timeout' => 15 * 60 // 超时时间(单位:s)
% M) _" ]9 M/ g4 C0 ?. ?1 E ) : S- y- x0 L. R. b
);
" [9 P0 K- Q; J# u5 i3 k! g $context = stream_context_create($options);
: S2 J L& F# N- d6 X! _% |7 [: W2 K $result = file_get_contents($url, false, $context);
6 y# z- A: M2 h& h& l9 Y1 N/ H d) [: d6 f+ c
return $result; $ g! X0 y9 ^, q% \1 K! [, ?2 c, W
}
) d4 A8 k/ r( m# h& z ^* Z6 \, s# }* a, }, {
//使用方法
% M4 r: y7 V9 q$post_data = array(
: z) r5 q ?* Y$ S% D( X 'subid' => $subid 6 s- w+ B& M7 }& g7 b6 k
);
2 C" D3 d9 \7 H$ `4 Q6 _7 Q' ysend_post('http://1.com/track.php', $post_data);
) M: K6 F R* ^/ h8 j) `( dsend_post('http://2.com/track.php', $post_data);
( D% {9 ^. @: @9 F* \) o3 a7 D( m+ Dsend_post('http://3.com/track.php', $post_data); 4 }5 n( P" y3 U
send_post('http://4.com/track.php', $post_data);
: m3 p+ N+ }& v7 q; @?>
! {* d6 P* I# S$ l0 F6 J" G2 ~& N( ^
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈4 ~* @2 k; O& ?1 o
2 C1 k, B, e9 n( j |