如果此请求位于错误的区域,我很抱歉。
我正在学习使用PHP和CPanel API。我有以下代码并且它给了我一个堆栈错误,因为我错过了看似简单的东西
$domain = array('username' => 'bobbie', 'domain' => 'bobbie.com', 'pass' => 'bobbie123');
$acct = $cp->whm_api('createacct', $domain);
echo "WHM Create: {$acct->createacct}\n";
我知道我正确连接到WHM因为我之前的代码正确输出了WHM的版本。上面的代码给出了一个错误,指出createacct需要作为第一个参数传递一个数组:
WHM Version: 11.54.0.21
PHP Fatal error: Uncaught exception 'Exception' with message 'createacct requires that first parameter passed to it is an array' in /root/whmrm/Cpanel/Service/XmlapiClientClass.php:146
Stack trace:
#0 [internal function]: Cpanel_Service_XmlapiClientClass->createacct('bobbie', 'bobbie.com', 'bobbie123')
#1 /root/whmrm/Cpanel/Service/WHM.php(195): call_user_func_array(Array, Array)
#2 [internal function]: Cpanel_Service_WHM->__call('createacct', Array)
#3 [internal function]: Cpanel_Service_WHM->createacct('bobbie', 'bobbie.com', 'bobbie123')
#4 /root/whmrm/Cpanel/PublicAPI.php(525): call_user_func_array(Array, Array)
#5 /root/whmrm/create_sites_on_server.php(68): Cpanel_PublicAPI->__call('whm_api', Array)
#6 /root/whmrm/create_sites_on_server.php(68): Cpanel_PublicAPI->whm_api('createacct', Array)
#7 {main}
thrown in /root/whmrm/Cpanel/Service/XmlapiClientClass.php on line 146
输出的第3行显示我没有正确发送数据。任何帮助,将不胜感激。我已经用Google搜索了,大部分结果都会向我提供有关xml_api以及如何使用它的信息。谢谢你的帮助。
答案 0 :(得分:2)
查看PublicAPI
类的源代码,看来如果给出一个数组作为参数,它只调用生成的函数传递数组中的第一个元素(source)。 / p>
我可以使用以下代码创建帐户:
$cp = Cpanel_PublicAPI::getInstance($config);
$whm = Cpanel_PublicAPI::factory('whm');
$domain = array(
'domain' => 'mydomain.com',
'username' => 'drewt2',
'password' => 'myp4ssw0rd!'
);
$response = $whm->createacct($domain);
您可以在此处查看功能和参数:Cpanel_Service_XmlapiClientClass。
不幸的是,代码在5年内没有更新,examples没有那么有用,所以你可能需要查看代码来找出你想要的大部分内容。做。