【问题标题】:PHP Cpanel_PublicAPI Create Account passing incorrect variablesPHP Cpanel_PublicAPI 创建帐户传递不正确的变量
【发布时间】:2016-03-29 05:25:05
【问题描述】:

如果此请求发错区,我很抱歉。

我正在学习使用 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 行显示我没有正确发送数据。任何帮助,将不胜感激。我用谷歌搜索,大部分结果都为我提供了有关 xml_api 以及如何使用它的信息。感谢您的帮助。

【问题讨论】:

    标签: php cpanel cpanel-xmlapi


    【解决方案1】:

    查看PublicAPI 类的源代码,似乎如果将数组作为参数给出,它只会调用传递数组中第一个元素的结果函数 (source)。

    我能够使用此代码创建一个帐户:

    $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 也没有那么有用,所以您可能需要仔细查看代码才能弄清楚您想要做什么。

    【讨论】:

    • 非常感谢!这段代码完全适合我。我不得不在 $whm = 行的末尾添加一个分号,但除此之外它还有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多