ftp_login expects parameter 1 to be a resource
Solution 1
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);
}
Solution 2
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.
Solution 3
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!");
}
...
michael b
Updated on June 26, 2022Comments
-
michael b almost 2 years
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.