有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?* ]1 |8 g4 G: S, y
+ h2 |7 X4 P0 e( W- w' A0 C3 V<?php $subid=$_POST["subid"]; ?>
2 o S1 ~' H6 x8 A- k4 I<?php
3 f8 S, k& ]/ K) zfunction send_post($url, $post_data) {
k0 e: B9 E9 x& i' e; J, y, ]
O9 ~* f3 b3 n $postdata = http_build_query($post_data); 1 F: ]& Y$ w" L7 U
$options = array(
6 G) g5 \5 B4 G. ]6 | 'http' => array(
1 c! D d: m. s0 P% U$ v 'method' => 'POST', + a& z5 h. _, i# l8 ^! i! g0 f% s
'header' => 'Content-type:application/x-www-form-urlencoded',
) H& z f Q* M# c) c/ j 'content' => $postdata,
9 I' v+ E2 l; \1 l* D# g9 g 'timeout' => 15 * 60 // 超时时间(单位:s)
: }0 J1 {/ @5 f ) # x0 {# C$ P" S
);
3 F2 g% N7 K1 Y' q9 h6 ^, @ $context = stream_context_create($options); 0 a5 \6 W9 s! J; f0 Y4 w
$result = file_get_contents($url, false, $context); ( ~5 X4 d4 [* j! r+ r/ O
- Y( s( ^" F# J4 G8 j return $result;
, P' u; L. A5 l( x( z3 m} 1 P* n. P% W5 n' t; S
7 E% J0 @2 }/ C6 `; o5 P- D* @) ?//使用方法
0 o+ H% s, D( T4 q$post_data = array( ) X K# m+ `1 f
'subid' => $subid
5 Z) j. I' V ]3 I2 D. G); : `% ^- h9 C2 }- r9 i1 G0 s
send_post('http://1.com/track.php', $post_data); ' C4 w( V6 k4 \: c
send_post('http://2.com/track.php', $post_data);
* W0 ]* x& y( o- dsend_post('http://3.com/track.php', $post_data);
6 W. J" v8 e7 d- l# u/ l9 rsend_post('http://4.com/track.php', $post_data);
0 U0 W/ k( V& x?>
: F3 I6 I- }! h2 I, s! ]3 m3 J5 `3 p B" \, z/ u
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
7 c/ e% Q) d, z; o( v9 h9 M5 T+ P% W+ k" @2 V
|