2013-02-05 15 views
6

Ich versuche, einige Dateien mit FTP hochladen und ich die folgende Fehlermeldung mit:ftp_login erwartet 1 Parameter eine Ressource sein

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

verursacht durch:

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

Weiß jemand, Warum passiert das? Ich habe versucht, keine Anführungszeichen, doppelte Anführungszeichen und einfache Anführungszeichen zu verwenden und keine funktionieren.

Antwort

11

Das Problem hat es Basis in der Tatsache, dass, wenn ftp_connect() kann keine Verbindung zu einem FTP-Server gibt es FALSE anstelle der Ressource Link-Kennung, die es im Allgemeinen zurückgibt. Überprüfen Sie, ob der FTP-Server am Leben ist ping

Sie tun können, wie

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

Ähnlich wie: http://forums.devshed.com/showpost.php?p=956346&postcount=2 – Shog9

2

Handbuch Anmerkung Nach;

Returns a FTP stream on success or FALSE on error.

So können Sie einen einfachen Filter wie diesen anwenden;

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

ftp_connect gibt false zurück, wenn es nicht erfolgreich ist. Was das verursacht, ist die Fehlermeldung, die Sie erfahren, anstatt Sie anzumelden.

Ich würde empfehlen, eine Bedingung zu verwenden, um zu versuchen, sich einzuloggen, wenn Ihre Verbindung fehlschlägt.

Ein paar Optionen, die Sie haben:

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

oder

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

Da ich eine Antwort vom Server auf einen Ping zu bekommen. Meine Vermutung ist, dass Sie Ihren FTP-Server nicht richtig konfiguriert haben.

Verwandte Themen