2013-02-05 18 views
6

Tôi đang cố gắng để tải lên một số file với FTP và tôi đang gặp các lỗi sau:ftp_login hy vọng tham số 1 là một nguồn tài nguyên

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....

do:

// 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); 

Có ai biết tại sao điều này lại xảy ra? Tôi đã thử bằng cách sử dụng không có dấu ngoặc kép, dấu ngoặc kép, và dấu nháy đơn và không có công việc.

Trả lời

11

Vấn đề có cơ sở trong thực tế là, khi ftp_connect() không thể kết nối với Máy chủ FTP, nó trả về FALSE thay vì từ định danh liên kết tài nguyên, nó thường trả về. Kiểm tra xem máy chủ FTP của bạn là sống bằng ping

bạn có thể làm như

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

Tương tự như: http://forums.devshed.com/showpost.php?p=956346&postcount=2 – Shog9

2

Theo thủ công lưu ý;

Returns a FTP stream on success or FALSE on error.

Vì vậy, bạn có thể áp dụng bộ lọc đơn giản như vậy;

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

ftp_connect sẽ trả về false nếu không thành công. Điều này sẽ gây ra là thông báo lỗi mà bạn đang gặp phải thay vì đăng nhập bạn.

Tôi khuyên bạn nên sử dụng điều kiện để tránh đăng nhập khi kết nối của bạn không thành công.

Một vài tùy chọn bạn có:

// 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); 

hoặc

// 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); 

Kể từ khi tôi nhận được phản hồi từ máy chủ của bạn đến một ping. Tôi đoán là bạn đã không cấu hình đúng máy chủ FTP của bạn.