CURL错误401-PHP版本是否导致此问题?

CURL错误401-PHP版本是否导致此问题?,php,soap,curl,Php,Soap,Curl,我有以下代码: $body = "<SOAP-ENV:Envelope>".$data."</SOAP-ENV:Envelope>"; $ch = curl_init($FD_Add); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml")); curl_setopt($ch, CURLOPT_HTTPAUTH, CUR

我有以下代码:

$body = "<SOAP-ENV:Envelope>".$data."</SOAP-ENV:Envelope>";
$ch = curl_init($FD_Add);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "WS******._.1:********");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSLCERT, DIR_ROOT."ABCDEFG/Certs/WS******._.1.pem");
curl_setopt($ch, CURLOPT_SSLKEY, DIR_ROOT."ABCDEFG/Certs/WS******._.1.key");
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, "ckp_***********");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
if($test_env){echo 'The result of your request is:<RESULT>'.$result.'</RESULT>br/>' ;}
curl_close($ch);
$body=”“.$data.”;
$ch=curl\u init($FD\u Add);
卷曲设置($ch,卷曲设置桩,1);
curl_setopt($ch,CURLOPT_HTTPHEADER,数组(“内容类型:text/xml”);
curl_setopt($ch,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);
curl_setopt($ch,CURLOPT_USERPWD,“WS*********.[u.1:********”);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_SSLCERT,DIR_ROOT.“ABCDEFG/Certs/WS******.\u.1.pem”);
curl_setopt($ch,CURLOPT_SSLKEY,DIR_ROOT.“ABCDEFG/Certs/WS******.\u.1.key”);
curl_setopt($ch,CURLOPT_SSLKEYPASSWD,“ckp**********”);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$result=curl\u exec($ch);
如果($test_env){echo'您请求的结果是:'.$result.br/>';}
卷曲关闭($ch);
响应为错误401 HTTP需要身份验证。我已验证用户ID和密码是否正确。我首先想知道的是,如果PHP版本在运行PHP~v时不支持Cullopt_AUTH,是否会导致此错误。3.4据我所知,不支持此选项


有人知道这是否是问题所在吗?

您可以通过自己发布基本的auth头来伪造它:

$auth_header = "Authorization: Basic " . base64_encode("$user:$pass");
curl_setopt($ch, CURLOPT_HTTP_HEADER, $auth_header);
但这仅在Curl 7.10.3及更高版本中可用。您的石器时代PHP很可能使用同样的石器时代卷曲


真的。。。PHP3.4相当于开着从Flintstones买来的车四处兜风。你应该升级到更现代的东西,比如T型车。。。那些无马马车给人留下了深刻的印象。

你可以通过自己发布基本的auth标题来伪造它:

$auth_header = "Authorization: Basic " . base64_encode("$user:$pass");
curl_setopt($ch, CURLOPT_HTTP_HEADER, $auth_header);
但这仅在Curl 7.10.3及更高版本中可用。您的石器时代PHP很可能使用同样的石器时代卷曲


真的。。。PHP3.4相当于开着从Flintstones买来的车四处兜风。你应该升级到更现代的东西,比如T型车。。。那些无马马车给人留下了深刻的印象。

我想如果我有能力建造一台时间机器,我就不会问这个问题了。PHP从未更新过。你能再检查一下PHP版本号吗?我不认为PHP3曾经超越过v3.0.18,那是近10年前的事了!哦,如果您使用的是PHP4.3,请升级,4.3.0已经9年了!如果你使用的是PHP3.x,那么你的安装是非常不安全的。我不完全确定这个版本,我只知道它是3.x。我已经要求它升级,但没有理由不升级。所以,是的,我绝对不喜欢使用古老的PHP,但现在它是一种必要的。我想如果我能够构建一台时间机器,我就不会问这个问题了。PHP从未更新过。你能再检查一下PHP版本号吗?我不认为PHP3曾经超越过v3.0.18,那是近10年前的事了!哦,如果您使用的是PHP4.3,请升级,4.3.0已经9年了!如果你使用的是PHP3.x,那么你的安装是非常不安全的。我不完全确定这个版本,我只知道它是3.x。我已经要求它升级,但没有理由不升级。因此,是的,我绝对不喜欢使用古老的PHP,但现在它是一种必要的工具。谢谢。很高兴我不是唯一一个。至少你回答了这个问题。另外,服务器不是我的,我没有升级的权限,我只是为别人建立了一个网站,我自己从来没有使用过这么旧的PHP版本。谢谢。很高兴我不是唯一一个。至少你回答了这个问题。另外,服务器不是我的,我没有升级的权限,我只是为别人建立了一个网站,我自己从来没有使用过这么旧的PHP版本。