International PHP Conference Munich 2021

ftp_login

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_login登录 FTP 服务器

说明

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

使用用户名和密码登录入给定的 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("Couldn't connect to $ftp_server"); 

// 尝试登录
if (@ftp_login($conn_id$ftp_user$ftp_pass)) {
    echo 
"Connected as $ftp_user@$ftp_server\n";
} else {
    echo 
"Couldn't connect as $ftp_user\n";
}

// 关闭连接
ftp_close($conn_id);  
?>

add a note add a note

User Contributed Notes 4 notes

up
21
Travis Weston
6 years ago
To suppress the PHP warning, just prepend the function with the error suppression character @. I'm usually against error suppression, but apparently some genius thought it was a good idea to really drive the point home that you have a bad login. Returning false wasn't enough?

if( ! @ftp_login( $connection, 'USERNAME', 'PASSWORD' ) ){
        die( 'Bad login, but no PHP warning thrown.');
}
up
11
mattsch at gmail dot com
10 years ago
Note that to make an anonymous ftp connection, you need to specify "anonymous" as the username and "" (empty string) as the password.

Example:
<?php
ftp_login
('ftp.example.com', 'anonymous', '');
?>
up
0
Anonymous
5 years ago
from: http://www.ietf.org/rfc/rfc1635.txt

"What is Anonymous FTP?
"...
"Traditionally, this special anonymous user account accepts any string as a password, although it is common to use either the password "guest" or one's electronic mail (e-mail) address.  Some archive sites now explicitly ask for the user's e-mail address and will not allow login with the "guest" password.  Providing an e-mail address is a courtesy that allows archive site operators to get some idea of who is using their services. "

So your code would be:
<?php
ftp_login
('ftp.example.com', 'anonymous', 'user@example.com');
?>

If a blank password works, you might have a default password set in your php.ini
up
-43
contact at evoweb dot fr
6 years ago
If you want to remove the warning of a bad connection with handled error activated just add before :
set_error_handler("my_error_function", E_ALL & !E_WARNING);
and after the function :
set_error_handler("my_error_function", E_ALL);
To Top