有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
7 _2 U+ Y( e0 [6 C/ x! }1 k/ Y/ i5 Y5 l) r, Q5 |9 J
<?php $subid=$_POST["subid"]; ?>$ U: _* @* f% q' \6 M( J
<?php$ p" r: _" J: `6 f+ f/ [
function send_post($url, $post_data) { " W5 |3 `+ v9 B0 w
6 i! D4 @; u8 f1 }# L6 P& `: G# _
$postdata = http_build_query($post_data);
% F* k/ ?' Y* k4 O" c0 E" ] $options = array( / |7 E# r- w) T- X. H& ]" X
'http' => array( 1 i& T7 i4 {; L$ P9 [
'method' => 'POST',
8 N6 N2 f5 P/ m' Y; i; r 'header' => 'Content-type:application/x-www-form-urlencoded',
0 q: J/ J3 Q2 y3 f" J- x/ v 'content' => $postdata,
0 l( x& k1 H; U 'timeout' => 15 * 60 // 超时时间(单位:s) $ U; Z) H1 @! d5 E
) 6 I r8 _6 `" v. e
);
7 u# R( p% L F5 C$ @! w b $context = stream_context_create($options); 3 X, T1 I6 N# R6 B Y7 J
$result = file_get_contents($url, false, $context); . u% S' D8 c. I# i" M R
1 E P: |0 \. C% X! |* G return $result;
7 L* v1 m' [. j}
& T% c9 O1 ~$ u8 B6 R5 R
& g" ~. ]( O& c! X! z! X6 D& z//使用方法
# R' M# K0 P+ J) Q$ P3 A- q. f$post_data = array(
$ b D, R# n# J0 {. {9 u, A 'subid' => $subid
) \# C& h C8 I);
* i8 K9 L& h3 { f' K# m0 Msend_post('http://1.com/track.php', $post_data);
- E# [+ W+ U5 E" p* }( U+ m, vsend_post('http://2.com/track.php', $post_data); " y) B8 I% O4 h0 o5 p" D4 x6 Q
send_post('http://3.com/track.php', $post_data); 1 q# C% l8 L8 W
send_post('http://4.com/track.php', $post_data); 1 m4 k1 F8 y% B% R9 O
?>
. N' A* r3 y; q% y2 Y7 }; m& q: t- Z! _" F+ n- C+ L
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
1 ^/ W2 G& J2 y% H' j, _, h
5 R$ r2 X$ {5 ^/ @# L* [* z |