Php 当安全模式打开并打开\u basedir设置时发送基本HTTP POST

Php 当安全模式打开并打开\u basedir设置时发送基本HTTP POST,php,curl,Php,Curl,我尝试运行基本的cURL POST(如下),其中服务器配置safe\u模式:ON和open\u basedir选项被设置为。我的托管提供商说这是出于安全目的,我的代码必须在下面的PHP5.2版本中运行(他们的版本是PHP5.4)。到目前为止,当我运行代码时,它总是返回没有任何参数的数组。还有其他方法可以有效地将数据发布到远程服务器吗。谢谢 simplepost.php(在本地主机中) test.php(远程站点中) 问题是您的站点返回HTTP 301响应,正在重定向 http://vouls

我尝试运行基本的cURL POST(如下),其中服务器配置
safe\u模式:ON
open\u basedir选项被设置为
。我的托管提供商说这是出于安全目的,我的代码必须在下面的PHP5.2版本中运行(他们的版本是PHP5.4)。到目前为止,当我运行代码时,它总是返回没有任何参数的数组。还有其他方法可以有效地将数据发布到远程服务器吗。谢谢

simplepost.php(在本地主机中)


test.php(远程站点中)


问题是您的站点返回HTTP 301响应,正在重定向

http://voulsa.qwords.org/test.php

答案是

HTTP/1.1 301 Moved Permanently
Date: Sat, 26 Apr 2014 11:22:12 GMT
Server: Apache
Location: http://www.voulsa.qwords.org/test.php
Content-Length: 245
Content-Type: text/html; charset=iso-8859-1
现在,如果您可以启用CURLOPT_FOLLOWLOCATION设置(该设置将跟随重定向),那么这不会是一个问题,但是由于托管公司的限制,您不能这样做

最简单的修复方法是直接查询www.voulsa.qwords.org,例如将simplepost.php中的URL更改为:-

curl_setopt($ch, CURLOPT_URL,"http://www.voulsa.qwords.org/test.php");
来自新URL(已启用CURLOPT_标头)的响应为:-

除了URL和启用CURLOPT_头和CURLOPT_VERBOSE之外,我没有做任何更改,但适合我的代码是:-

$ch = curl_init();

// basic cURL option
curl_setopt($ch, CURLOPT_URL,"http://www.voulsa.qwords.org/test.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "number=12345&status=SUCCESS&msg=OK");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// receive return value from remote server
$html = curl_exec($ch);
curl_close($ch);
echo($html);

voulsa.qwords.org对我不起作用-DNS似乎没有设置。要了解发生了什么,请在cURL cURL_setopt($ch,CURLOPT_verbose,1)中启用详细模式@joep1978您的意思是在simplepost.php中启用详细模式吗?但是这里没问题^ ^对不起,DNS现在对我有效。我的意思是在simplepost.php中,但我现在发现了问题——请参见下文,我不明白。把url改成什么?这仍然是相同的url。对不起,我键入了。它必须是www.voulsa.qwords.org,而不是voulsa.qwords.org更改url似乎不会改变任何东西。你在你的电脑上试过了吗,它会返回什么吗?是的,当我使用www.voulsa.qwords.org时它对我有效-会在上面添加日志你忘了在url^中添加
www.
。非常感谢,现在可以用了。
HTTP/1.1 301 Moved Permanently
Date: Sat, 26 Apr 2014 11:22:12 GMT
Server: Apache
Location: http://www.voulsa.qwords.org/test.php
Content-Length: 245
Content-Type: text/html; charset=iso-8859-1
curl_setopt($ch, CURLOPT_URL,"http://www.voulsa.qwords.org/test.php");
HTTP/1.1 200 OK
Date: Sat, 26 Apr 2014 10:56:54 GMT
Server: Apache
X-Powered-By: PHP/5.3.19
Transfer-Encoding: chunked
Content-Type: text/html

Array
(
    [number] => 12345
    [status] => SUCCESS
    [msg] => OK
)
$ch = curl_init();

// basic cURL option
curl_setopt($ch, CURLOPT_URL,"http://www.voulsa.qwords.org/test.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "number=12345&status=SUCCESS&msg=OK");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// receive return value from remote server
$html = curl_exec($ch);
curl_close($ch);
echo($html);