通过标头方法PHP发送数据

时间:2012-04-03 12:32:54

标签: php

在我看来,这似乎是一个奇怪的场景,也许不是那么奇怪,但我以前从来没有这么做过。

无论如何,我有一个使用Moneybookers(或Skrill)付款的支付系统,这个系统将数据库发送到我服务器上的文件,我检查数据,然后相应地更新我的数据库上的记录。

但最近我有一个名为iDevAffiliate的集成系统,该系统跟踪联盟付款并为了完全迭代,当Moneybooker发送数据并且我们的记录更新时,我们需要向iDevAffiliate系统发出信号说付款已经制作并附属于联盟记录。

现在这样做我认为这很简单:

header("location: http://www.mysite.com/affiliate/sale.php?profile=72198&idev_saleamt=2500&affiliate_id=$aff_id");

但我不确定我是否必须这样做:

header("location: http://www.mysite.com/affiliate/sale.php?profile=72198&idev_saleamt=2500&affiliate_id=" . $aff_id);

但他们似乎都有效。但是,如果我将该链接添加到我的浏览器中,将$ aff_id替换为实际的关联公司ID,它会正确设置所有内容,标题方法是不是正确使用的东西?我怎么能这样做?

4 个答案:

答案 0 :(得分:2)

我不确定,如果问题是用正确的参数调用脚本,你可以使用带有post数据的cURL,例如

    $ch     = curl_init();      
    curl_setopt($ch, CURLOPT_URL,         "http://www.mysite.com/affiliate/sale.php");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "profile=72198&idev_saleamt=2500&affiliate_id=$aff_id");
    $ret = curl_exec($ch);
    curl_close($ch);        

在$ ret变量上你有关于sale.php的html的回复

答案 1 :(得分:1)

在PHP中,如果使用单引号,则需要连接变量,例如

   $abc = 'abc' . $p;

如果您使用双引号,则可以将变量嵌入字符串

   $abc = "abc$p";

和$ p将被推测。

示例:$p = 'd'; echo 'abc$p'将打印出abc $ p,而echo "abc$p"将打印出abcd

答案 2 :(得分:1)

你给出的两个例子是等价的。如果您遇到问题,我建议验证$aff_id的内容。

此外,当使用PHP的header函数进行重定向时,请确保您还die以防止进一步执行脚本。 header函数本身不会导致重定向。它只是向您的浏览器发送一个标题,然后解释它并重定向。因此,PHP脚本将继续执行,直到浏览器解释标头并断开与PHP脚本的连接。

答案 3 :(得分:1)

查看PHP中的CURL

stream函数