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!");
}
...