Припаркованные домены cPanel Не возвращает массив - PullRequest
0 голосов
/ 03 декабря 2018

Пароль был изменен и cPanel сломался.Исправлен пароль, и он все еще не работает!Я должен перебрать припаркованные домены.Я проверил правильную комбинацию пользователя и пароля через PuTTY.

<?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;}
}
?>

Этот код генерирует следующую ошибку:

В foreach ()

* указан неверный аргумент1008 *

Видимо $domains_parked даже не установлен!Я потратил время на просмотр вызываемой функции, поэтому без сброса всех 86 КБ вот очищенная версия $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 Object (

[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 Ответ

0 голосов
/ 04 декабря 2018

Таким образом, cPanel версии 74 уничтожил весь XML API, и не говорит о каких-либо сообщениях об ошибках .Я не могу объективно сказать, что cPanel обеспечивает стабильную платформу для создания чего-либо надежного.Вы можете либо намеренно отключить ваш сервер от автоматического обновления (и, возможно, пропустить обновления безопасности), либо каждые X повторений времени полностью переписывать код снова ... и снова ... и снова.

...