cURL不在RightNow / Oracle Service Cloud客户门户上工作

时间:2015-11-10 14:34:05

标签: php curl crm rightnow-crm oracle-service-cloud

我有一个小的PHP脚本,我用来测试cURL是否已安装并正常运行。这适用于我们的Oracle Service Cloud沙箱环境(websitename.rightnowdemo.com),它在页面顶部和下方显示google.com,它打印测试功能的结果(" cURL安装在此服务器&#34)。但是,我们的dev(websitename.custhelp.com)环境中的相同代码不起作用。它只打印" cURL已安装"消息就是这样。是否需要在我们的新环境中设置配置设置?我怎样才能使cURL完全正常运作?

代码:

<rn:meta title="cURL Example" template="agent.php" clickstream=""/>

<?php
load_curl();
$curlURL = "www.google.com";
$ch = curl_init($curlURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, 0);
$result = curl_exec($ch);
echo $result;
curl_close($ch);

?>

<html>
<head></head>
<body>
<?php

// Script to test if the CURL extension is installed on this server

// Define function to test
function _is_curl_installed() {
    if  (in_array  ('curl', get_loaded_extensions())) {
        return true;
    }
    else {
        return false;
    }
}

// Ouput text to user based on test
if (_is_curl_installed()) {
  echo "cURL is <span style=\"color:#4fa361;\">installed</span> on this server";
} else {
  echo "cURL is <span style=\"color:#dc4f49\">not installed</span> on this server";
}


?>
</body>
</html>

1 个答案:

答案 0 :(得分:2)

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

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

if (!function_exists("\curl_init"))
{
    \load_curl();
}

尽管如此,如果您收到一条已安装curl的消息,那么它应该正确加载curl。更有可能的是,google.com出于各种原因拒绝使用curl从生产服务器发出的请求。您可以使用以下方法检查卷曲错误:

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