有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
4 R% A) x" d* h! m( b" Z2 M8 u) H5 |
<?php $subid=$_POST["subid"]; ?>9 Z1 O7 V6 \* O. b0 d3 y% n) w
<?php
+ {. ^# C' @& F% K# E8 V- gfunction send_post($url, $post_data) {
. p ^% H$ R+ J% g7 E, A8 F& j8 B1 s0 D
$postdata = http_build_query($post_data); / b7 {3 L# ~9 w: n- |1 `4 `; f6 Z
$options = array(
" L0 |# H& p( z; Z0 h, W 'http' => array(
& ]* i: ~; F* S T; K6 T9 M, Q3 O, {+ M 'method' => 'POST', , n' @' r1 |2 L9 ~! {
'header' => 'Content-type:application/x-www-form-urlencoded',
* Z6 K' Y) p, v* x# V& j' V/ d! k 'content' => $postdata, 7 K- ?( S# D) \* y; @3 r
'timeout' => 15 * 60 // 超时时间(单位:s)
/ y7 C5 _: f: T4 b3 m ) # o- r' F- Y; O9 h3 Y
);
$ ?9 q i3 K9 {6 D+ b $context = stream_context_create($options); 2 h; o8 m T0 z
$result = file_get_contents($url, false, $context); ' [9 Y- K: k: q r2 f
A) b8 o) m# Z1 n
return $result; 1 {. J2 p( B: N6 `! T
} $ R, d4 f L1 B2 n+ Q. V* @
6 m) V; E9 Y. t+ e
//使用方法 . E, \) `) S% P
$post_data = array(
# j3 g# S! V( V. @% H. R' `& j4 b 'subid' => $subid
7 W0 ?* B& F( i4 S* L3 C( m);
8 @7 I6 Y5 @1 Z. o. X; asend_post('http://1.com/track.php', $post_data);
3 i } K; H) Q6 c( E/ xsend_post('http://2.com/track.php', $post_data);
2 K) b2 R4 ?1 ?send_post('http://3.com/track.php', $post_data);
{) c" h. ?! ~" S# O: ~, g% |2 ]send_post('http://4.com/track.php', $post_data); 6 ~3 X5 D9 c3 k n6 i
?>' J0 V4 u4 ^% R% w- x
$ d$ G2 O# c* U$ K8 P
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
/ h) x! N& Y1 v7 J( ]
7 K E4 a( T. }4 L7 J6 x5 g' ~ |