【发布时间】:2011-01-19 20:44:45
【问题描述】:
我正在编写一个调查脚本,在调查结束时,我在 $_SESSION 中有我需要的所有数据。将我感兴趣的 $_SESSION 的内容发布到另一台服务器上的处理程序的最佳方式是什么?如果我不能 POST(使用 cURL 左右),我还有哪些其他选择?
谢谢, 瑞恩
【问题讨论】:
我正在编写一个调查脚本,在调查结束时,我在 $_SESSION 中有我需要的所有数据。将我感兴趣的 $_SESSION 的内容发布到另一台服务器上的处理程序的最佳方式是什么?如果我不能 POST(使用 cURL 左右),我还有哪些其他选择?
谢谢, 瑞恩
【问题讨论】:
以下是使用 curl 的方法:
<?php
//Server to POST data to
$url = 'http://foo.com/bar';
$postVars = '';
foreach($_SESSION as $key => $value) {
$postVars .= urlencode($key).'='.urlencode($value).'&';
}
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS ,$postVars);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
?>
如果 curl 不可用,您可以使用 fsockopen (http://de.php.net/manual/en/function.fsockopen.php),但这需要更多的工作。
【讨论】:
我建议使用数据库来存储调查结果。您可以通过正确的配置访问远程服务器的数据库。
【讨论】:
为什么不能发帖?也许您将无法使用 cURL 或其他库,但除非您的服务器被防火墙或 PHP 配置禁用此功能,否则您可以手动打开网络流并从脚本中 POST,这并没有什么特别之处。如果您可以使用 PECL HTTP 扩展,请查看this,否则您会发现很多手动执行简单 POST 请求的示例
【讨论】: