有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?4 m) A8 T! @/ @# c
9 z, i' l# @ Q/ P; ]% F
<?php $subid=$_POST["subid"]; ?>
2 i S( q3 Q/ M3 N+ V# _- Y<?php! n5 P+ @: Y/ m, N3 D1 W% x3 |
function send_post($url, $post_data) {
% G) w- N. v- q: G+ L2 H; E8 k6 _$ ?
$postdata = http_build_query($post_data); 0 {& ?! a8 @6 g/ K* A( h, P2 A
$options = array(
" u, L0 E: c; J" l0 ]8 ] 'http' => array(
7 l$ r% p! J! I; `1 Q8 T: j U/ z* Q 'method' => 'POST',
6 u8 h4 u( @* m. i7 @- \* Y 'header' => 'Content-type:application/x-www-form-urlencoded',
1 a, Q: ?- W- s( c 'content' => $postdata,
- C- j4 c7 n$ Q' \ 'timeout' => 15 * 60 // 超时时间(单位:s) 8 | z- D5 o$ x7 b/ g% g- [9 D
) 7 D. H* _) o) I* o0 r
);
) g7 ^- L3 x b4 \ $context = stream_context_create($options); & i% Z' O1 ]7 V3 [5 [: E' ~
$result = file_get_contents($url, false, $context); * z1 u7 ^- R% X# L# O9 O
9 q1 h/ w1 K$ T- ] return $result; # x( r5 @) j, v3 H
} $ {9 W) I1 V5 S: h5 e3 v8 M3 |
( I; h6 J6 b1 P$ a# x( y//使用方法
& w4 \) {0 H0 t8 U' Z& z$post_data = array(
Q8 i( H* X h' R 'subid' => $subid 9 z/ D5 O& r% `* b9 X/ M6 D
);
( o8 g# C( b6 l; r: r& ?send_post('http://1.com/track.php', $post_data);
1 `' j$ q4 `0 Bsend_post('http://2.com/track.php', $post_data);
' H0 m# ~/ Y, o, C; Z; }5 W9 csend_post('http://3.com/track.php', $post_data);
+ Q3 a1 K8 K( K5 T, q; Csend_post('http://4.com/track.php', $post_data);
$ i% g& M2 ]' a9 i8 U" c?>- l( c2 q) G6 ?. t9 {& I
* ?: f1 x& ]' [5 c* b
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
" e: A4 j+ ?7 @2 t- T# Y0 l5 y" `" @% U' s5 ?* }+ Z
|