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 にアクセスできないため、機能していない可能性があります。URL の入力は、Web ブラウザーで直接機能します。これは、ブラウザーが要求間の cPanel セッション状態を保持しているためです。この問題を解決する唯一の方法は、最初に cURL および HTTP POST 要求を使用して cPanel にログインすることです。

FireBug や Fiddler などのツールを使用すると、ログイン時に送信される HTML フォーム要素または正確な HTTP POST フィールド (HTTP ヘッダーを含む) を確認できます。

これはあなたが先に進むのに役立つかもしれません:

于 2012-05-27T20:11:25.303 に答える