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