有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
" ` i& j& {! N5 D
3 }. N6 x3 G+ y7 a& ~1 ]<?php $subid=$_POST["subid"]; ?>' [( h' L r9 d& i$ v
<?php
- o" _( _- ?( }( L: Mfunction send_post($url, $post_data) { " U) }% s& k! f: I0 d
- C1 ~/ o# G$ T' \0 L
$postdata = http_build_query($post_data); - M5 R/ |# u$ ?3 P& t- {
$options = array(
6 B# \- g3 e3 H1 R+ _ 'http' => array( 8 E# @+ Y( J9 f4 U) h1 }5 V A' u
'method' => 'POST',
9 S0 `1 d& n. k0 P! e/ Q8 k 'header' => 'Content-type:application/x-www-form-urlencoded', 3 B8 O" d6 y* v5 Q, o' c
'content' => $postdata,
& H' R8 S' b0 d5 F 'timeout' => 15 * 60 // 超时时间(单位:s) 0 Q9 n! F6 W; K# r+ n
)
) C {+ [. H; T( ]# Z+ f. ~0 J );
" K( P8 s' D2 h' U/ t4 p9 p $context = stream_context_create($options); + _7 M+ ~- R, o. I& M# Z1 N
$result = file_get_contents($url, false, $context);
! q0 B6 Q( z4 I% {% O7 j* [
! i; J/ ^% w/ o3 P' I- O return $result;
% p. t7 U; F' y4 N} & z1 b5 q3 Y( V& z* t Q/ q
* c: `& q" X1 R1 C3 R4 v4 ]$ ?
//使用方法
, G/ l) m. A' Y& f$post_data = array( 8 x, n. B |0 V( I( k n8 O
'subid' => $subid
/ T6 u0 U5 r0 W);
+ G. a) P" l+ m. G. F% Msend_post('http://1.com/track.php', $post_data);
9 r, d1 A; E- \. p1 P/ {3 i$ k3 isend_post('http://2.com/track.php', $post_data);
1 E0 k& j* C6 J: ^send_post('http://3.com/track.php', $post_data); " c- D5 Q" H! Y) j- S) b6 G9 [1 s
send_post('http://4.com/track.php', $post_data); ( s5 S: [, |9 s! R3 m+ ]+ y
?>+ o( A' a: z- G5 ~
5 {) j7 s* R' G; }比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈" J7 V* w C# x4 O3 r) e
% t' B& [4 B: `$ D# [1 H' i |