Ftp 我需要帮助把这个脚本放在一起

Ftp 我需要帮助把这个脚本放在一起,ftp,account,Ftp,Account,我有一个ftp帐户创建者的API脚本。我不确定我做错了什么。这里有3个文件,一个是config,一个是function,另一个是accountcreator的APi。将所有文件放入服务器后,它不会创建帐户。有人会帮我吗。多谢各位 第一个配置文件 /* cPanel Options */ $cpanel_user = " cpanel username"; $cpanel_pass = "Cpanel password"; $cpanel_domain = '127.

我有一个ftp帐户创建者的API脚本。我不确定我做错了什么。这里有3个文件,一个是config,一个是function,另一个是accountcreator的APi。将所有文件放入服务器后,它不会创建帐户。有人会帮我吗。多谢各位

第一个配置文件

/* cPanel Options */
     $cpanel_user = " cpanel username";
     $cpanel_pass = "Cpanel password";
     $cpanel_domain = '127.0.0.1'; // if this doesn't work, you might not want to use it.
     $cpanel_skin = 'x3';
     $cpanel_default_ftp_quota = 5; // MB
$url=“http://$cpanel_用户:$cpanel_通行证@$cpanel_域:2082/frontend/$cpanel_皮肤/”

二是功能

 function cPanel($action,$function,$args) {
         global $MESSAGES, $url;

     $url .= "$function?";
     $url_args = array();
     foreach($args as $key => $value) {
         $url_args[] = "$key=$value";
     }
    $url .= implode("&",$url_args);

    $ch = curl_init();
    $timeout = 5;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $result = curl_exec($ch);
    curl_close($ch);

    if ($result === FALSE) {
        $status = 'error';
        $message = $result;
    } else {
        $status='success';
        $message=$MESSAGES[$action];
    }

    return array($status, $message);

    } 
第三个文件与帐户创建

// the options mentioned in part one are set here
   include_once 'config.php';
   $url = "http://$cpanel_user:$cpanel_pass@$cpanel_domain";
 $url .= ":2082/frontend/$cpanel_skin/";

     if(isset($_REQUEST['format'])) {
         $format=$_REQUEST['format'];
     } else {
        $format='html';
    }

    // other stuff (including the emailUser function you'll see called below)

    function addUser($user,$pass,$email_address) {
        // we need to add the user to our database
        // for other purposes
    }

    function createAccount(
        $ftp_user, $ftp_pass, $email_address, $ftp_homedir, $ftp_quota) {
        global $base_dir, $source_dir;
        $error=addUser($ftp_user, $ftp_pass, $email_address);
        if (!$error) {
            $ftp_homedir .= $ftp_user;
            $copy_dir = $base_dir . $ftp_user;
            $cpanel_results = cPanel('signup','ftp/doaddftp.html',
            array('login'=>$ftp_user,'password'=>$ftp_pass,
            'quota'=>$ftp_quota,'homedir'=>$ftp_homedir)
            );
            $error = $cpanel_results[0];
            if ($error!='error') {
                recursive_copy($source_dir,$copy_dir);
            }
            if($error!='error') {
                    return emailUser($email_address,'signup','');
            } else {
                return $cpanel_results;
            }
        } else {
            return array('error', $error);
        }
    }

    $message = Null;
    if(isset($_REQUEST['submit']) ) {
        switch ($_REQUEST['submit']) {
            case $signup_button:
                $args = createAccount(
                $_REQUEST['username'],$_REQUEST['password'],
                $_REQUEST['email_address'],$_REQUEST['ftp_homedir'],
                $_REQUEST['ftp_quota']);
                break;
            // other cases snipped
            default:
                $args = array(Null,Null);
        }
        $message_class = $args[0];
        $message = $args[1];
    }

    if ($message) {
        if ($format!='html') {
            die($message);
        } else {
    $message="<div id=\"message\" class=\"$message_class\">$message</div>";
        }
    }

    // generate html form here
    // $message is included and styled to display
    // above the form in red (error) or green (success)
?>

 <head>
  <title>cPanel FTP Account Creator</title>
  <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
  <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</head>
<body>
  <style>
    input { border: 1px solid black; }
  </style>
    <form method="post" accept-charset="utf-8">
     <label for="username">Username</label>
     <input type="text" name="username" value="" id="username">
     <label for="password">Password</label>
     <input type="password" name="password" value="" id="password">
    <label for="email_address">Email Address</label>
     <input type="text" name="email_address" value="" id="email_address">
     <input type="hidden" name="ftp_quota" value="5" id="ftp_quota">
     <input type="hidden" name="ftp_homedir" value="public_html/user_files/" id="ftp_homedir">
    <input type="submit" name="submit" value="Sign Up" id="signup_submit">
    </form>
  </body>
</html>  
//第一部分中提到的选项在这里设置
包括一次'config.php';
$url=“http://$cpanel\u用户:$cpanel\u通行证@$cpanel\u域”;
$url.=“:2082/前端/$cpanel_skin/”;
如果(isset($_请求['format'])){
$format=$_请求['format'];
}否则{
$format='html';
}
//其他功能(包括下面调用的emailUser功能)
函数addUser($user、$pass、$email\u地址){
//我们需要将用户添加到数据库中
//为其他目的
}
函数createAccount(
$ftp\u user、$ftp\u pass、$email\u address、$ftp\u homedir、$ftp\u quota){
全局$base\u dir、$source\u dir;
$error=addUser($ftp\u user、$ftp\u pass、$email\u address);
如果(!$error){
$ftp\u homedir.=$ftp\u用户;
$copy\u dir=$base\u dir.$ftp\u user;
$cpanel_results=cpanel('signup','ftp/doaddftp.html',
数组('login'=>ftp\u用户,'password'=>ftp\u密码,
'quota'=>ftp\u quota,'homedir'=>ftp\u homedir)
);
$error=$cpanel_结果[0];
如果($error!=“error”){
递归复制($source\u dir,$copy\u dir);
}
如果($error!=“error”){
返回emailUser($email_地址,'signup','');
}否则{
返回$cpanel_结果;
}
}否则{
返回数组('error',$error);
}
}
$message=Null;
如果(isset($_请求['submit'])){
开关($\u请求['submit']){
案例$signup_按钮:
$args=createAccount(
$请求['username'],$请求['password'],
$\u请求['email\u address'],$\u请求['ftp\u homedir'],
$_请求['ftp_配额]);
打破
//其他案件被截获
违约:
$args=数组(Null,Null);
}
$message_class=$args[0];
$message=$args[1];
}
如果($message){
如果($format!='html'){
死亡($信息);
}否则{
$message=“$message”;
}
}
//在此处生成html表单
//包含$message,并将其样式设置为显示
//表格上方的红色(错误)或绿色(成功)
?>
cPanel FTP帐户创建者
输入{边框:1px纯黑;}
用户名
密码
电子邮件地址

我将不详细介绍,但快速浏览一下,我发现了几个可能的问题:

1) 您可以在用户名或密码中使用特殊/保留字符,因此最好在url中使用它们之前对它们进行url编码

2) 有些CPanel需要会话,因此您还必须将会话id插入url


3) 有些cpanel在cUrl调用中是严格的。我的意思是你们应该有一个“完整的”卷曲调用,包括标题、cookies等等。。。否则卷发就不行了。

谁能帮我一下吗?非常感谢。