ftp_login

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_login -- Выполняет вход на FTP сервер

Описание

bool ftp_login ( resource ftp_stream, string username, string password )

Выполняет вход на FTP сервер.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

username

Имя пользователя (USER).

password

Пароль (PASS).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если войти на сервер не удалось, PHP вызовет предупреждение.

Примеры

Пример 1. Пример использования ftp_login()

<?php
                    
$ftp_server
= "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// установить соединение или выйти
$conn_id = ftp_connect($ftp_server) or die("Не удалось установить соединение с $ftp_server");

// попытка входа
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
   echo
"Произведен вход на $ftp_server под именем $ftp_user\n";
} else {
   echo
"Не удалось войти под именем $ftp_user\n";
}

// close the connection
ftp_close($conn_id); 
?>



ftp_login
Guibod
26-Oct-2004 01:37
ftp_login does not support ftp trough proxy authentication. So think about using the new PHP5 function ftp_raw() that's allow you to send directly FTP commands. ftp_raw() allow you to send commands prior to be connected (unlike ftp_exec()).

I've writen this piece of code that's allow you to connect through a "remoteid@remotehost proxyid" proxy.

<?php
function ftp_parse_response($response, &$errstr) {
   if(!
is_array($response)) {
      
$errstr    = 'Parameter \$response must be an array';
       return
false;
   }
      
   foreach(
$response as $r) {
      
$code    = substr(trim($r),0,3);

       if(!
is_numeric($code)) {
          
$errstr    = "$code is not a valid FTP code",$code);
       }
          
       if(
$code > 400) {
          
$errstr    = $r;
           return
false;
       }
   }
      
   return
true;
}

$user = "user";
$pass = "password";
$host = "ftp.example.com";
$proxyuser = "proxyuser";
$proxypass = "proxypass";
$proxyhost = "ftp.proxy.com";

$conn_id = ftp_connect($proxyhost);

if(!
$conn_id) {
   die(
"cannot connect to proxy");
}

$commands  = array(
  
"USER ".$user."@".$host." ".$proxyuser,
  
"PASS ".$pass,
  
"PASS ".$proxypass
);

foreach(
$commands as $c) {
  
$ret    = ftp_raw($conn_id,$c);

  
//you can write your own ftp_parse_response func that
   //use an array of string as input
  
if(!ftp_parse_response($ret,$errstr)) {
      
ftp_close($conn_id);
       die(
"cannot login to $host");
   }
}

echo
"ok, now connected";
?>

<ftp_getftp_mdtm>
 Last updated: Tue, 15 Nov 2005