代码之家  ›  专栏  ›  技术社区  ›  John

cPanel未返回数组

  •  0
  • John  · 技术社区  · 6 年前

    <?php
    include_once('cpanel_api_xml.php');
    $domain = 'example.com';
    $pass = '';//etc
    $user = '';//etc
    $xmlapi = new xmlapi('127.0.0.1');
    $xmlapi->password_auth($user,$pass);
    $domains_parked = $xmlapi->listparkeddomains($user);
    
    foreach ($domains_parked as $k1=>$v1)
    {
     if ($v1->domain == $domain) {$return = true; break;}
    }
    ?>
    

    该代码生成以下错误:

    显然 $domains_parked 还没定!我花了很多时间来查看正在调用的函数,所以这里没有转储所有的86KB,这是的清理版本 $xmlapi->listparkeddomains :

    <?php
    public function listparkeddomains($username, $domain = null)
    {
     $args = array();
     if (!isset($username))
     {
      error_log("listparkeddomains requires that a user is passed to it");
      return false;
     }
    
     if (isset($domain))
     {
      $args['regex'] = $domain;
      return $this->api2_query($username, 'Park', 'listparkeddomains', $args);
     }
    
     return $this->api2_query($username, 'Park', 'listparkeddomains');
    }
    ?>
    

    mail() .

    接下来,我尝试以更直接的方式调用API:

    $xmlapi->api2_query($username, 'Park', 'listparkeddomains')
    

    这也是

    echo "1:\n";
    print_r($xmlapi);
    echo "2:\n";
    print_r($xmlapi->api2_query($user, 'Park', 'listparkeddomains'));
    echo "3:\n";
    $domains_parked = $xmlapi->listparkeddomains($user);
    print_r($domains_parked);
    die();
    

    其输出如下:

    1:xmlapi对象(

    [debug:xmlapi:private] => 
    
    [host:xmlapi:private] => 127.0.0.1
    
    [port:xmlapi:private] => 4099
    
    [protocol:xmlapi:private] => https
    
    [output:xmlapi:private] => simplexml
    
    [auth_type:xmlapi:private] => pass
    
    [auth:xmlapi:private] => <pass>
    
    [user:xmlapi:private] => <user>
    
    [http_client:xmlapi:private] => curl ) 2: 3:
    

    我从未遇到过如此脆弱的代码,尽管我别无选择,只能使用它。请帮忙?

    1 回复  |  直到 4 年前
        1
  •  1
  •   John    6 年前

    所以cPanel版本74去掉了整个xmlapi 它不会告诉你任何错误信息