如何解决问题 - 使用CURL将数据发布到脚本

时间:2011-11-16 16:29:17

标签: php post curl

我需要将一些数据发布到我服务器上的脚本中。我使用curl和详细的错误报告。有没有人知道为什么这不起作用?

谢谢,

发布脚本

function makePost($postvars, $count) {

$url = 'http://servername.something.org/php/callback-f.php';

$ch = curl_init();

curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
curl_setopt($ch, CURLOPT_VERBOSE, 1);

$result = curl_exec($ch);
curl_close($ch);
}

发布的脚本包含以下行:

<?php log_error("success",ERROR_LOG_TO_STDERR); ?>

我的帖子中有一个字符串,如下所示:

surname=smth&address1=No+Value&this=that

我得到的结果是:

Connected to myserver.org port 80
> POST /php/callback-f.php HTTP/1.1
Host: myserver.org
Pragma: no-cache
Accept: */*
Content-Length: 1510
Content-Type: application/x-www-form-urlencoded

< HTTP/1.1 301 Moved Permanently
< Location: https://myserver/php/callback-f.php
< Content-Length: 0
< Date: Wed, 16 Nov 2011 16:21:23 GMT
< Server: lighttpd/1.4.28
* Connection #0 to host left intact
* Closing connection #0

2 个答案:

答案 0 :(得分:1)

你能尝试使用:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

答案 1 :(得分:1)

您收到301错误。您尝试的网址为http://servername.something.org,301表示该网页位于https://myserver(请注意https协议)。

在没有用户同意的情况下,301错误也不应该在POST上重定向。