PHP 8.4.1 Released!

ftp_login

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

ftp_loginLogs in to an FTP connection

Description

ftp_login(FTP\Connection $ftp, string $username, #[\SensitiveParameter] string $password): bool

Logs in to the given FTP connection.

Parameters

ftp

An FTP\Connection instance.

username

The username (USER).

password

The password (PASS).

Return Values

Returns true on success or false on failure. If login fails, PHP will also throw a warning.

Changelog

Version Description
8.1.0 The ftp parameter expects an FTP\Connection instance now; previously, a resource was expected.

Examples

Example #1 ftp_login() example

<?php

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

// set up a connection or die
$ftp = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// try to login
if (@ftp_login($ftp, $ftp_user, $ftp_pass)) {
echo
"Connected as $ftp_user@$ftp_server\n";
} else {
echo
"Couldn't connect as $ftp_user\n";
}

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

add a note

User Contributed Notes 3 notes

up
20
Travis Weston
10 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
12
mattsch at gmail dot com
13 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
-2
Anonymous
8 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
To Top