0

我希望能够将变量发送到另一个网站,而无需实际使用 php 访问该网站。

我正在建立一个将运输仓库外包的电子商务网站。在该人检查他们的产品后,我想使用 $_GET['vars'] 将一些变量发送到托运人的网站。这是一个完全不同的 URL。问题是,我不希望该人实际访问托运人的网页。我只是想在那边 ping 那个信息。

是否可以通过 URL 将变量发送到另一个站点而不离开您的站点?

4

4 回答 4

1

您应该将所有相关的订单信息存储在数据库中,然后使用 cron 触发将处理未处理的脚本,这样可以在向您的外包站点发出任何请求之前对订单进行系统检查。不要依赖您的用户浏览器在订单过程中触发 API 调用或相信他们不会在提交前三次单击或注入值。

我建议使用 curl 来完成您的实际请求,因为它更快。像这样简单的东西:

<?php 
function curl_do_api($url){
    if (!function_exists('curl_init')){
        die('Sorry cURL is not installed!');
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}
?>
于 2012-05-28T03:46:45.780 回答
1

是的你可以。最简单的方法:

 $contents = file_get_contents("http://example.com/some/page.php?var=abcd");

有关更多高级功能,请参阅Curl

于 2012-05-28T03:09:07.477 回答
0

两者都是正确的,您应该根据您正在寻找的安全性做出选择。

cURL 会更安全,如果你不想在查询字符串中传递一些参数,你应该使用它。同时当您使用 file_get_cotents("URL?data=value"); 传递数据时 您将有大约 2k 的数据被传递限制。

另一方面,如果您将 cURL 与 https 一起使用,它会更加安全。使用 cURL,您还可以发布文件并模拟表单发布。

于 2012-05-28T04:00:40.740 回答
0

实际上有一个更简单的方法来解决这个问题...使用ajax
包括 jquery 标头首先
参考这里
http://api.jquery.com/jQuery.ajax/

于 2012-05-28T04:14:47.190 回答