我正在尝试在处理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"a=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"a=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);
为什么我不能让它发挥作用的任何想法?
答案 0 :(得分:0)
由于cURL无法访问cPanel会话/ cookie,因此可能无法正常工作。输入URL直接在Web浏览器中工作,因为浏览器在请求之间保留cPanel会话状态。解决此问题的唯一方法是首先使用cURL和HTTP POST请求登录cPanel。
像FireBug和Fiddler这样的工具可以帮助您查看HTML表单元素或确切的HTTP POST字段,包括登录时发送的HTTP标头。使用cURL模拟登录表单进程然后包含您的代码应该可以解决问题。
这可能有助于您继续前进:
答案 1 :(得分:0)
您需要输入变量
$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"a=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;
希望它有所帮助..