0

我有多个 cpanel 帐户,我想使用 RoundCube 的密码更改插件。在插件的 config.inc.php 文件中(如下所示),我包含了一个用于设置配置变量的函数,它整合了代码(请参阅 case 语句了解我的意思)。

我试过返回函数数组、添加全局变量等等。对于我的死亡,我无法让密码插件了解变量已配置。我将结果打印到 switch 语句内的日志文件中(在某一时刻),它返回了函数内定义的每个变量。但是,由于某种原因,插件没有在 password.php 文件中获取这些变量。

用户端的结果是密码更改失败并显示错误消息。

// Password Plugin options
    $rcmail_config['password_driver'] = 'cpanel';

// LOAD USER CONFIGURATION
    global $CONFIG, $RCMAIL;
    $rcmail = rcmail::get_instance();
    $user = $rcmail->user;

// GET THE USER'S DOMAIN NAME
function getDomainFromEmail($email)
{
    $domain = substr(strrchr($email, "@"), 1);
    return $domain;
}


// CONFIGURE PASSWORD PLUG-IN BASED ON THE EMAIL DOMAIN NAME
function setConfiguration($password_cpanel_host, $password_cpanel_username, $password_cpanel_password, $password_cpanel_port, $password_cpanel_ssl, $password_cpanel_theme)
{   global $rcmail, $rcmail_config;
    $rcmail_config['password_cpanel_host']      = $password_cpanel_host;
    $rcmail_config['password_cpanel_username']  = $password_cpanel_username;
    $rcmail_config['password_cpanel_password']  = $password_cpanel_password;
    $rcmail_config['password_cpanel_port']      = $password_cpanel_port;
    $rcmail_config['password_cpanel_ssl']       = $password_cpanel_ssl;
    $rcmail_config['password_cpanel_theme']     = $password_cpanel_theme;

    //return $rcmail_config;    
}

// CHECK THE DOMAIN NAME AND APPLY THE PLUG-IN SETTINGS
switch (getDomainFromEmail($user->get_username()))
{
case "domain1.com":
    // DOES NOT WORK WHEN DEFINED THIS WAY (AFTER RETURN IS UNCOMMENTED IN FUNCTION)
    $rcmail_config = setConfiguration('xxx', 'xxx', 'xxx', 2083, true, 'x3');
    // OR THIS WAY
    setConfiguration('xxx', 'xxx', 'xxx', 2083, true, 'x3');

    break;

case "domain2.org":
    // WORKS WHEN DEFINED THIS WAY
    $rcmail_config['password_cpanel_host']      = 'xxx';
    $rcmail_config['password_cpanel_username']  = 'xxx';
    $rcmail_config['password_cpanel_password']  = 'xxx';
    $rcmail_config['password_cpanel_port']      = '2083';
    $rcmail_config['password_cpanel_ssl']       = true;
    $rcmail_config['password_cpanel_theme']     = 'x3';
    break;
}
4

1 回答 1

0

我不知道你是否已经解决了这个问题,但我遇到了完全相同的问题,并在 cPanel 社区的帮助下解决了这个问题。我无法工作(但最终做到了)的一种情况是使用停放域时

您将需要使用 WHM 登录详细信息而不是 cPanel 登录详细信息,然后在以管理员身份完成时使用端口 2087。我希望这有帮助。

我已经在这里发布了最终代码

http://forums.cpanel.net/f42/finding-account-username-parked-domain-428501.html

于 2014-09-17T18:13:11.353 回答