有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
1 _ o+ O6 O4 j# L# s4 z- ^
- x5 r* _" F& @& G6 R<?php $subid=$_POST["subid"]; ?>
5 N. U+ j, n2 l1 a2 g8 d2 I1 [- E' B/ {<?php
0 x2 e' a; @. J, Q( w1 ufunction send_post($url, $post_data) {
$ h) p! K/ ~/ t# i! B \; @. o: J' E/ y: x" r: ?% z. ]- r
$postdata = http_build_query($post_data); 5 q0 |3 v% a' J; ?6 B/ t# Y. }
$options = array( # @5 o6 }! W3 ?& e
'http' => array( - X3 d. X' v. w
'method' => 'POST',
9 c, U( O" t( c6 @9 g1 r4 s$ f 'header' => 'Content-type:application/x-www-form-urlencoded', 5 |0 R" d$ C+ [- a: J( z/ U
'content' => $postdata,
3 S& R' x" h2 [5 Z) c 'timeout' => 15 * 60 // 超时时间(单位:s)
9 X5 T# K6 O6 S# b" n5 \ ) . L V! c2 x8 [8 T2 }4 X u
); \$ |2 d+ K5 d; U" Z: |' I
$context = stream_context_create($options); 0 Z( m) s! @6 e" J( n9 K
$result = file_get_contents($url, false, $context); % j9 W' Z9 j r3 L5 j) L
& m8 b. [: }6 _% i
return $result; ! C# q* q w* H9 W
}
7 S( s# U: e* w" `+ v2 _0 n/ X
4 a# U2 m2 ?; t1 S' J" L2 A8 _/ g//使用方法 v6 m( X' M* s$ {$ [+ M1 P9 r
$post_data = array( & r( l& T6 z5 Z h( o, A# W
'subid' => $subid $ n+ ]7 I! E+ N: \$ g
);
6 J$ _; C g; I L1 `send_post('http://1.com/track.php', $post_data);
7 w! R7 u1 y6 t- Q+ B9 ksend_post('http://2.com/track.php', $post_data);
6 G; T; e2 U, U L, bsend_post('http://3.com/track.php', $post_data); ; F7 E$ c# P+ U$ \. v F# k$ b% ?
send_post('http://4.com/track.php', $post_data);
1 _6 L2 L2 v- |8 a?>5 |2 t9 _1 p9 \
1 L) h& J1 }( V比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈* @' n' ?; k5 G
6 z) Q) l% y9 w% V" \' i2 w |