Ошибка с подключением ftp через php - PullRequest
3 голосов
/ 14 июня 2010

Я пытаюсь подключиться к своему серверу, используя php скрипт для загрузки некоторых файлов ...

Но это не соединяет ...

Я не знаю, в чем ошибка ...

Я уверен, что ftp включен, я проверил это через php_info ()

В чем может быть ошибка ...

<?php
error_reporting(E_ALL); 
$ftp_server = "server.com";  //address of ftp server (leave out ftp://)
$ftp_user_name = "Username"; // Username
$ftp_user_pass = "Password";   // Password

$conn_id = ftp_connect($ftp_server);        // set up basic connection

$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);

if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {
    echo "Connected as ,$ftp_user_name,$ftp_user_pass \n";
} else {
    echo "Couldn't connect \n";
}
.....
.....
....
....
ftp_close($conn_id); // close the FTP stream
?>

Ответы [ 3 ]

5 голосов
/ 14 июня 2010

возможно, вам нужно включить пассивный режим, выполнив:

ftp_pasv($conn_id, true);

сразу после вашего ftp_login

PS: почему вы делаете двойной вход? написать

$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);

if ($login_result) {

вместо

$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);

if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {
0 голосов
/ 14 июня 2010
  1. Убедитесь, что сервер, к которому вы пытаетесь подключиться, действительно принимает подключения, откуда запускается этот скрипт, с помощью обычного FTP-клиента.Ваш код может быть правильным, но FTP-сервер не принимает подключения от вашего сервера, или есть брандмауэр, блокирующий вещи.
  2. Большинство функций PHP регистрируют информацию об ошибках внутри, которую вы можете получить с помощью error_get_last() и / или $ php_errormsg.Там может храниться некоторая диагностическая информация о причинах сбоя при входе в систему.
0 голосов
/ 14 июня 2010

Мне это кажется неправильным:

$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);

if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {

Вам просто нужно:

$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);

if ($login_result) {

В противном случае он попытается войти в систему дважды, это может быть проблемой.

Также попробуйте добавить or die к ftp_conect, чтобы посмотреть, сможет ли он даже подключиться к серверу.

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...