有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?. B2 s) _" X8 r0 a: g
+ \, o9 \, l) }+ Q! d1 ^
<?php $subid=$_POST["subid"]; ?>
' m& R4 z' s; A* y' P" I<?php
( `; M& t* h9 e' w( G# \ [4 \function send_post($url, $post_data) {
3 q6 c" y; s( e3 V6 Y, i* ~
, [, ]" R0 f" d( y) ?5 B $postdata = http_build_query($post_data); 4 c* k7 N2 c) S( ]% _
$options = array(
2 C9 i8 _- z$ n% Z4 V/ w+ ~ 'http' => array( , K Z- F& w2 h
'method' => 'POST', ; }( H* ?- H& D1 m7 J
'header' => 'Content-type:application/x-www-form-urlencoded',
2 ^% n }( b7 l. e1 [- { 'content' => $postdata, # k, {( D. l% }: Y
'timeout' => 15 * 60 // 超时时间(单位:s)
# y* Z" [- i' C, Q+ F b# }* u9 c )
# V% f# t$ w; O1 }" e5 L );
# K! n- W. `. Z6 y; c# ~5 j0 ^6 O3 P& i $context = stream_context_create($options);
3 G. L8 L/ `% ^' L4 j& X $result = file_get_contents($url, false, $context); ! X: Y. Y. I" h, D+ ~3 s) ]; d
! t9 |8 {& B l. T5 t4 O return $result; # j1 O& E7 `" l
}
. _) h3 o7 Z+ a) r5 A, k4 \1 H8 B2 D* w% k: q+ f E- D# {/ A' R5 u) n
//使用方法
2 N* }+ u% E0 _1 J" y& d2 Y$post_data = array(
8 r: `, Q5 Q. _ 'subid' => $subid
( l- @* |8 g. ?6 |); % \* X. ?; f' p
send_post('http://1.com/track.php', $post_data);
" k6 [2 m+ [; R6 Q U/ ^4 \& ksend_post('http://2.com/track.php', $post_data); X( P$ U) X$ Z# A- z" W. D2 f
send_post('http://3.com/track.php', $post_data); 7 s7 a: j7 y0 ~- l
send_post('http://4.com/track.php', $post_data);
$ \0 y; A! C$ f3 d?># X3 o; P8 u: \: a. p
4 S* X0 s% P" I; d- u比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈/ @. r' x7 z* K8 c" s3 Y
' M# B7 O- |1 S, _% d: j |