Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php cURL不在RightNow/Oracle服务云客户门户上工作_Php_Curl_Crm_Rightnow Crm_Oracle Service Cloud - Fatal编程技术网

Php cURL不在RightNow/Oracle服务云客户门户上工作

Php cURL不在RightNow/Oracle服务云客户门户上工作,php,curl,crm,rightnow-crm,oracle-service-cloud,Php,Curl,Crm,Rightnow Crm,Oracle Service Cloud,我有一个小php脚本,用于测试cURL是否安装并运行。这在我们的Oracle服务云沙箱环境(websitename.rightnowdemo.com)中工作,它在页面顶部和下方显示google.com,它打印测试功能的结果(“cURL安装在此服务器上”)。但是,在我们的dev(websitename.custhelp.com)环境中,同样的代码不起作用。它只打印“cURL已安装”消息,仅此而已。在我们的新环境中是否需要设置配置设置?我怎样才能让cURL充分发挥作用 代码: 您在生产(*.cust

我有一个小php脚本,用于测试cURL是否安装并运行。这在我们的Oracle服务云沙箱环境(websitename.rightnowdemo.com)中工作,它在页面顶部和下方显示google.com,它打印测试功能的结果(“cURL安装在此服务器上”)。但是,在我们的dev(websitename.custhelp.com)环境中,同样的代码不起作用。它只打印“cURL已安装”消息,仅此而已。在我们的新环境中是否需要设置配置设置?我怎样才能让cURL充分发挥作用

代码:


您在生产(*.custhelp.com)中使用的OSvC版本是什么?很可能,演示环境和生产环境中的版本有所不同。由于rightnowdemo环境与您的站点不同步,因此最好在真正的测试站点上开发,该站点是您产品的克隆。请在此处包含您的生产OSvC版本,因为您可能需要使用较旧的
dl()
方法将curl加载到脚本中

另一个问题可能是您试图在视图文件中实现load_curl()方法,这通常是一个坏主意。你应该从一个控制器或一个模型上做这件事。您可能会遇到CP3中引入的名称空间问题,在CP3中,名称空间是强制的。在根命名空间而不是CP命名空间中检查
curl\u init

综上所述,如果您收到安装了curl的消息,那么应该正确地加载curl。更有可能的是,google.com出于各种原因拒绝了使用curl的生产服务器的请求。可以使用以下命令检查卷曲错误:

if($errno = curl_errno($ch)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}";
}

为什么还要打一个curl电话来检查curl是否安装了呢?为什么不使用
http://www.google.com
作为URL?我们已经尝试了URL的各种组合,上面代码中的URL只是最后一个在我们的沙箱网站上尝试并运行的URL。在将一些文件从一个环境迁移到下一个环境后,我们注意到了问题。使用在一个沙箱中运行良好的cURL的脚本在dev中不起作用。cURL调用只是这里的某个人为了确保库可用而采取的额外手段。嗨,Scott,感谢您的回复。我们使用的是2015年8月(build 141)版本的OSvC。您是对的,此代码正在视图中使用。这是一个名称空间问题,但仍然显示正在安装cURL的消息的可能性有多大?因为我相信您的第二个建议是正确的,您建议的curl错误检查会产生一个错误“调用未定义的函数curl\u strerror”,因此可能名称空间干扰了正确加载curl。请尝试使用
函数exists(“\curl\u init”)
检查而不是扩展检查。PHP中加载的扩展并不一定意味着函数在应用层公开。尝试删除curl_strerror,看看errno是否产生结果。是的,错误7是“无法连接()到主机或代理”。您是在PS还是PC机上?如果是这样,那么Oracle主机将不得不为您打开防火墙。当你把google.com换成oracle.com时会发生什么?我们联系了oracle并把它理顺了。再次感谢斯科特!
if (!function_exists("\curl_init"))
{
    \load_curl();
}
if($errno = curl_errno($ch)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}";
}