0

我在我的本地 PHP 服务器中尝试了这段代码......一切正常......但是当我将此脚本上传到网络托管服务器时,身份验证不起作用。有人可以解释为什么这个脚本在网络服务器上不起作用?

"Authorization: Basic " . base64_encode("$username:$password")

脚本:

$url = 'http://xxx.xxx.xxx.xxx:9080/apex/api/query?filtername=UNITSUMM&PARM_CONTAINER='.$contrNo.'&operatorId=BIG&complexId=KSA&facilityId=DMM&yardId=RRY';
$context = stream_context_create(array(
    'http' => array(
    'header'  => "Authorization: Basic " . base64_encode("$username:$password")
    )
));

$data = @file_get_contents($url, false, $context);
$convert = explode("\n", $data);
4

1 回答 1

1

如果您可以发布您看到的任何错误消息,或者您可以在错误日志中找到,这将很有帮助。

可能是您的托管服务提供商不允许到端口 9080 的传出连接,或者基于其他一些标准阻止您的连接。

如果您打印出 base64_encode("$username:$password") 的值,您可能能够调试您的脚本 - 也许这些变量之一没有设置为正确的值。

于 2013-09-29T12:28:08.920 回答