2013-02-05 20 views
6

sto cercando di caricare alcuni file con FTP e sto avendo il seguente errore:ftp_login si aspetta parametro 1 per essere una risorsa

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

causati da:

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

Qualcuno sa perché questo sta accadendo? Ho provato a utilizzare senza virgolette, virgolette e virgolette singole e nessuno funziona.

risposta

11

Il problema si basa sul fatto che, quando ftp_connect() non riesce a connettersi a un server FTP, restituisce FALSE anziché l'identificatore del collegamento risorsa in genere restituisce. Controllare se il server FTP è vivo utilizzando ping

si può fare come

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

simile a: http://forums.devshed.com/showpost.php?p=956346&postcount=2 – Shog9

2

Secondo nota manuale;

Returns a FTP stream on success or FALSE on error.

Quindi, è possibile applicare un filtro semplice come quello;

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

ftp_connect restituirà false se non riesce. Ciò che questo causerà è il messaggio di errore che si verifica invece di accedere.

Si consiglia di utilizzare una condizione per evitare di provare ad accedere quando la connessione non riesce.

Un paio di opzioni che si hanno:

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

o

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

Dal momento sto ottenendo una risposta dal server a un ping. La mia ipotesi è che non hai configurato correttamente il tuo server FTP.

Problemi correlati