Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > ftp ошибка


Автор: Satell 5.7.2007, 15:45
Есть программка на моём хостинге выдаёт ошибку
can't call methd "login" on an undefined value в этой строчке 
$ftp->login($username, $password);
на другом хостинге работает нормально

там где работает нормально стоят такие модули
Net::FTP          Net::FTP::A       Net::FTP::dataconn 
Net::FTP::E      Net::FTP::I         Net::FTP::L 

там где не работает
5.8.8::Net::FTP::E 
5.8.8::Net::FTP::L 
5.8.8::Net::FTPSSL

Net::FTP 
Net::FTP::A       Net::FTP::dataconn       Net::FTP::E 
Net::FTP::E       Net::FTP::I                   Net::FTP::L 
Net::FTP::L       Net::FTPSSL
некоторые почему-то по два-три раза, можно ли как-нибудь без админа что-нибудь сделать?

Код

use Net::FTP;

$hostname = 'login';
$username = 'user';
$password = 'pass';

# Hardcode the directory and filename to get
$home = 'public_html';
$filename = 'text.txt';

# Open the connection to the host
$ftp = Net::FTP->new($hostname);         # construct object
$ftp->login($username, $password);       # log in

$ftp->cwd($home),"\n";                   # change directory
print $ftp->ls($home),"\n";        

$ftp->put('/home/public_html/xxx.org/cgi-bin/file.txt');

$ftp->quit;

Автор: nitr 5.7.2007, 16:54
да... недавно написал, смотреть http://forum.vingrad.ru/index.php?showtopic=162077&view=findpost&p=1186158

Добавлено через 1 минуту и 15 секунд
"да" это я про 
Цитата(Satell @  5.7.2007,  15:45 Найти цитируемый пост)
можно ли как-нибудь без админа что-нибудь сделать?

и если не компилить их... (про все так не скажу)

Автор: KSURi 5.7.2007, 17:04
Делай проверку при создании экземпляра:
Код

my $ftp = Net::FTP -> new($hostname) or die $@;

Насколько я помню по умолчанию он ошибку не кидает, а просто возвращает undef
Может это просто проблемы соединения

Автор: Nab 5.7.2007, 17:13
вот именно....
поглядите внимательно что он в качестве хоста передает, врядли 'login' корректное имя 

Автор: KSURi 5.7.2007, 19:36
Цитата(Nab @  5.7.2007,  17:13 Найти цитируемый пост)
вот именно....
поглядите внимательно что он в качестве хоста передает, врядли 'login' корректное имя  

Уахахах, и правда))

Автор: nitr 5.7.2007, 21:28
они про 
Код

$hostname = 'login';

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)