将变量从php传递给php

时间:2012-01-18 11:55:35

标签: php variables

我想知道如何将php变量从一台服务器发送到另一台服务器上的另一个php脚本?

我在2个不同的服务器上有2个php脚本,其中一个必须将vars发送给另一个。 我一直在寻找运气不佳。 非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

您可以使用curl并将变量作为GET值发送。

这样的事情:

$data = "data you want to send";
$data = urlencode($data);
$url = "http://example.com?data=" . $data;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($ch);
curl_close($ch);

我们假设$data = "foobar"

从PHP脚本执行上述操作与从浏览器访问http://example.com?data=foobar的人员相同。

您显然可以使用url将其发送到任何脚本:

http://example.com/yourscript.php?data=foobar

yourscript.php,您可以在$_GET['data']获取数据,进行一些输入验证以确保从您的脚本发送,而不是通过浏览器从其他人发送(稍后会详细介绍),然后继续你的脚本。

要使其正常工作,yourscript.php必须驻留在youtr webhost的public html文件夹中,以便其他脚本可以访问它。

安全

无论您是通过GET还是POST传递数据,其他人都可以向您的脚本发送(可能是恶意的)数据。因此,当yourscript.php接收数据时,需要有一种方法来确保您是脚本的发送者。实现这一目标的一个简单方法是:决定只有你知道的任意数字,比如12。

将数字与您传递的数据连接起来并计算md5哈希并将其作为另一个get变量发送。

在这种情况下,您需要计算md5("12foobar")

,网址为:http://example.com/yourscript.php?data=foobar&auth=hash

yourscript.php收到数据时,它会计算相同的哈希值(使用数字12,其他人都不知道),如果计算的哈希值与$_GET['auth']匹配,则可以确定已发送数据。

如果有人试图模仿你并发送数据,他们就不会知道你如何计算哈希值,因此会发送错误的哈希值。

<强> PS

确保坚如磐石的安全性的另一种方法是在$_SERVER['REMOTE_ADDR']检查用户代理的IP地址。如果它是您的其他脚本所在的webhost的IP地址,那么您知道它就是您。 我还没有想过这个方法,所以可能存在一些漏洞。

答案 1 :(得分:1)

您可以使用GET查询字符串(second_php?var=value)或使用POST方法的curl连接,然后通过POST发送数据。

答案 2 :(得分:0)

您应该使用SOAP。它用于远程函数调用,它只会带来比仅调用http请求更多的开销,但它也可以保证远程函数将被执行(或将导致错误),它将直接返回您需要的任何数据类型,我相信这是这项技术的开发目的是:)