6

FTP でいくつかのファイルをアップロードしようとしていますが、次のエラーが発生します。

警告: ftp_login() は、パラメーター 1 がリソースであると想定しています。これは、65 行目の /home/content/98/10339998/html/upload.php で指定されたブール値です 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);

なぜこれが起こっているのか誰にも分かりますか?引用符、二重引用符、および単一引用符を使用してみましたが、どれも機能しません。

4

3 に答える 3

12

ftp_connect()この問題は、FTP サーバーに接続できない場合に、通常返されるリソース リンク識別子ではなく、FALSE が返されるという事実に基づいています。ping を使用して FTP サーバーが稼働しているかどうかを確認します。

あなたは好きにすることができます

if($conn_id){
     // login with username and password
     $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
}
于 2013-02-05T05:26:24.177 に答える
5

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サーバーが適切に構成されていません。

于 2013-02-05T05:44:14.887 に答える
2

マニュアルによると;

成功した場合は FTP ストリームを返し、エラーの場合は FALSE を返します。

したがって、そのような単純なフィルターを適用できます。

$conn_id = ftp_connect("thelegendmaker.net");
if (false === $conn_id) {
    throw new Exception("FTP connection error!");
}
...
于 2013-02-05T05:37:23.013 に答える