有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
+ `) k) T: u# S/ O; V
4 l6 r6 ], \+ w. F# c: G<?php $subid=$_POST["subid"]; ?>+ b8 Q" f( s) `: d0 R1 R4 n# [
<?php
; [+ e5 Q6 j1 cfunction send_post($url, $post_data) {
4 Q% Y8 }9 e( l, g/ \/ @ G) c" P) x, ^1 R Q) m' k" l
$postdata = http_build_query($post_data);
' M5 b7 Y) V$ K& J) ^ $options = array(
6 L* H7 P5 I) n4 b$ o& Z 'http' => array( / |' B' h- y( r
'method' => 'POST',
& D/ |. p4 ?3 u: o" @1 X3 _ 'header' => 'Content-type:application/x-www-form-urlencoded',
& U. j$ i) X' E' X. z 'content' => $postdata, q9 t$ Q: x* x4 o4 C
'timeout' => 15 * 60 // 超时时间(单位:s) d- |( m# u( `" e
)
4 I4 l8 O1 j, ^ ); ) z$ p0 ^; l8 ~- k: \
$context = stream_context_create($options); ; N3 O2 i3 m' d# z
$result = file_get_contents($url, false, $context); ; o% P- B* b! I/ \8 g( `& `
* h7 n X) n# ^ g' w/ E
return $result;
2 V. i6 g, ]# m* }4 Y6 f}
) h5 A6 \+ ?8 ? V. c3 {. c# ~& a; T+ J" c7 S* x4 U( t
//使用方法
$ W% B3 B: O3 A0 X8 x/ a3 S' X2 j$post_data = array(
# G1 P; V o1 J+ i5 h5 \ 'subid' => $subid - C* b) S8 C" b/ F2 j5 s2 H
); 2 p0 }# ^$ S) c2 T2 Z
send_post('http://1.com/track.php', $post_data); + {3 B4 b. q q( T$ d3 b% E; C, g8 L
send_post('http://2.com/track.php', $post_data); 7 W. B2 L s8 ?& P/ I" t
send_post('http://3.com/track.php', $post_data);
8 A0 r# r' W- m) Zsend_post('http://4.com/track.php', $post_data); 0 U+ Y1 z& K% L+ c4 n
?>2 @, H, G! f$ @; d
! F" t- I4 T8 |, U比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈2 i9 @8 R, n4 |( g0 _4 N* Z$ d7 w
, ^1 K* n# X+ I% T4 |
|