首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到ftp服务器

连接到ftp服务器
EN

Stack Overflow用户
提问于 2012-05-08 17:58:13
回答 4查看 2.4K关注 0票数 1

我正在尝试使用ftp_connectftp_login连接到多个ftp服务器。我的代码非常简单,如下所示

代码语言:javascript
复制
 foreach ($ftp_accounts as $ftp_account) {
     $connect_id = $ftp_account['server'];
                $user = $ftp_account['user'];
                $pass = $ftp_account['password'];
                echo 'Ftp Server: '.$connect_id.'<br> Username: '.$user. '<br> Password: '.$pass.'<br>';
                if (ftp_login($connect_id, $user, $pass)){
                    echo "| Connected to server " . $connect_id . " as " . $user . '<br>';
                } else {
                    echo "Couldn't connect to $connect_id as $user \n";
                }
 }

我的数据库中有一个表,其中包含多个服务器及其凭据。但是我编写的代码给出了以下错误(警告)消息

代码语言:javascript
复制
 ftp_login() expects parameter 1 to be resource, string given

它转到每个服务器的else语句。

你知道我做错了什么吗?

提前感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-08 20:47:25

让我回答我的问题。首先,我得到的答复是所有正确的选项都要检查这样的问题,我高度赞赏的答复,但有一件事,你也需要检查是,您的服务器防火墙是否允许连接到任何传出ftp服务器?如果它不允许您连接,那么即使在您的代码中正确编写了所有内容,您也将无法连接到服务器。因此,在测试代码之前,请检查您的服务器防火墙设置。

当我允许所有传出连接时,它对我起作用了。

再次感谢您的回复

票数 1
EN

Stack Overflow用户

发布于 2012-05-08 18:09:34

您需要使用ftp_connect()连接到服务器,然后才能尝试登录。此外,在尝试登录之前,您需要检查ftp_connect()的结果,以确保它能够连接。如果不是,则返回FALSE,您应该使用而不是继续尝试登录。

代码语言:javascript
复制
foreach ($ftp_accounts as $ftp_account) {
     $connect_id = ftp_connect($ftp_account['server']);

    if($connect_id !== false)
    {

       $user = $ftp_account['user'];
       $pass = $ftp_account['password'];
       echo 'Ftp Server: '.$connect_id.'<br> Username: '.$user. '<br> Password: '.$pass.'<br>';
       if (ftp_login($connect_id, $user, $pass)){
             echo "| Connected to server " . $connect_id . " as " . $user . '<br>';
          } else {
             echo "Couldn't connect to $connect_id as $user \n";
        } 
    } else {
       echo 'failed to connect to server';
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-05-08 18:01:45

替换

代码语言:javascript
复制
<?php
$connect_id = $ftp_account['server'];
?>

使用

代码语言:javascript
复制
<?php
$connect_id = ftp_connect($ftp_account['server']);
?>

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10496421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档