FTP login ожидает, что параметр 1 будет ресурсом
Я пытаюсь загрузить некоторые файлы с FTP, и у меня возникает следующая ошибка:
предупреждение: ftp_login () ожидает, что параметр 1 будет ресурсом, логическим заданным в /home / content/98/10339998/html / upload.PHP на линии 65 FTP-соединение обнаружило ошибку!Попытка подключения к thelegendmaker.net....
причинены:
// 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);
кто-нибудь знает, почему это происходит? Я пробовал использовать без кавычек, двойных кавычек и одинарных кавычек и никто не работает.
3 ответов
проблема имеет это основание в том, что, когда ftp_connect()
не удается подключиться к FTP-серверу, он возвращает FALSE вместо идентификатора ссылки на ресурс, который он обычно возвращает. Проверьте, жив ли ваш FTP-сервер с помощью ping
вы можете сделать как
if($conn_id){
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
}
ftp_connect вернет false, если это не удастся. Это вызовет сообщение об ошибке, которое вы испытываете вместо входа в систему.
Я бы рекомендовал использовать условие, чтобы избежать попыток входа в систему при сбое соединения.
несколько вариантов у вас есть:
// 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);
или
// 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);
Так как я получаю ответ от вашего сервера на ping. Я предполагаю, что вы неправильно настроили свой FTP-сервер.
инструкция по Примечание;
возвращает поток FTP при успешном выполнении или FALSE при ошибке.
таким образом, вы можете применить простой фильтр;
$conn_id = ftp_connect("thelegendmaker.net");
if (false === $conn_id) {
throw new Exception("FTP connection error!");
}
...