FTP авторизация не авторизуется через PHP методы - PullRequest
1 голос
/ 29 ноября 2011

У меня проблемы с подключением к моему ftp-серверу в PHP.Я могу войти, используя команду telnet из командной строки cmd, поэтому сервер / пользователь / пароль верны, но при попытке подключиться с помощью PHP я получаю сообщение об ошибке:

Предупреждение:ftp_login () [function.ftp-login]: неверный логин.в /hermes/bosweb/web232/b2323/ipg....

Когда я закомментирую свой сервер / пользователя / пароль и заменю общедоступным анонимным ftp-сервером, код работает (как показано ниже),Я искал ответ на прошлой неделе, но до сих пор не имею понятия, что мне не хватает или где еще искать.Кроме того, я новичок в php / server, так что это может быть что-то действительно простое.Любая помощь с благодарностью!

<?php
    /*
    // (does not work)
    $ftp_server = "ftp.*****.com";
    $ftp_user = "******";
    $ftp_password = "*****";
    */

    $ftp_server = "ftp.gnu.org";
    $ftp_user = "anonymous";
    $ftp_password = "none";


    /* connect */
    $ftp_connection = @ftp_connect($ftp_server);
    if (!$ftp_connection) die('could not connect.');

    /* login */
    $ftp_login = @ftp_login($ftp_connection, $ftp_user, $ftp_password);
    if (!$ftp_login) die('could not login.');

    /* enter passive mode */
    $ftp_passive = @ftp_pasv($ftp_connection, true);
    if (!$ftp_passive) die('could not enable passive mode.');

    /* get listing */
    $ftp_listing = ftp_nlist($ftp_connection, "."); 
    foreach ($ftp_listing as $file){
        echo "<div>".$file."</div>";
    }

    ftp_close($ftp_connection);
?>

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Возможно, вам будет проще полностью отказаться от расширения ftp и просто использовать обычные функции файловой системы:

// Download a file and store the data in $data
$data = file_get_contents('ftp://username:password@ftp.domain.tld/somefile.txt');

// Loop the contents of the root directory
$dp = opendir('ftp://username:password@ftp.domain.tld/');
while ($file = readdir($dp)) {
  // Do stuff
}
closedir($dp);

// Upload a file
file_put_contents('ftp://username:password@ftp.domain.tld/somefile.txt','This is the file data');

// Upload a file from the local file system
$local = fopen('/path/to/my/file.ext','r');
$remote = fopen('ftp://username:password@ftp.domain.tld/somefile.txt','w');
stream_copy_to_stream($local,$remote);

Возможно, вам будет проще с этим работать, поскольку большая часть работы выполняетсясделано для вас, и это, вероятно, сделает ваш код более переносимым - не на каждом сервере установлено расширение FTP.Вы можете делать более сложные вещи, создав потоковый контекст , который можно использовать с большинством функций файловой системы.

0 голосов
/ 29 ноября 2011

Извините, новичок php ошибка.Я пытался получить доступ к своему ftp-серверу из php-кода на этом сервере ... Я думаю, это не работает.Я запустил код с другого сервера и работает нормально.В любом случае, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...