有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
$ A1 P* g% n* T% J1 i
7 z+ @, K- N6 h _2 k( T<?php $subid=$_POST["subid"]; ?>
6 Y, `/ @* V/ H9 i) L<?php
8 J! e* K: k7 j C* nfunction send_post($url, $post_data) { " M' i) a' P& G
4 `& D8 m! ~( L- w6 u
$postdata = http_build_query($post_data);
7 I% p$ M5 \9 P- k8 ^0 | $options = array(
& m; U, D( F% c$ L9 @4 R 'http' => array( 7 B( }, M) i% t- N
'method' => 'POST', ( ^+ a* w+ T4 L
'header' => 'Content-type:application/x-www-form-urlencoded',
. Z4 c3 F1 P- A o% ^: H 'content' => $postdata, 3 g3 V- _2 Q" H9 P, c0 M6 I' v. M
'timeout' => 15 * 60 // 超时时间(单位:s)
! Y1 j8 k+ E8 }0 m. I) o )
2 o: x! F9 `; j& W# E+ o2 e- M ); 2 x4 H7 _8 c- r) s* ~) d0 X
$context = stream_context_create($options);
" H% L, v$ O, S5 o2 ?7 t $result = file_get_contents($url, false, $context); ! I" L5 K1 y+ O& O& d' M/ v5 \4 N/ w
4 g, w) Y/ {( _% g& `3 i
return $result; 2 F ~6 D, Q. z m* T2 c* ]* R" b
}
1 ^1 y9 Y5 x d; [$ X* a4 O9 _: U- ?* a. `. P6 L
//使用方法
( J# J( z: l- J8 q0 t& d: H% ]$post_data = array(
2 o. W, r4 \0 `2 v0 h Q6 H( k 'subid' => $subid , r3 {6 t; z8 p+ [5 K
); / r$ v r0 R- E3 M+ o) G) G
send_post('http://1.com/track.php', $post_data); 5 Y: v2 H0 b2 e0 j# n. J
send_post('http://2.com/track.php', $post_data);
4 `$ @$ n6 o* m7 Q2 @, t b$ Osend_post('http://3.com/track.php', $post_data); 0 R5 F5 D: }- _
send_post('http://4.com/track.php', $post_data);
1 m, f6 m4 Z- B- _, G- d?>6 c' z8 a/ }) H! M% r
+ n& p4 \, _; I+ ]* ~- a2 X
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈. o2 L) n! K8 `# t3 B' `" ~$ e* L8 ~6 X1 L* ?
5 u, H* I' W. x/ s
|