有些联盟只允许填入一个tracker的post back url,这对于同时使用好几个tracker的话实在是不方便,因此我想使用中转的办法,一个中转服务器收到联盟的postback url,然后再把track.php?subid=XXXX(以imobitrax为例)转发到其它几个tracker上,自己捣鼓了一下没成功,有人帮忙看看问题在哪吗?
, w Z, a( E% u1 `- H6 o% q$ s
* e9 N3 L v+ p* m0 S- h<?php $subid=$_POST["subid"]; ?>8 ]2 [* x4 t! E4 S0 J7 w
<?php
. k3 Z7 u! N1 c, @8 Mfunction send_post($url, $post_data) {
0 g) R5 u5 y% X8 Z7 s3 `2 A P$ P( t( x. W0 E8 T
$postdata = http_build_query($post_data);
. G+ t2 h7 G' Z: _; a $options = array( 9 ~( o9 n/ h7 U! Q
'http' => array(
$ O5 {, t1 @8 ^1 r5 ~ 'method' => 'POST', 6 m1 B; X6 I% v: V( d7 B7 l
'header' => 'Content-type:application/x-www-form-urlencoded',
' E. ]$ U# O# Q1 L3 j 'content' => $postdata, # b* N! s( g# t- _; w+ s- N
'timeout' => 15 * 60 // 超时时间(单位:s)
B8 z1 H# m ?$ v ) % V2 R0 k9 Z# N9 }
);
0 W, q, z; P6 Y7 Y4 I5 P $context = stream_context_create($options);
3 _7 x# b0 g! G0 d. D; I; N" h$ Z8 T $result = file_get_contents($url, false, $context);
( C& w1 H$ [; |; C0 @$ B7 ^0 r/ r: o7 D$ p+ u
return $result;
' u- z4 l1 D: K# L+ I8 x7 T} # A+ ^$ D# ?$ k, z! r) k! i* M9 H
$ V! | `7 k y" o5 j; T. W: U0 H$ `//使用方法 " ~2 H) Y3 z7 R+ x- S2 X
$post_data = array( . A# E! b: K# U! s( I. l) o5 c6 Y9 @. ]; X
'subid' => $subid - L x8 |+ H7 d8 p' R9 T
); ( ^) X9 h) N& {" U7 G
send_post('http://1.com/track.php', $post_data);
- q( q( y0 e3 {5 b6 W% Ysend_post('http://2.com/track.php', $post_data); 2 F% O* J& X# K) o4 g. r/ v+ x! O. V
send_post('http://3.com/track.php', $post_data); 3 \1 [$ \) Z5 j
send_post('http://4.com/track.php', $post_data);
) }. X+ r( @+ L e, k" G& r?>0 n+ M' `/ l7 B, L* W+ C" j7 K
- W) y9 B+ S- M8 [4 o
比如以上这段存为,trackredirect.php ,联盟那里call back url 填入 xxx.com/trackredirect.php?subid={subid},但是我测试了,不工作呢,好头痛,求专业人士帮忙看看哈
$ r d) d3 s. Y7 m: D% x+ [, O2 l
1 i% w5 j% s) h |