【问题标题】:PHP script needed to create filezilla ftp accounts创建 filezilla ftp 帐户所需的 PHP 脚本
【发布时间】:2012-04-16 03:35:58
【问题描述】:

好的,所以我已经设置了 filezilla 服务器软件,但我想要一个 php 脚本,它将新用户添加到包含用户名、密码和文件夹的 xml 文件中。我希望它将其添加到现有的 xml 文件中,而不删除其中的当前信息。如果您知道执行此操作的可用方法或脚本,请将其发送给我或分享您的知识。否则,如果有另一个 ftp 服务器程序为每个用户提供单独的 xml 或文件,请告诉我。 提前致谢, 马特。

【问题讨论】:

  • 嘿,你需要做的就是用php读入文件,在需要去的地方添加必要的数据来编辑它,然后保存文件
  • 你能为我提供一个简单的脚本吗?我需要它让用户名成为一个变量,就像当用户输入他/她的密码时,它从之前页面的请求变量中添加它。
  • 哎呀,对不起,哈哈,我没注意到。好的 75% 更好吗?

标签: php ftp filezilla


【解决方案1】:

最好的办法是使用SimpleXML 来操作 XML 文件。

  1. 使用simplexml_load_file 打开文件。确保您对该文件具有读/写权限。
  2. 使用SimpleXMLElement 类添加和删除节点。

【讨论】:

  • 所以你能提供一些代码来让它工作吗?抱歉,我是创建 php 脚本的新手。这是 xml 文件中的代码:pastebin.com/d8kD7tEQ 我需要它在用户“peacons”之后添加一个新用户,并且我需要它在底部保留相同的代码。我想使用一个简单的输入脚本,比如它要求用户输入他们的用户名和密码来创建信息
  • 翻译:“请为我做这件事。”
  • 坦率地说,是的。我不知道从哪里开始使用这样的脚本。但我愿意学习如何去做。
  • @MattMyers:我很乐意提供帮助,但请发布您尝试过的内容或您开始的任何内容:)
  • 好吧,我会使用这样一个简单的 post php 脚本:pastebin.com/12PgkzBa 但它不会在 xml 文件中保留其上方或下方的相同数据。
【解决方案2】:
 $user = $xml->Users->addChild('User');
 $user->addAttribute('Name', $user_name);

 add_option($user,'Pass',md5($password));
 add_option($user,'Group',null);
 add_option($user,'Bypass server userlimit','0');
 add_option($user,'User Limit','0');
 add_option($user,'IP Limit','0');
 add_option($user,'Enabled','1');
 add_option($user,'Comments','none');
 add_option($user,'ForceSsl','0');

 $filter = $user->addChild('IpFilter');
 $filter->addChild('Disallowed');
 $filter->addChild('Allowed');

 $permissions = $user->addChild('Permissions');
 $permission = $permissions->addChild('Permission');

 $permission->addAttribute('Dir', str_replace("/","\\",$ftpUserFolder));

 add_option($permission,'FileRead','1');
 add_option($permission,'FileWrite','1');
 add_option($permission,'FileDelete','1');
 add_option($permission,'FileAppend','1');
 add_option($permission,'DirCreate','1');
 add_option($permission,'DirDelete','1');
 add_option($permission,'DirList','1');
 add_option($permission,'DirSubdirs','1');
 add_option($permission,'IsHome','1');
 add_option($permission,'AutoCreate','1');

 $speed = $user->addChild('SpeedLimits');
 $speed->addAttribute('DlType', '1');
 $speed->addAttribute('DlLimit', '10');
 $speed->addAttribute('ServerDlLimitBypass', '0');
 $speed->addAttribute('UlType', '1');
 $speed->addAttribute('UlLimit', '10');
 $speed->addAttribute('ServerUlLimitBypass', '0');
 $speed->addChild('Download');
 $speed->addChild('Upload');

 if(!$rv = $xml->asXML($xmlfile)){
  echo ('SimpleXML could not write file');
  return false;
 }


 //Change file encoding from UTF8 to ISO-8859-1
 $dom = new DOMDocument("1.0","ISO-8859-1");
 $dom->preserveWhiteSpace = false;
 $dom->formatOutput = true;
 if(!$dom->load($xmlfile) || !$dom->save($xmlfile)){
  echo ('DOMDocument could not change file enconding from UTF8 to ISO-8859-1');

来自我博客的完整脚本:http://moshez.blogspot.co.il/2013/02/php-filezilla-ftp-server-auto-create.html

【讨论】:

  • 欢迎来到 Stack Overflow!感谢您发布您的答案!请务必仔细阅读FAQ on Self-Promotion。另请注意,每次链接到您自己的网站/产品时,都要求发布免责声明。我在这里为你添加了披露。请牢记这一点,以备不时之需。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-14
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
相关资源
最近更新 更多