简体   繁体   中英

ftp_login expects parameter 1 to be a resource

I'm trying to upload some files with FTP and I'm having the following error:

Warning: ftp_login() expects parameter 1 to be resource, boolean given in /home/content/98/10339998/html/upload.php on line 65 FTP connection has encountered an error!Attempted to connect to thelegendmaker.net....

caused by:

// set up a connection to ftp server
$conn_id = ftp_connect("thelegendmaker.net");

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

Does anyone know why this is happening? I've tried using no quotes, double quotes, and single quotes and none work.

The problem has it basis in the fact that, when ftp_connect() cannot connect to a FTP Server it returns FALSE instead of the resource link identifier it generally returns. Check whether your FTP server is alive using ping

you can do like

if($conn_id){
     // login with username and password
     $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
}

ftp_connect will return false if it does not succeed. What this will cause is the error message you are experiencing instead of logging you in.

I would recommend using a condition to avoid trying to login when your connection fails.

A couple of options you have:

// set up a connection to ftp server
$conn_id = ftp_connect("thelegendmaker.net") or die("Unable to connect to server.");

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

or

// set up a connection to ftp server
$conn_id = ftp_connect("thelegendmaker.net");

// login with username and password
if($conn_id !== false) $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

Since I am getting a response from your server to a ping. My guess is that you haven't properly configured your FTP server.

According manual note;

Returns a FTP stream on success or FALSE on error.

So, you can apply a simple filter like that;

$conn_id = ftp_connect("thelegendmaker.net");
if (false === $conn_id) {
    throw new Exception("FTP connection error!");
}
...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM