有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?4 w1 f3 F/ s3 Z' W8 Y/ D
4 r) t8 I: F+ l, s<?php $subid=$_POST["subid"]; ?>! l4 x7 o0 w# j
<?php* E5 w% a+ g5 ]2 W( \. h
function send_post($url, $post_data) { 7 r* R& w2 N! U* r& w
4 E; W3 a+ x" l j
$postdata = http_build_query($post_data);
5 {4 I" v2 J6 ~$ n9 o $options = array( " ~ s% a7 C) v. ?
'http' => array(
4 }: A4 w5 R; `% R 'method' => 'POST',
6 m' {0 X9 ~: g+ A+ q2 ]- z+ u 'header' => 'Content-type:application/x-www-form-urlencoded', + L; {# v! o+ k' n6 L0 u
'content' => $postdata,
9 d6 x2 [% D( u7 p3 t3 R( A. { 'timeout' => 15 * 60 // 超时时间(单位:s) / |: f& c6 F% J6 m% O, q8 w& C
)
( B+ I( N0 X, y: y );
2 U. a. I! A9 M $context = stream_context_create($options);
; @$ ]7 t/ G6 `! d $result = file_get_contents($url, false, $context); . G+ J8 U6 ?. J5 U
* N: j/ h9 n _8 D+ d& _: o. R
return $result; & ^# |/ w- b; ~$ Q
}
1 ]" u' b! W+ \/ B5 {* P
( _ M8 v* ^. M/ `0 Y* U//使用方法
" E& y6 j% q* j, ?! ^! C w5 S$post_data = array(
. J$ ~) W M6 C* R* k* k 'subid' => $subid
4 Z) z- ]2 b4 c); 6 X4 X( q1 b) g# N: S
send_post('http://1.com/track.php', $post_data);
; U6 ~" s: b5 zsend_post('http://2.com/track.php', $post_data);
v% r3 E) b1 ~0 K# Dsend_post('http://3.com/track.php', $post_data);
2 p* G6 }; o! {' V# S. J# V- Z+ ysend_post('http://4.com/track.php', $post_data);
# O3 N; F* h( |0 _# V7 `$ Y6 z?>
3 V$ H, q9 }6 a6 H
# i: h, V: N# a6 N: \2 @比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
6 [. w; C1 j8 P1 \% D! i! ~8 P& n# i
|