通过头方法PHP发送数据


Sending data through header method PHP

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

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

但最近,我有一个名为iDevAffiliate的集成系统,该系统跟踪附属公司的付款,为了将其全额itegrate,当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);

但它们似乎都有效。然而,如果我把这个链接放在浏览器中,用实际的附属机构id替换$aff_id,它会正确地设置所有内容,那么使用头mthod不是正确的吗?否则我怎么能这样做?

我不确定,如果问题是用正确的参数调用脚本,你可以使用带有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上有响应

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

   $abc = 'abc' . $p;

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

   $abc = "abc$p";

并且将计算$p。

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

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

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

看看PHP 中的CURL

或流函数