有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
+ P2 l O+ @: ~) M/ f( _# f
+ ~! f# L6 j* w" y. X<?php $subid=$_POST["subid"]; ?>* ^& _) o, a. j+ [9 b
<?php
. H- r. y( c- l/ C# v3 M3 j, E3 ?function send_post($url, $post_data) { 8 L+ h. a4 h& o- f: o- k8 f
, O: {/ L8 F) r; }, z3 \ $postdata = http_build_query($post_data); & r+ [/ I# J2 |, ]( E5 U/ f7 c6 A
$options = array(
! Q; I! {. T; L( V2 E P* ^/ L/ ~! W 'http' => array(
& f+ \- \5 Z5 G! r4 Z 'method' => 'POST',
4 e3 E5 Y# |6 r" i 'header' => 'Content-type:application/x-www-form-urlencoded',
: M: L0 X( }$ {% x+ M! w n 'content' => $postdata,
6 l2 H( j- c* u7 h# @ 'timeout' => 15 * 60 // 超时时间(单位:s)
& w$ n* J3 t7 @. S" n I )
& h5 `! N6 h. L5 D! Q0 m5 {- d6 m3 ] ); , l2 @$ v* q3 w6 o* V% K+ v
$context = stream_context_create($options); 5 \& H/ b5 x2 U, D8 y
$result = file_get_contents($url, false, $context); ' L$ ?( m* l# s! N& u& x
$ P1 j' N( u! Y! ]
return $result; 0 T* R0 B& r( u: a4 f4 o
}
6 f- s5 Z4 e8 R0 ~2 k6 Q8 ^1 g* a1 ?$ ~* B: f7 A% b" ^
//使用方法 " r) n' q, y* {/ l4 o
$post_data = array( $ `" n+ A7 h" a
'subid' => $subid
/ y0 k$ K3 U& C% e6 o& @7 ?6 C0 W2 b);
" F9 }4 _9 S4 b; ]0 m; f' V+ Ksend_post('http://1.com/track.php', $post_data); 7 u2 u) T( H) s! C
send_post('http://2.com/track.php', $post_data); - m, E: P3 j% t# _9 q, @3 g" J
send_post('http://3.com/track.php', $post_data); 8 m t/ H9 b5 k7 F8 k
send_post('http://4.com/track.php', $post_data);
* x$ @' J) L; |/ b) v?>
& Y7 B4 b6 t- N; Q+ {2 R( j
2 } S7 Z) i; w比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈! v$ `4 Y9 v8 Q
2 e7 p7 u/ v! K |