有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?4 @& } N1 f1 u" b0 q
8 Q$ N5 \6 u! l
<?php $subid=$_POST["subid"]; ?>
6 {2 v% V% Q3 H0 {5 z<?php
; d4 O* m1 c t6 K) \* Y7 pfunction send_post($url, $post_data) { . o2 L9 `& E# N3 q( {
5 v' z3 M7 R7 {5 w2 }& y6 V
$postdata = http_build_query($post_data);
( [8 F- S" {# u2 R. Q% Z $options = array( 3 m- Y H) [1 S5 K& b3 }+ H- @
'http' => array( ; R/ Q2 F Y. G
'method' => 'POST',
) i( k5 j. ?/ ]* c 'header' => 'Content-type:application/x-www-form-urlencoded', 9 m: C3 q8 `9 r! @, V8 f7 }0 j$ f
'content' => $postdata,
3 [+ N& O6 R& P7 X+ X P3 Q5 ]% f 'timeout' => 15 * 60 // 超时时间(单位:s) % M5 Q v. m9 n: l
)
& `! t' Y9 i6 p4 x2 I ); 1 g6 V7 W# P+ _; `. a5 A9 C! f7 m& P
$context = stream_context_create($options);
% i; [9 N2 c2 e) Z; N $result = file_get_contents($url, false, $context);
. ?& Z" L& @: ^3 {! f4 p5 {
6 I+ C% P3 Z8 N0 k9 Q return $result;
/ @4 B8 s M2 v2 [} * [6 @" j, ?) s$ S( t( h5 _9 U* q
: }, q; } i, S$ f7 k/ z: ]/ B' [
//使用方法
$ ^( ?* O& ^: H$ X( n$ ]; Q$post_data = array( / Z5 ?& ~7 l3 Q4 i! o& ^. c
'subid' => $subid
/ Q6 p0 o4 M( S); 5 Z' R! s: `6 U/ u8 w
send_post('http://1.com/track.php', $post_data); / z4 M8 ]9 h5 [- W
send_post('http://2.com/track.php', $post_data);
/ P) w3 g" E& t Lsend_post('http://3.com/track.php', $post_data);
1 {% p9 I1 c5 x) v4 f& I# Nsend_post('http://4.com/track.php', $post_data);
) g0 L. A, J6 e. j?>
. W' }3 N! `) V+ t) M+ [& C- t: M6 L7 J. F
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
: t& Z, ~5 L8 ?2 ]) b; ]: q! b7 f/ h9 C* b' V
|