0

我正在尝试在处理 PHP 表单时创建一个新的 ftp 帐户。如果我在浏览器的地址栏中输入此地址:

http://cpanel_username:cpanel_password@$mydomain.com:2082/json-api/cpanel?cpanel_jsonapi_version=2&cpanel_jsonapi_module=Ftp&cpanel_jsonapi_func=addftp&user=ftp_username&pass=ftp_password&homedir=/the/users/homefolder&quota=0

... json 格式的结果显示在屏幕上,并按指定创建一个 ftp 帐户。但是,当我在 PHP 文件中使用它时,我无法让它工作!这是我所拥有的:

$user = "cpanel_username";
$pass = "cpanel_password";
$domain = "mydomain.com";
$fuser = "ftp_username";
$fpass = "ftp_password";
$fhomedir = "/the/users/homefolder";

$url = "http://$user:$pass@$domain:2082/json-api/cpanel?cpanel_jsonapi_version=2&cpanel_jsonapi_module=Ftp&cpanel_jsonapi_func=addftp&user=$fuser&pass=$fpass&homedir=$fhomedir&quota=0";

file_get_contents($url);

我也尝试使用 CURL:

function new_get_file_contents($url) {
$ch = curl_init();
$timeout = 10; 
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch); 
curl_close($ch);
return $file_contents;
}

new_get_file_contents($url);

任何想法为什么我不能让它工作?

4

2 回答 2

1

久经考验...

您需要输入变量

$cpaneluser = Your cpanel username
$cpanelpass = Your cpanel password
$domain = your domain name ( xyz.com )
$fuser = ftp username
$fpass = ftp password
$homedir = ftp directory 

$url = "http://$cpaneluser:$cpanelpass@$domain:2082/json-api/cpanel?";
$url .= "cpanel_jsonapi_version=2&cpanel_jsonapi_module=Ftp&cpanel_jsonapi_func=addftp&";
$url .= "user=$fuser&pass=$fpass&homedir=$fhomedir&quota=0";

var_dump($url);
$result = @file_get_contents($url);
if ($result === FALSE) 
die("ERROR: FTP Account not created. Please make sure you passed correct parameters.");
echo $result;

希望能帮助到你..

于 2014-02-03T15:42:55.023 回答
0

它可能不起作用,因为 cURL 无权访问 cPanel 会话/cookie。直接在 Web 浏览器中输入 URL,因为浏览器在请求之间保留 cPanel 会话状态。解决此问题的唯一方法是首先使用 cURL 和 HTTP POST 请求登录到 cPanel。

FireBug 和 Fiddler 等工具可以帮助您查看登录时发送的 HTML 表单元素或确切的 HTTP POST 字段,包括 HTTP 标头。使用 cURL 模拟登录表单过程,然后包含您的代码应该可以解决问题。

这可能会帮助您继续前进:

于 2012-05-27T20:11:25.303 回答